Java vs С++ Qt: какой выбор для нежного развертывания?
Мне нужно немного мудрости из stackoverflow.
Я собираюсь разработать приложение GUI, которое будет обрабатывать XML-данные через формы. Я выбрал два варианта: Java (swing или swt) или Qt.
Я уже попробовал базовый учебник с Qt (Qt designer) и Java (Eclipse). И я должен признать, что оба будут отвечать моим потребностям.
Последний вопрос, который я должен решить, насколько болезненным будет развертывание?
Конечный пользователь нетехник, поэтому процесс установки и обновления должен быть легким.
Java имеет Java Web Start, с простым обновлением; Qt может быть более "упакован" без необходимости JVM.
Как вы думаете? Каковы плюсы и минусы?
Спасибо большое
Ответы
Ответ 1
Я сделал разработку с обеих технологий, и я должен сказать, что Qt - лучший выбор, на мой взгляд. Весь мой опыт с QT был приятным, я не могу сказать то же самое о том, что при использовании swing. Что касается развертывания, Java, вероятно, будет немного проще, но это не означает, что с QT будет сложно. Вам, вероятно, придется немного перекомпилировать и, возможно, портировать.
Swing - прекрасная структура. Не мой первый выбор, но он выполняет свою работу. Что мне нравится в QT, так это то, что вы получаете доступ к кучке библиотек, что делает разработку более быстрой и легкой. Если вы идете с QT, то "Пейте QT Kool-помощь", иначе это сделает разработку более жесткой. Это означает, что когда это возможно, используйте Q-версию поверх версии С++, потому что среда по своей сути "понимает" другие части фреймворка, например. QString, QVector, QObject.
На самом деле все зависит от того, насколько вам комфортно с каждым из языков. Если вы хотите, чтобы С++ пошел с QT, в противном случае используйте swing.
Ответ 2
Pro-java: яркая среда, множество доступных библиотек.
Я помню цитату в строках
Если это можно сделать на компьютере, это было сделано дважды с помощью java
Con-Java: java gui никогда не впечатлили меня на рабочем столе.
Pro-Qt: время запуска приложения, должно быть быстрее, чем JVM
Синтаксис Con-Qt: С++, например. файлы заголовков
Изменить в пользу @ctd
Я предполагаю, что из акцентированного комментария ниже вы понимаете значение "яркого", но оспариваете значимость его использования в этом контексте.
Если это предположение неверно, я призываю вас принять лингвистическое путешествие и настоятельно рекомендую участие в https://english.stackexchange.com/.
Если нет, то вот некоторые статистические данные собраны в течение часа:
project_tags_on_freshmeat.net question_tags_on_stackoverflow.com
c 9,747 36,492
java 6,017 141,062
c++ 5,487 79,104
php 4,936 129,235
python 3,830 66,318
javascript 1,464 113,521
ruby 577 26,877
c# 392 196,863
Заключение, с моей точки зрения, Java по-прежнему выглядит довольно... "ярким"?!?!?!
Ответ 3
Вам нужно кроссплатформенное развертывание? Если это так, то Java может выглядеть более удобным, потому что вы можете запускать один и тот же байт-код на разных платформах. В случае Qt вам нужно будет перекомпилировать и, возможно, немного портировать его.
Ответ 4
Я пробовал оба языка. На мой взгляд, С++ может быть гораздо более болезненным (такие вещи, как указатели, утечки памяти и т.д.). Java - лучший способ для более быстрого развития. Также легко разработать кроссплатформенные программы с использованием Java.