Что такое переносимость? Чем Java более портативна, чем другие языки? [закрыто]

По умолчанию ListView прокручивается. Не помещайте ScrollView в ListView

27
задан Hari Menon 14 December 2013 в 09:52
поделиться

2 ответа

Переносимость - это мера количества попыток заставить программу работать в другой среде, отличной от той, в которой она была создана.

Теперь вы можете обсудить, является ли JVM в Linux другой средой, нежели в Windows (я бы сказал, да), но факт остается фактом: во многих случаях требуется приложить ноль усилий, если вы позаботитесь о том, чтобы избежать нескольких ошибок.

CVM, о котором вы говорите, - это в значительной степени то, что пытаются предоставить библиотеки POSIX и библиотеки времени выполнения, однако существуют большие различия в реализации, которые делают препятствия высокими для преодоления. Конечно, в случае с Microsoft и Apple это, вероятно, сделано специально, чтобы разработчики не выпускали продукты на конкурирующих платформах.

Если говорить о .net, то, если вы будете придерживаться того, что обеспечивает mono, - реализации с открытым исходным кодом .Net, вы будете пользоваться примерно той же переносимостью, что и Java, но, поскольку mono значительно отстает от версий Windows, это не так. популярный выбор. Я не знаю, насколько это популярно для серверных разработок, где я могу себе представить, что это не проблема.

5
ответ дан 28 November 2019 в 04:15
поделиться

Переносимость или, как написано в Википедии, Программная переносимость - это возможность многократного использования одного и того же программного обеспечения (кода) в нескольких средах (ОС). Java JVM - это JVM, которая может работать в любых операционных системах, для которых она была разработана: Windows, Linux, Mac OS и т. Д.

В .NET можно портировать ваше программное обеспечение на разные платформы. Из Wikipedia :

Конструкция .NET Framework позволяет теоретически быть независимым от платформы и, следовательно, кросс-платформенным совместимым. Таким образом, программа, написанная для использования платформы, должна работать без изменений в системах любого типа, для которых реализована структура.

И поскольку Microsoft никогда не внедряла среду .NET за пределами Windows и видела, что .NET не зависит от платформы, Mono позволила запускать приложения .NET и компилировать код для запуска в Linux. .

Для таких языков, как C ++, Pascal и т. Д. Вам придется перейти на каждую ОС и собрать ее на этой платформе, чтобы запустить на этой платформе. EXE-файл в Windows отличается от .so в linux (машинный код), так как оба используют разные библиотеки для взаимодействия с ядром, и каждая ОС имеет свое собственное ядро.

1
ответ дан 28 November 2019 в 04:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: