По каким причинам кто-то выбрал бы Java по сравнению с другими технологиями для настольных приложений? GUI в частности - PullRequest
2 голосов
/ 01 ноября 2010

Почему кто-то выбрал бы Java для создания настольных приложений (GUI, если быть более точным)?Причина, по которой я спрашиваю, состоит в том, что есть очевидный и лучший выбор.Для окон есть C # и .NET Framework, для Mac есть Objective-C и Cocoa Framework, а для кросс-платформенной совместимости есть Qt и C ++ (также mono).

По каким причинам кто-то может отказаться от вышеуказанного выбора и перейти на Java?Помимо того, что кто-то «знает только Java», меня интересуют реальные причины, преимущества и когда Java станет лучшим решением.

Ответы [ 6 ]

6 голосов
/ 01 ноября 2010

Переносимость будет одной из причин. Вы можете написать свой код на Java и запустить его на любой платформе с JRE.

Это означает, что он будет работать под Linux, AIX, HPUX, Solaris, OS X, Windows, OS / 400 (или как это называется в настоящее время) и даже z / OS. Ни одно из упомянутых вами решений не имеет такого распространения.

Несмотря на моно, C # в большинстве случаев используется для Windows. Цель C, хотя и доступна в другом месте, используется в основном для вселенной Apple.

Сказав, что, поскольку большая часть моей работы основана на Windows, я больше склоняюсь к C #, поскольку в настоящее время это более востребованный навык, и он делает все, что Java делает для меня.

3 голосов
/ 01 ноября 2010

Выбор, который вы перечисляете, только «лучше», учитывая список конкретных требований.В общем, главное - я могу использовать язык X, потому что нацеливаюсь только на одну платформу.Хотя C # может быть лучше для Windows, он не так хорош, как Java, если вам нужно запустить свой код на нескольких платформах.Java - единственный основной способ написания кроссплатформенных графических интерфейсов с возможным исключением Mono, которое освобождает вас от требований к управлению памятью.Java также является единственным вариантом для создания двоичного файла, который может работать на нескольких платформах.В то время как QT позволит вам создавать графические интерфейсы для нескольких платформ, вам придется делать индивидуальную сборку для каждой платформы.Хотя GUI является важной частью многих приложений, он, как правило, не единственная часть.Из всех перечисленных вами языков в Java больше всего сторонних библиотек.Это означает, что вы можете написать как пользовательский интерфейс, так и код бэкэнда на одном языке для работы на нескольких платформах.Если вы хотите перенести свое приложение из настольного графического интерфейса пользователя в веб-приложение в будущем, это будет проще сделать с хорошо спроектированным решением Java, чем с приложением QT, написанным на C ++.

3 голосов
/ 01 ноября 2010

Java - самый переносимый / независимый от платформы способ реализации настольных приложений с графическим интерфейсом.

  • C # и .NET специфичны для Windows.
  • Полученная мудрость Моно еще недостаточно хорош.
  • Objective-C и Cocoa полностью относятся к Mac.
  • Код Qt и C ++ в теории переносим, ​​но требует большей заботы / внимания к деталям для достижения переносимости на практике. (Кроме того, C ++ - это неуправляемый язык, поэтому у вас есть проблемы с управлением памятью и стабильностью.)

Для многих приложений потенциально более портативным решением является реализация GUI в веб-браузере. Конечно, это позволяет избежать проблемы установки приложений на рабочий стол. Тем не менее, вам придется бороться с:

  • людей / организаций, которые не обновляют свои браузерные платформы,
  • несовместимости и ошибки веб-браузеров,
  • песочницы безопасности,
  • проблема реализации плагинов / расширений для браузера для нескольких браузеров;
  • установка указанных плагинов / расширений.
1 голос
/ 01 ноября 2010

Мне нравится Java, потому что я могу создать настольное приложение, и буквально с 3 строками кода я могу развернуть его в Интернете как апплет. Так что переносимость между операционными системами отличная, но возможность легко развернуть ее в сети - плюс.

1 голос
/ 01 ноября 2010

Вы должны кодировать его в Java, если вы хотите переносимости.Java работает на всех настольных ОС, которые имеют значение.

C #, на мой взгляд, является лучшим кандидатом, если ваше приложение должно быть только для Windows.С графическим редактором работать легче, чем с нуля, скажем, на Swing.

Objective-C - это вещь Apple, и вместе с Qt / C ++ она теоретически переносима, но вы все равно будете иметьпробиться сквозь ошибки и потенциальные утечки памяти.Java не требует никаких изменений исходного кода для работы, скажем, на Linux или Mac, даже если вы пишете код только для Windows.

Наиболее привлекательной особенностью Javas являются инструменты, которые вы можете использовать, не говоря уже о библиотеках практически для чего угодно.Вы получаете большую свободу в выборе инструментов.Если вам нравится Qt, вы также можете найти для него java-привязки, я вспоминаю, что он называется Qt / Jambi.

В качестве альтернативы вы можете кодировать бэкэнд в C ++ / Mono / Objective-C и сделать внешний интерфейс в java.Таким образом, по крайней мере, ваш графический интерфейс легко переносится.

0 голосов
/ 01 ноября 2010

Переносимость немного перепродана.Это приятно, но вряд ли будет убийственной особенностью вашего приложения.

Зачем использовать Java?Потому что Eclipse - одно из величайших приложений, когда-либо созданных.И поскольку Eclipse также является платформой, вы можете использовать все это для создания собственных приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...