คำถามเกี่ยวกับการใช้คำว่า 'porting' ในการเขียนโปรแกรม


11

ขณะนี้ฉันกำลังทำการแก้ไขรหัส C ++ ที่เขียนขึ้นสำหรับระบบ UNIX เพื่อให้ทำงานได้โดยรวบรวมจาก Visual Studio ฉันต้องเปลี่ยนชื่อฟังก์ชันในตัวและฉันต้องเปลี่ยนวิธีการกำหนดอาร์เรย์แบบไดนามิก

คำถามของฉันคือฉันจะบอกได้ไหมว่าฉัน 'ย้าย' รหัสนี้จาก UNIX เป็น Windows / Visual Studio หรือ 'porting' ใช้เฉพาะเมื่อเปลี่ยนจากภาษาโปรแกรมหนึ่งไปเป็นอีกภาษาหนึ่ง (เปลี่ยนจาก C ++ เป็น Java)


1
หลายปีที่ผ่านมาฉันต้องแปลงซอฟต์แวร์ 16 บิต OS / 2 ให้ทำงานบน 32 บิต OS / 2 ในระหว่างโครงการทุกคนอ้างถึงกิจกรรมนี้ว่า "พอร์ตถึง 32 บิต" ดังนั้นจึงไม่จำเป็นต้องหมายถึงการย้ายไปยังระบบปฏิบัติการอื่นหรือแม้แต่ฮาร์ดแวร์ที่แตกต่างกันเพียงแค่สภาพแวดล้อมที่แตกต่างกัน
Gort หุ่นยนต์

คำตอบ:


15

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

คำนี้ไม่ได้ใช้กับกระบวนการปรับซอฟต์แวร์ให้ทำงานโดยมีหน่วยความจำน้อยกว่าใน CPU และระบบปฏิบัติการเดียวกันและไม่ใช้กับการเขียนซอร์สโค้ดในภาษาอื่น (เช่นการแปลงภาษาหรือการแปล)

เมื่อผู้คนกล่าวว่าโปรแกรม Java นั้น "พกพาได้มากกว่า" พวกเขาหมายถึงว่าจะต้องทำงานเพิ่มเติมน้อยลงเพื่อให้สามารถทำงานร่วมกับเครื่องและระบบปฏิบัติการต่าง ๆ ได้หลากหลาย


7
จากสิ่งที่ฉันเห็นเมื่อมีคนบอกว่าโปรแกรม Java นั้นพกพาได้มากกว่านั่นหมายความว่าพวกเขาไม่มีประสบการณ์ในการย้ายโปรแกรม Java และพึ่งใช้ยอดขายของ Sun / Oracle จากประสบการณ์ของฉันการย้าย Java ค่อนข้างหนักกว่าค่าเฉลี่ยเล็กน้อย (ส่วนใหญ่เป็นเพราะผู้คนได้รับการสนับสนุนให้เชื่อว่าการพกพานั้นเป็นระบบอัตโนมัติ / รับประกันได้ดังนั้นจึงไม่น่าสนใจหรือทำงาน)
Jerry Coffin

2
@JerryCoffin: ฉันไม่ได้มีประสบการณ์มากในด้านหน้านั้น โปรแกรม Java ที่ฉันทำงานด้วยคือเว็บแอปพลิเคชันทั้งหมดที่ทำงานได้ดีบน Linux, Windows และ Mac แต่ฉันเคยได้ยินเรื่องราวจาก บริษัท ที่ฝ่ายบริหารผลักดันให้เกิดการแปลงจาวากับพวกเขาแม้ว่าผู้ประท้วงจะไม่ประสบความสำเร็จในการพกพา
StriplingWarrior

4
@Jerry - ไม่แน่ใจว่าประสบการณ์ของคุณอยู่ตรงไหน แต่ทุกโปรแกรม Java ที่ฉันได้ทำการพอร์ตไปนั้นไม่ค่อยสำคัญกับพอร์ต (ซึ่งรวมถึงทั้ง GUI และแอพฝั่งเซิร์ฟเวอร์ผ่าน Mac / Win / Linux / Solaris) Sun และ Oracle นั้นถูกต้องในกรณีที่แอพ Java นั้นง่ายต่อการพอร์ตมากกว่าสิ่งอื่น - ส่วนใหญ่ไม่จำเป็นต้องทำการคอมไพล์ซ้ำอีก (ซึ่งจำเป็นสำหรับการพกพา C / C ++ ซึ่งเป็นที่เขียนได้ดีที่สุด ปัญหาที่พบบ่อยที่สุดเท่าที่ผมเห็นเมื่อนักพัฒนาได้ hardcoded สิ่งแพลตฟอร์มที่เฉพาะเจาะจงเช่น "/" เป็นตัวคั่นไดเรกทอรี แต่เหล่านี้จะสวยง่ายต่อการแก้ไข ....
mikera

@Jerry ฉันตั้งโปรแกรมเกม J2ME เป็นเวลา 5 ปี เมื่อตอนที่ฉันกำลังจะจบเรากำลังทำเกม 80 เวอร์ชัน - ทุกแพลตฟอร์มมีประสิทธิภาพแตกต่างกันข้อบกพร่อง ฯลฯ และอื่น ๆ พวกเขาไม่ได้สร้างมาตรฐานสำหรับแพลตฟอร์มพวกเขาสร้างการทดสอบมาตรฐานสำหรับแอปพลิเคชัน J2ME ไม่มีอีกครั้ง.
Sulthan

2

หนึ่งสามารถพอร์ตซอฟต์แวร์ระหว่างระบบปฏิบัติการ หนึ่งสามารถพอร์ตซอฟต์แวร์ระหว่างสถาปัตยกรรมโปรเซสเซอร์ เราอาจต้องทำกิจกรรมบางอย่างที่ปกติแล้วฉันจะเชื่อมโยงกับ "พอร์ต" เมื่อต้องรับมือกับการเปลี่ยนแปลงแพลตฟอร์มที่สำคัญ (สวิตช์ PPC -> x86 ของ Apple หรือ Windows XP -> Windows Vista / 7/8) ฉันจะไม่พิจารณาเปลี่ยนภาษาการเขียนโปรแกรมให้เป็น "พอร์ต" เหมือนการเขียนใหม่ทั้งหมด

ฉันย้ายซอฟต์แวร์จาก Linux ไปยัง Windows และในทางกลับกัน ฉันได้พอร์ตซอฟต์แวร์จาก SPARC ถึง x86 (ฉันรักการจัดการกับปัญหา endian) และจาก 32 บิตเป็น 64 บิต วันนี้ฉันกำลังเขียนโปรแกรมใน Java ... ฉันไม่แน่ใจว่าคำว่า "porting" มีความหมายมากใน Javaland บางทีระหว่าง JVM เวอร์ชันหลัก ....


0

การย้ายพอร์ตกำลังได้รับความนิยมมากขึ้นเรื่อย ๆ ในการพัฒนาเกมเนื่องจากผู้เผยแพร่ต้องการที่จะครอบคลุมแพลตฟอร์มให้ได้มากที่สุด (PC, Xbox, Playstation และอื่น ๆ ) ตามที่กล่าวไว้การย้ายหมายถึงการแปลงโปรแกรมต้นฉบับเพื่อให้ทำงานในระบบที่แตกต่างอย่างสิ้นเชิง โดยทั่วไปผู้ผลิตเกมจะแปลงเกมคอนโซลเป็นพีซี


นักพัฒนามากขึ้นใช้เครื่องมือพัฒนาข้ามแพลตฟอร์มเช่น Unity เพื่อให้พวกเขาไม่ต้องพอร์ต การพัฒนา codebase หนึ่งที่รันบนหลาย ๆ แพลตฟอร์มในตอนแรกนั้นไม่ใช่สิ่งเดียวกับ "porting" ซึ่งบอกเป็นนัยถึงบางสิ่งที่ได้รับการออกแบบและทำงานบนแพลตฟอร์มหนึ่งจากนั้นปรับเปลี่ยนให้ทำงานบนแพลตฟอร์มอื่น
Gort the Robot

นั่นฟังดูน่าสนใจ! มันส่งผลต่อประสิทธิภาพและความสามารถในการปรับขยายได้อย่างไร? สิ่งหนึ่งที่น่าเป็นไปได้มากที่สุดคือความจริงที่ว่าคอนโซลยังคงช้ากว่าพีซีทั่วไปส่วนใหญ่ค่อนข้างมาก - Unity เข้าถึงวิธีนี้ได้อย่างไรโดยไม่ลดทอนคุณภาพสูงสุดของระบบที่เร็วขึ้น
Juha Untinen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.