Pertanyaan tentang penggunaan kata 'porting' dalam pemrograman

11

Saat ini saya sedang dalam proses memodifikasi kode C ++ yang ditulis untuk sistem UNIX sehingga bekerja dengan kompilasi dari Visual Studio. Saya harus mengubah beberapa nama fungsi bawaan dan saya harus mengubah cara array dinamis didefinisikan.

Pertanyaan saya adalah, dapatkah saya mengatakan bahwa saya 'porting' kode ini dari UNIX ke Windows / Visual Studio atau 'porting' hanya digunakan ketika mengubah dari satu bahasa pemrograman ke yang lain (porting dari C ++ ke Java)?

Roronoa Zoro
sumber
1
Bertahun-tahun yang lalu, saya harus mengonversi 16 bit OS / 2 perangkat lunak untuk berjalan pada 32 bit OS / 2. Selama proyek, semua orang menyebut aktivitas ini sebagai "porting ke 32 bit". Jadi itu bahkan tidak harus berarti pindah ke OS yang berbeda atau bahkan perangkat keras yang berbeda, hanya lingkungan yang berbeda.
Gort the Robot

Jawaban:

15

Menurut Wikipedia , dan pengalaman pribadi saya, istilah "porting" mengacu pada membuat perangkat lunak berfungsi untuk platform yang pada awalnya tidak dimaksudkan. Proses ini terkadang membutuhkan perubahan dalam bahasa, tetapi tidak selalu.

Istilah ini umumnya tidak diterapkan pada proses mengadaptasi perangkat lunak untuk berjalan dengan memori lebih sedikit pada CPU dan sistem operasi yang sama, juga tidak diterapkan pada penulisan ulang kode sumber dalam bahasa yang berbeda (yaitu konversi atau terjemahan bahasa).

Ketika orang mengatakan bahwa program Java lebih "portabel," artinya mereka membutuhkan lebih banyak pekerjaan tambahan untuk membuatnya kompatibel dengan berbagai mesin dan sistem operasi yang berbeda.

StriplingWarrior
sumber
7
Dari apa yang saya lihat, ketika orang mengatakan program Java lebih portabel, itu berarti mereka kurang berpengalaman dalam porting program Java, dan hanya mengandalkan pada penjualan Sun / Oracle. Dalam pengalaman saya, porting Jawa sebenarnya sedikit lebih sulit daripada rata-rata (sebagian besar karena orang-orang telah didorong untuk percaya bahwa portabilitas otomatis / dijamin dan karenanya tidak layak diperhatikan atau bekerja).
Jerry Coffin
2
@ JerryCoffin: Saya belum punya banyak pengalaman di bagian depan itu. Program Java yang saya gunakan adalah semua aplikasi web yang bekerja dengan baik di Linux, Windows, dan kotak Mac. Tetapi saya telah mendengar cerita dari perusahaan-perusahaan yang manajemennya mendorong konversi Java meskipun mereka memprotes bahwa mereka tidak akan mencapai portabilitas seperti itu.
StriplingWarrior
4
@ Jerry - tidak yakin di mana pengalaman Anda berada tetapi hampir setiap program Java yang saya porting telah sepele ke port (ini termasuk GUI dan aplikasi sisi server melalui Mac / Win / Linux / Solaris). Sun dan Oracle benar sejauh aplikasi Java lebih mudah untuk di-port daripada yang lain - sebagian besar bahkan tidak memerlukan kompilasi ulang (yang akan diperlukan bahkan untuk C / C ++ portabel yang ditulis dengan baik yang mungkin merupakan yang terbaik kedua dalam portabilitas). Masalah paling umum yang saya lihat adalah ketika pengembang memiliki hardcoded hal-hal spesifik platform seperti "/" sebagai pemisah direktori, tetapi ini cukup mudah untuk diperbaiki ....
mikera
@ Jerry Saya memprogram game J2ME selama 5 tahun. Ketika saya selesai, kami melakukan 80 versi permainan - setiap platform memiliki kinerja yang berbeda, bug dll. Solusi? Mereka tidak membuat standar untuk platform, mereka menciptakan pengujian standar untuk aplikasi J2ME. Tidak akan lagi.
Sulthan
2

Satu dapat port perangkat lunak antara sistem operasi. Satu dapat port perangkat lunak antara arsitektur prosesor. Seseorang mungkin perlu melakukan beberapa kegiatan yang biasanya saya kaitkan dengan "porting" ketika berhadapan dengan perubahan platform utama (PPC Apple -> sakelar x86, atau Windows XP -> Windows Vista / 7/8). Saya tidak akan mempertimbangkan beralih bahasa pemrograman menjadi "porting." Lebih seperti menulis ulang sepenuhnya.

Saya telah mem-porting perangkat lunak dari Linux ke Windows dan sebaliknya. Saya telah mem-porting perangkat lunak dari SPARC ke x86 (Saya suka berurusan dengan masalah endian) Dan dari 32-bit ke 64-bit. Saat ini saya sedang pemrograman di Jawa ... Saya tidak yakin apakah kata "porting" memiliki banyak arti di Javaland, mungkin antara versi JVM utama ....

James Adam
sumber
0

Porting menjadi semakin populer dalam pengembangan game, karena penerbit ingin mencakup sebanyak mungkin platform (PC, Xbox, Playstation, dll.). Seperti disebutkan, porting berarti mengonversi program asli sehingga bekerja dalam sistem yang sama sekali berbeda. Umumnya pembuat game mengkonversi game konsol ke PC.

Juha Untinen
sumber
Semakin banyak pengembang yang mengandalkan alat pengembangan lintas platform seperti Unity sehingga mereka tidak perlu port. Mengembangkan satu basis kode yang berjalan pada banyak platform pada awalnya bukanlah hal yang sama dengan "porting", yang menyiratkan sesuatu dirancang dan dijalankan pada satu platform, dan kemudian dimodifikasi untuk berjalan pada platform lain.
Gort the Robot
Kedengarannya menarik! Bagaimana pengaruhnya terhadap kinerja dan skalabilitas? Salah satu kekhawatiran yang paling mungkin adalah kenyataan bahwa konsol masih jauh lebih lambat daripada kebanyakan PC kelas atas - bagaimana cara Unity melakukan pendekatan ini tanpa mengurangi kualitas maksimum pada sistem yang lebih cepat?
Juha Untinen