ความเป็นอิสระของแพลตฟอร์มคืออะไร ข้ามแพลตฟอร์มและ 'ความเป็นอิสระของแพลตฟอร์ม' เหมือนกันหรือไม่


11

ความเป็นอิสระของแพลตฟอร์มหมายถึงอะไรจริงๆ? อะไรคือเกณฑ์ในการเรียกแพลตฟอร์มภาษาที่เป็นอิสระ? ข้ามแพลตฟอร์มและ 'ความเป็นอิสระของแพลตฟอร์ม' เหมือนกันหรือไม่

(นี่อาจเป็นคำถามสำหรับการศึกษาด้วยตนเอง แต่ฉันต้องการได้ยินจากผู้เชี่ยวชาญจาก Stack overflow มีคำจำกัดความและมุมมองมากมายเกี่ยวกับเรื่องนี้ใน interenet และบางคนก็สับสน)


ฉันคิดว่าคำว่า "แพลตฟอร์ม indpendent" เหมาะสมกว่าที่จะนำไปใช้กับผลิตภัณฑ์ programm เฉพาะไม่ใช่ภาษาเอง

3
ฉันเห็นว่า Java เป็นแพลตฟอร์มอิสระเนื่องจาก JVM ในแต่ละแพลตฟอร์มต้องสนับสนุนชุดคำสั่งและรหัสชุดเดียวกันสำหรับโปรแกรม Java ใด ๆ (สำหรับค่าทั่วไปของ "any") ในทางกลับกัน C # จะถูกพิจารณาว่าเป็น cross-platform ซึ่งมันทำงานได้ทั้งบน Mono และ. NET แต่ไม่ใช่ในระดับเดียวกัน

1
@ Randolph ดูเหมือนว่าคุณจะลืมว่าโครงสร้างพื้นฐานของ dotnet นั้นเหนื่อยกับการใช้ Windows - เช่นทุกสิ่งใน UI คุณไม่สามารถเปรียบเทียบความเป็นอิสระของแพลตฟอร์มของ Java กับ dotnet + mono ซึ่งไม่ได้ใกล้เคียง มีหลายส่วนที่เรียกว่าส่วนหนึ่งของมาตรฐานปัญหาเดียวคือพวกเขาทำงานบน Windows อย่าลืม pinvoke กระจัดกระจายไปทั่วสถานที่และการใช้มันจะไม่พกพา
mP01

คุณช่วยอธิบายความแตกต่างระหว่างความเป็นอิสระข้ามแพลตฟอร์มและแพลตฟอร์มได้หรือไม่

@mP - ฉันไม่ลืมเลย ในความเป็นจริงฉันคิดว่าฉันค่อนข้างชัดเจนเมื่อฉันพูดว่า "ไม่ถึงระดับเดียวกัน" เนื่องจากข้อเท็จจริงที่ว่า UI ส่วนใหญ่เชื่อมโยงกับ Windows ฉันไม่ได้เปรียบเทียบ Java กับ. NET และ Mono ถ้าคุณอ่านอย่างระมัดระวัง: ฉันบอกว่า Java นั้นเป็นแพลตฟอร์มที่เป็นอิสระและ. NET / Mono เป็นข้ามแพลตฟอร์ม หากเป็นการเปรียบเทียบฉันคิดว่ามันหมายความว่าแอปเปิ้ลและลูกแพร์ควรจะเทียบเท่ากัน ยกโทษให้ฉันถ้าฉันเจอกางเกง แต่ฉันไม่ชอบคำที่ใส่เข้าไปในปากของฉัน

คำตอบ:


8

ไม่มีแพลตฟอร์มอิสระและข้ามแพลตฟอร์มไม่เหมือนกัน ให้ดูที่คำอธิบายต่อไปนี้เพื่อทำความเข้าใจ


ซอฟต์แวร์ข้ามแพลตฟอร์ม


ข้ามแพลตฟอร์มหรือหลายแพลตฟอร์มเป็นคุณลักษณะที่มอบให้กับซอฟต์แวร์คอมพิวเตอร์หรือวิธีการคำนวณและแนวคิดที่นำไปใช้และทำงานร่วมกันบนแพลตฟอร์มคอมพิวเตอร์หลายเครื่อง

มันอาจแบ่งออกเป็นสองประเภท

  1. ต้องมีการสร้างหรือรวบรวมเป็นรายบุคคลสำหรับแต่ละแพลตฟอร์มที่รองรับ
  2. และอีกส่วนหนึ่งสามารถทำงานได้โดยตรงบนแพลตฟอร์มใดก็ได้โดยไม่ต้องเตรียมเป็นพิเศษเช่นซอฟต์แวร์ที่เขียนในภาษาที่แปลความหมายหรือ bytecode แบบพกพาที่รวบรวมไว้ล่วงหน้าซึ่งล่ามหรือแพ็คเกจรันไทม์เป็นองค์ประกอบทั่วไปหรือมาตรฐานของแพลตฟอร์มทั้งหมด

ซอฟต์แวร์หลายแพลตฟอร์มหรือข้ามแพลตฟอร์ม:ซอฟต์แวร์มีให้ในหลายแพลตฟอร์ม (ระบบปฏิบัติการ) นี่อาจหมายถึงสองสิ่ง -

  1. ซอฟต์แวร์มาพร้อมกับบิลด์ / แอพพลิเคชั่นที่แตกต่างกันสำหรับแพลตฟอร์มที่แตกต่างกัน
  2. ซอฟต์แวร์สามารถเรียกใช้ (พร้อมดาวน์โหลดเดียวกัน) บนหลายแพลตฟอร์ม แต่ไม่ทั้งหมด

แพลตฟอร์มอิสระ


ซอฟต์แวร์ที่ไม่ขึ้นอยู่กับแพลตฟอร์มไม่พึ่งพาคุณสมบัติพิเศษใด ๆ ของแพลตฟอร์มเดียวหรือถ้าเป็นเช่นนั้นจะจัดการคุณสมบัติพิเศษเหล่านั้นเพื่อให้สามารถจัดการกับหลายแพลตฟอร์มได้

ซอฟต์แวร์ Platform Independent: ซอฟต์แวร์อิสระ Platform ในความหมายที่เข้มงวด -

  • ติดตั้งได้ทุกที่และทำงานได้ทุกที่ - ไม่สำคัญว่าคุณจะอยู่ที่ไหน แม้ว่าคุณอาจได้รับตัวติดตั้งที่แตกต่างกัน (สำหรับแพลตฟอร์มที่แตกต่างกัน) แต่นี่ก็เพื่อความสะดวกของผู้ใช้ จะมีตัวเลือกให้คุณติดตั้งโดยตรงจากซอร์สโค้ด




รวบรวมจากแหล่งต่าง ๆ


@Shekhar: บังเอิญฉันก็โดนแหล่งเดียวกัน (Wikipedia และopenalternatives.org/site/2008/08/… ) จากที่ที่คุณอาจนำสิ่งที่ ขอบคุณมาก.

@CarparpLearner ตามที่ฉันพูดถึงที่ด้านล่างของโพสต์ของฉัน

0

"คำจำกัดความทางเดินอาหาร" ของฉันตรงกับสิ่งที่ Shekhar พูด; Multiplatform == สร้างขึ้นสำหรับแพลตฟอร์มที่เข้ากันไม่ได้หลายแพลตฟอร์มอิสระ == ทำงานโดยไม่คำนึงถึงแพลตฟอร์ม

แน่นอนว่าระบบปฏิบัติการแพลตฟอร์ม == นั้นง่ายต่อการมองเห็นในกรณีนี้สคริปต์ Python อาจจะเป็น "แพลตฟอร์มอิสระ" ตราบใดที่มีล่าม Python บนระบบปฏิบัติการที่คุณตั้งใจจะใช้งาน

ในทางใดทางหนึ่งแพลตฟอร์มของสคริปต์คือ Python ท้ายที่สุดแล้วมาตรฐานซอฟต์แวร์ + ฮาร์ดแวร์ที่มีประโยชน์ใช้สอย

ไม่แน่ใจว่าประเด็นของฉันคืออะไร


0

เพื่อขยายเล็กน้อยในคำตอบ Shekhar_Pro ของ ,

แพลตฟอร์มอิสระจะดำเนินการแพลตฟอร์มใด ๆ นึกถึงแอปพลิเคชัน Java หรือ Python ที่ไม่มีสิ่งเฉพาะแพลตฟอร์มที่สามารถดำเนินการได้ใน Windows, Mac และ Linux โดยไม่จำเป็นต้องทำการคอมไพล์ซ้ำหรือเขียนใหม่

ผลิตภัณฑ์ข้ามแพลตฟอร์มเป็นกาต้มน้ำปลาที่แตกต่างกันโดยสิ้นเชิง ที่บางแง่มุมของผลิตภัณฑ์ข้ามแพลตฟอร์มอาจแชร์ข้อกำหนดทั่วไปและแม้แต่ซอร์สโค้ด (ตัวอย่างฟังก์ชันทางคณิตศาสตร์บางอย่างที่นำมาใช้ใน C) แต่ละเวอร์ชันผลิตภัณฑ์จะถูกเขียนและรวบรวมทั้งหมดสำหรับแพลตฟอร์มเฉพาะ ลองนึกถึง Mozilla Firefox ตัวอย่างเช่นมีเวอร์ชันต่าง ๆ ที่ทำงานบน Mac, Windows, Linux, BeOS, Android และอื่น ๆ แต่ละรุ่นมีความคล้ายคลึงกันและอาจมีโครงสร้างข้อมูลที่เข้ากันได้ แต่แต่ละรุ่นได้รับการพัฒนาอย่างอิสระและมักจะเขียนโดยใช้ภาษาการเขียนโปรแกรมและ API ที่แตกต่างกันโดยสิ้นเชิงหมายเลขรุ่นที่แตกต่างกันเป็นต้น


-1

ความเป็นอิสระของแพลตฟอร์มหมายถึงว่าโปรแกรมที่เขียนทดสอบและใช้งานได้บนแพลตฟอร์มเดียวหรือระบบปฏิบัติการจะไม่ได้รับการแก้ไขบนแพลตฟอร์ม / ระบบปฏิบัติการอื่น โดยธรรมชาติถ้ามันถูกคัดลอกไปยังไดเรกทอรีที่แตกต่างกันบางไฟล์ config ขนาดเล็กอาจต้องมีการแก้ไขเส้นทาง แต่อื่น ๆ กว่ามันควรจะทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.