Вопрос об использовании слова «портирование» в программировании


11

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

У меня вопрос: могу ли я сказать, что я «портирую» этот код из UNIX в Windows / Visual Studio или «портирование» используется только при переходе с одного языка программирования на другой (перенос с C ++ на Java)?


1
Много лет назад мне пришлось конвертировать 16-битное программное обеспечение OS / 2 для работы на 32-битной OS / 2. В ходе проекта все называли это действие «портированием на 32 бита». Так что это даже не должно означать переход на другую ОС или даже другое оборудование, просто другую среду.
— Gort the Robot

Ответы:


15

Согласно Википедии и моему личному опыту, термин «портирование» относится к тому, чтобы заставить программное обеспечение работать на платформе, для которой оно изначально не предназначалось. Этот процесс иногда требует смены языка, но не всегда.

Этот термин обычно не применяется к процессу адаптации программного обеспечения для работы с меньшим объемом памяти на одном и том же процессоре и операционной системе, а также не применяется к переписыванию исходного кода на другом языке (то есть преобразование языка или перевод).

Когда люди говорят, что программы на Java более «переносимы», они имеют в виду, что для их совместимости с различными машинами и операционными системами требуется меньше дополнительной работы.


7
Из того, что я видел, когда люди говорят, что Java-программы более переносимы, это означает, что им не хватает опыта в переносе Java-программ, и они просто полагаются на коммерческие предложения Sun / Oracle. По моему опыту, портирование Java на самом деле немного сложнее, чем в среднем (в основном потому, что люди были склонны считать, что переносимость является автоматической / гарантированной и, следовательно, не заслуживает внимания или работы).
— Джерри Коффин

2
@JerryCoffin: у меня не было большого опыта на этом фронте. Все Java-программы, с которыми я работал, были веб-приложениями, которые одинаково хорошо работали на Linux, Windows и Mac. Но я слышал истории от фирм, руководство которых подталкивало их к конвертации Java, несмотря на протесты разработчиков, что они не добьются такой переносимости.
— StriplingWarrior

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

@ Джерри Я программировал игры J2ME в течение 5 лет. Когда я заканчивал, мы делали 80 версий игры - каждая платформа имеет разную производительность, ошибки и т. Д. И т. Д. Решение? Они не создавали стандарты для платформ, они создали стандартизированное тестирование для приложений J2ME. Больше никогда.
— Sulthan

2

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

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


0

Портирование становится все более популярным в разработке игр, поскольку издатели хотят охватить как можно больше платформ (ПК, Xbox, Playstation и т. Д.). Как уже упоминалось, портирование означает преобразование исходной программы, чтобы она работала в совершенно другой системе. Обычно создатели игр конвертируют консольные игры в ПК.


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

Это звучит интересно! Как это влияет на производительность и масштабируемость? Одна из проблем, скорее всего, связана с тем, что консоли все еще работают намного медленнее, чем большинство ПК более высокого уровня - как Unity подходит к этому, не ставя под угрозу максимальное качество в более быстрых системах?
— Юха Унтинен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.