Питання про використання слова "porting" у програмуванні


11

Зараз я перебуваю в процесі зміни коду C ++, який був написаний для системи UNIX, щоб він працював, компілюючи з Visual Studio. Мені довелося змінити назви вбудованих функцій, і я повинен був змінити спосіб визначення динамічних масивів.

Моє запитання полягає в тому, чи можу я сказати, що я переношу цей код з UNIX в Windows / Visual Studio або «перенесення» використовується лише при переході з однієї мови програмування на іншу (перенесення з C ++ на Java)?


1
Багато років тому мені довелося перетворити 16-бітове програмне забезпечення OS / 2 для роботи на 32-бітній ОС / 2. Під час проекту всі називали цю діяльність "перенесенням на 32 біт". Тож це навіть не повинно означати перехід на іншу ОС або навіть інше обладнання, просто інше середовище.
Gort the Robot

Відповіді:


15

Згідно з Вікіпедією та моїм власним особистим досвідом, термін «перенесення» стосується того, щоб програмне забезпечення працювало на платформі, для якої воно спочатку не було призначене. Цей процес іноді вимагає зміни мови, але не завжди.

Цей термін зазвичай не застосовується до процесу адаптації програмного забезпечення для роботи з меншою пам’яттю на одному процесорі та операційній системі, а також не застосовується до переписування вихідного коду іншою мовою (тобто конвертація мови або переклад).

Коли люди кажуть, що програми Java є більш "портативними", вони означають, що потрібно менше додаткової роботи, щоб зробити їх сумісними з різними машинами та операційними системами.


7
З того, що я бачив, коли люди кажуть, що програми Java є більш портативними, це означає, що їм не вистачає досвіду переносу програм Java, і просто покладаються на торгові майданчики Sun / Oracle. На мій досвід, перенесення Java насправді трохи складніше середнього показника (багато в чому тому, що людей спонукають вважати, що портативність є автоматичною / гарантованою і тому недостойна уваги чи роботи).
Джеррі Труну

2
@JerryCoffin: Я не мав багато досвіду на цьому фронті. Програми Java, з якими я працював, - це всі веб-програми, які однаково добре працювали на скриньках Linux, Windows та Mac. Але я чув історії від фірм, управління яких підштовхнуло конверсію Java на них, незважаючи на протести розробників, що вони не зможуть досягти портативності таким чином.
StriplingWarrior

4
@ Jerry - не впевнений, де лежить ваш досвід, але майже вся програма Java, яку я перенесла, була тривіальною для порту (сюди входять як графічні інтерфейси, так і додатки на сервері через Mac / Win / Linux / Solaris). Sun та Oracle є правильними, наскільки програми Java легше переносяться, ніж будь-що інше - більшості навіть не потрібна перекомпіляція (що було б потрібно навіть для добре написаного портативного C / C ++, який, мабуть, 2-й кращий за портативністю). Найпоширеніші проблеми, які я бачу, - це коли розробники мають в якості роздільника каталогів специфічні для платформи речі, такі як "/", але це досить легко виправити ....
mikera

@Jerry Я програмував ігри J2ME протягом 5 років. Коли я закінчував, ми робили 80 версій гри - кожна платформа має різну продуктивність, помилки тощо. Рішення? Вони не створили стандартів для платформ, вони створили стандартизоване тестування програм J2ME. Ніколи знову.
Султан

2

Можна переносити програмне забезпечення між операційними системами. Можна передати програмне забезпечення між архітектурами процесорів. Можливо, потрібно буде виконати деякі дії, які я зазвичай асоціюю з «перенесенням», коли я маю справу з великими змінами платформи (КПП Apple - КПК>> x86 або Windows XP -> Windows Vista / 7/8). Я б не вважав перемикання мов програмування "переносним". Більше, як повністю переписувати.

Я переніс програмне забезпечення з Linux у Windows і навпаки. Я переніс програмне забезпечення від SPARC до x86 (я просто люблю займатися ендіанськими проблемами) І від 32-бітного до 64-бітного. Сьогодні я програмую на Java ... Я не впевнений, чи слово "porting" має багато значення в Javaland, можливо, між основними версіями JVM ....


0

Портинг стає все більш популярним у розробці ігор, оскільки видавці хочуть охопити якомога більше платформ (ПК, Xbox, Playstation тощо). Як згадувалося, перенесення означає перетворення оригінальної програми таким чином, щоб вона працювала у зовсім іншій системі. Взагалі виробники ігор перетворюють консольні ігри на ПК.


Все більше та більше розробників покладаються на інструменти розробки міжплатформних платформ, такі як Unity, щоб їм не довелося працювати. Розробка однієї бази коду, яка працює на багатьох платформах, - це не те саме, що "перенесення", що означає, що щось було розроблено та запущено на одній платформі, а потім модифіковано для роботи на іншій.
Gort the Robot

Це звучить цікаво! Як це впливає на продуктивність та масштабованість? Одне занепокоєння, швидше за все, викликає той факт, що консолі все ще набагато повільніші, ніж більшість ПК з більш високим кінцем - як Unity підходить до цього, не порушуючи максимальної якості на більш швидких системах?
Juha Untinen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.