@antaki93
Пишу под Android.

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

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

В общем, вы просто не умеете готовить кошек^W кофе o)
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
OnYourLips
@OnYourLips
Хорошая кроссплатформенность - просто небольшой приятный бонус при использовании виртуальной машины. Не цель.

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

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

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

Войти через центр авторизации
Похожие вопросы
ВДком Самара
от 100 000 ₽
Gaskar Group Москва
от 100 000 ₽
Корона Авто Санкт-Петербург
от 150 000 до 170 000 ₽
17 февр. 2020, в 00:30
1500 руб./за проект
16 февр. 2020, в 22:28
2000 руб./за проект