Pytanie o użycie słowa „portowanie” w programowaniu

11

Obecnie jestem w trakcie modyfikowania kodu C ++, który został napisany dla systemu UNIX, aby działał przez kompilację z Visual Studio. Musiałem zmienić nazwy niektórych wbudowanych funkcji i musiałem zmienić sposób definiowania tablic dynamicznych.

Moje pytanie brzmi: czy mogę powiedzieć, że „portuję” ten kod z UNIXa na Windows / Visual Studio, czy „portowanie” jest używane tylko przy zmianie jednego języka programowania na inny (przenoszenie z C ++ na Javę)?

Roronoa Zoro
źródło
1
Wiele lat temu musiałem przekonwertować 16-bitowe oprogramowanie OS / 2, aby działało na 32-bitowym OS / 2. Podczas projektu wszyscy nazywali to działanie „przenoszeniem do wersji 32-bitowej”. Więc to nie musi nawet oznaczać przejścia na inny system operacyjny lub nawet inny sprzęt, po prostu inne środowisko.
Gort the Robot

Odpowiedzi:

15

Według Wikipedii i własnego doświadczenia termin „przenoszenie” odnosi się do tego, aby oprogramowanie działało na platformie, dla której nie było pierwotnie przeznaczone. Ten proces czasami wymaga zmiany języka, ale nie zawsze.

Termin ten na ogół nie jest stosowany do procesu dostosowywania oprogramowania do działania z mniejszą pamięcią na tym samym procesorze i systemie operacyjnym, ani nie jest stosowany do przepisywania kodu źródłowego w innym języku (tj. Konwersji lub tłumaczenia języka).

Kiedy ludzie mówią, że programy Java są bardziej „przenośne”, mają na myśli, że potrzeba mniej pracy, aby były one kompatybilne z wieloma różnymi maszynami i systemami operacyjnymi.

StriplingWarrior
źródło
7
Z tego, co widziałem, gdy ludzie mówią, że programy Java są bardziej przenośne, oznacza to, że brakuje im doświadczenia w przenoszeniu programów Java i po prostu polegają na działaniach sprzedażowych Sun / Oracle. Z mojego doświadczenia wynika, że ​​przenoszenie Java jest w rzeczywistości nieco trudniejsze niż przeciętnie (głównie dlatego, że zachęcano ludzi do przekonania, że ​​przenośność jest automatyczna / gwarantowana i dlatego nie jest wart uwagi ani pracy).
Jerry Coffin
2
@JerryCoffin: Nie miałem dużego doświadczenia na tym froncie. Programy Java, z którymi pracowałem, były wszystkimi aplikacjami internetowymi, które działały równie dobrze na systemach Linux, Windows i Mac. Ale słyszałem historie od firm, których kierownictwo narzuciło im konwersję Java, pomimo protestów deweloperów, że nie uzyskaliby w ten sposób przenośności.
StriplingWarrior
4
@Jerry - nie jestem pewien, gdzie leży twoje doświadczenie, ale prawie każdy program Java, który przesłałem, jest prosty do przeniesienia (dotyczy to zarówno GUI, jak i aplikacji po stronie serwera na Mac / Win / Linux / Solaris). Sun i Oracle mają rację, o ile aplikacje Java są łatwiejsze do przeniesienia niż cokolwiek innego - większość nawet nie potrzebuje ponownej kompilacji (co byłoby konieczne nawet w przypadku dobrze napisanego przenośnego C / C ++, który jest prawdopodobnie 2. najlepszy pod względem przenośności). Najczęstsze problemy, które widzę, to takie, w których programiści zapisali na stałe elementy specyficzne dla platformy, takie jak „/” jako separator katalogów, ale są one dość łatwe do naprawienia ....
mikera
@Jerry Programowałem gry J2ME na 5 lat. Kiedy kończyłem, robiliśmy 80 wersji gry - każda platforma ma inną wydajność, błędy itp. Rozwiązanie? Nie stworzyli standardów dla platform, stworzyli standaryzowane testy aplikacji J2ME. Nigdy więcej.
Sulthan
2

Oprogramowanie można przenosić między systemami operacyjnymi. Oprogramowanie można przenosić między architekturami procesorów. Może być konieczne wykonanie niektórych czynności, które normalnie kojarzę z „przenoszeniem”, gdy mamy do czynienia z poważnymi zmianami platformy (przełącznik PPC firmy Apple -> x86 lub Windows XP -> Windows Vista / 7/8). Nie rozważałbym przełączania języków programowania na „przenoszenie”. Bardziej jak całkowite przepisywanie.

Przeniesiłem oprogramowanie z systemu Linux na Windows i odwrotnie. Przeniesiłem oprogramowanie z SPARC na x86 (po prostu uwielbiam radzić sobie z problemami endianowymi) oraz z wersji 32-bitowej na 64-bitową. Obecnie programuję w Javie ... Nie jestem pewien, czy słowo „portowanie” ma duże znaczenie w Javaland, być może między głównymi wersjami JVM…

James Adam
źródło
0

Portowanie staje się coraz bardziej popularne w tworzeniu gier, ponieważ wydawcy chcą obsługiwać jak najwięcej platform (PC, Xbox, Playstation itp.). Jak wspomniano, portowanie oznacza konwersję oryginalnego programu, aby działał w zupełnie innym systemie. Generalnie twórcy gier przekształcają gry konsolowe na PC.

Juha Untinen
źródło
Coraz więcej programistów polega na wieloplatformowych narzędziach programistycznych, takich jak Unity, aby nie musieli się przenosić. Opracowanie jednej bazy kodu, która na początku działa na wielu platformach, nie jest tym samym, co „portowanie”, co oznacza, że ​​coś zostało zaprojektowane i uruchomione na jednej platformie, a następnie zmodyfikowane, aby działało na innej.
Gort the Robot
Które brzmi interesująco! Jak wpływa na wydajność i skalowalność? Jednym z problemów byłby najprawdopodobniej fakt, że konsole są nadal znacznie wolniejsze niż większość komputerów klasy wyższej - w jaki sposób Unity podchodzi do tego bez utraty maksymalnej jakości szybszych systemów?
Juha Untinen,