@antaki93
Пишу под Android.

Зачем нужна «кроссплатформенность» в Java?

Несколько доводов в пользу того, что она не нужна:
1) используя обычный компилируемый язык вроде C++, можно проверять в коде текущую среду исполнения и, в зависимости от неё, использовать те или иные переменные или функции (да, это некоторая морока, но это реализуемо);
2) когда возникает нужда обратиться к специфичным API-функциям (а она возникает), часть кода в "кроссплатформенном" приложении всё равно приходится делать платформо-зависимой;
3) с ходу Java не решает проблем с различным отображением элементов UI на разных системах (с этим по-прежнему остаётся ещё много возни);
4) для запуска Java-приложения необходимо, чтобы джава была установлена у пользователя в системе,
5) чтобы не морочить пользователю голову непонятными jar-ами, приходится создавать лаунчер под конкретную программную/аппаратную среду
У меня есть подозрение, что на эти доводы найдутся какие-то контраргументы, и кто-нибудь мудрый таки расскажет мне, ради чего стоит городить весь этот огород с виртуальными машинами и swing'ом.
  • Вопрос задан
  • 1067 просмотров
Решения вопроса 1
roswell
@roswell
и швец, и жнец, и на дуде игрец
1) только вот C/C++ софт придётся компилировать самому под все целевые платформы;
2) платформо-зависимые части кода в большинстве случаев уже собраны в библиотеки;
3) JavaFX или собственная реализация Swing UI. Даже голый Swing причесать так, чтобы он выглядел практически одинаково на всех платформах, особого труда не составит;
4) то же с .net (то, что Microsoft пихает его рантайм в Windows — не заслуга дотнета как такового. А заодно поинтересуйтесь, как у дотнета обстоят дела со стабильностью API);
5) с джарами и не бывает возни, достаточно установить JRE.

В общем, вы просто не умеете готовить кошек^W кофе o)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
9f3ceb8416dd42c686f2a251193bdbc7.png
Ответ написан
Комментировать
zolt85
@zolt85
Программист
Мне кажется, отцы-основатели под кроссплатформенностью подразумевали что-то более низкоуровневое, нежели операционная система. Архитектуры процессоров, например, или файловые системы и т.п. Так вот JVM позволяет не париться на счет этих вещей. Код написанный и скомпилированный один раз, запускается везде (где есть JVM). Это все конечно общие случаи и есть примеры, когда это не работает. Тот же Android. Вы не можете запустить приложения, написанные под Android на своем MacBook, например. Но это уже совсем другая история...
Ответ написан
Комментировать
@private_tm
JAVA dev
java для создания desctop приложений с GUI мертва(ИМХО < 1% ).
Java это в основном ентерпрайз и андроид.

Кросплатформеность компляции(под какие ОС написаны компиляторы) оказывает влияния на развития и популярность языка программирования.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы