Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > Java vs Qt


Автор: aliks 4.6.2009, 11:00
Разрабатывается кростплатформенное приложение клиент-сервер

Что лучше выбрать Java или Qt

Пожалуйста приведите аргументы

Автор: azesmcar 4.6.2009, 11:08
Цитата(aliks @  4.6.2009,  11:00 Найти цитируемый пост)
Разрабатывается кростплатформенное приложение клиент-сервер

Возможно вы мне не поверите, но информации явно недостаточно. К тому же эта тема для религиозных войн. 
приложение написанное с использованием QT не кроссплатформенно, код кросплатформенный. Т.е. у вас будут разные версии для каждой ОС. Но это будет 100% машинный код. 

Автор: aliks 4.6.2009, 11:38
Я понимаю что именно код кросс-платформенный

Автор: azesmcar 4.6.2009, 12:27
aliks

Если вы не хотите превратить тему в бессмысленную войну, сообщите побольше о задаче. Я же сказал, информации недостаточно. Язык программирования выбирают исходя из задачи. А из задачи известно только что нужна кроссплатформенность. Плюс здесь может сыграть роль личные предпочтения если для задачи подходят оба.

Добавлено через 47 секунд
А тему то уже перенесли smile 

Автор: aliks 5.6.2009, 16:29
Личных предпочтений нет, так как и с Java и с Qt работаю относительно недавно. Делается проект по технологии клент сервер, в качестве сервера используется MySQL. Программа будет нечто похоже на бухгалтерию, отслеживание движения товара. Предпологается запускать программу как под виндой так и под линуксом. Честно говоря, у меня есть уже наработки по этому проекту в обоих вариантах. Есть и там и здесь плюсы и минусы. Сам склоняюсь к одному из вариантов, которых пока не хочу озвучивать. Хотелось услышать постороннее мнение

Автор: Vasay 5.6.2009, 17:19
aliks, 

Цитата

в качестве сервера используется MySQL


Вы таким образом хотели сказать, что у Вас двкхзвенная архитектура (БД - клиент)? 

приложение клиент-сервер обычно подразумевает трехзвенную архитектуру  (БД - сервер - клиент), что дает большую гибкость, масштабируемость и безопасность. 

Автор: azesmcar 5.6.2009, 17:30
Цитата(aliks @  5.6.2009,  16:29 Найти цитируемый пост)
Программа будет нечто похоже на бухгалтерию, отслеживание движения товара

Я бы выбрал ни то, ни другое.
WEB smile 
а на эту тему религиозная война у нас уже была  smile 

Автор: Vasay 5.6.2009, 17:58
azesmcar, 

Цитата

Я бы выбрал ни то, ни другое.
WEB  smile   


А чем для WEB плоха Java?  
К тому же можно сразу сделать и Web и десктоп с минимумом лишнего кода.

Автор: azesmcar 5.6.2009, 19:05
Цитата(Vasay @  5.6.2009,  17:58 Найти цитируемый пост)

А чем для WEB плоха Java?  
К тому же можно сразу сделать и Web и десктоп с минимумом лишнего кода.

Java для веб - имеется ввиду JSP? Тогда не получится тот же код и для десктопа и для веб. А если писать аплет - тогда какая разница веб или десктоп. Это практически одно и тоже, просто открывается не в отдельном окне а в браузере. Хотя не исключено что я просто чего-то не знаю, я все таки не очень близко знаком с Java. А  так вообще - ничем неплох smile просто если писать Web - тут выбора больше. Можно еще подумать и почитать. smile может есть личные предпочтения smile

Автор: Vasay 5.6.2009, 19:33
azesmcar, 
Цитата

Java для веб - имеется ввиду JSP?


JSP - это только один из вариантов реализации view. Для десктоп приложения придется писать свое view, используя, например, swing.
Однако реализация бизнес-логики может быть одинаковой для web  и  десктоп приложения (а это, впринципе, основная часть кода) - тут, конечно, есть варианты реализации, конечный выбор которых зависит от условий задачи. 


Автор: azesmcar 5.6.2009, 20:01
Цитата(Vasay @  5.6.2009,  19:33 Найти цитируемый пост)

JSP - это только один из вариантов реализации view. Для десктоп приложения придется писать свое view, используя, например, swing.
Однако реализация бизнес-логики может быть одинаковой для web  и  десктоп приложения (а это, впринципе, основная часть кода) - тут, конечно, есть варианты реализации, конечный выбор которых зависит от условий задачи. 

Ну если отделить только бизнес логику - то да. smile Но в таком случае можно использовать любой ЯП. Java преимуществ не дает. Написать к примеру бизнес логику на QT в виде DLL (so) и загружать эту DLL в CGI/PHP/Perl/Python/Tcl так можно продолжать бесконечно smile

хотя не надо слишком прислушиватся к этому..мое мнение предвзято..
но мы же в религиозных войнах  smile 

Автор: Vasay 5.6.2009, 20:20
Цитата

Ну если отделить только бизнес логику - то да. 


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

Кроме того, используя такие фрэймворки как spring писать иначе, просто не получится smile

Цитата

Написать к примеру бизнес логику на QT в виде DLL (so) и загружать эту DLL в CGI/PHP/Perl/Python/Tcl 


А как все это отлаживать? ИМХО - это уже камасутра. 

Цитата

Java преимуществ не дает. 


Попробуйте Spring и поймете, какие преимущества дает. 

Автор: azesmcar 5.6.2009, 20:26
Цитата(Vasay @  5.6.2009,  20:20 Найти цитируемый пост)
Отделять бизнес-логику - это хороший тон, на чем бы вы не писали.

Нет, я сказал не отделить бизнес логику, а отделить только бизнес логику. Имелось ввиду интерфейс писать для каждого свой.

Цитата(Vasay @  5.6.2009,  20:20 Найти цитируемый пост)

А как все это отлаживать? ИМХО - это уже камасутра. 

Ну присойденять надо в уже отлаженном состоянии. Прежде чем присупить к рисованию - бизнес логике должна стабильно работать, ну более менее smile


Цитата(Vasay @  5.6.2009,  20:20 Найти цитируемый пост)

Попробуйте Spring и поймете, какие преимущества дает.  

А мне оно надо smile когда мне начнут за это платить тогда и попробую..а пока - верю на слово smile

Автор: Vasay 5.6.2009, 21:03
Цитата

Ну присойденять надо в уже отлаженном состоянии. Прежде чем присупить к рисованию - бизнес логике должна стабильно работать, ну более менее smile



Гм... могу быть конечно не прав, но Controller нам придется писать на CGI/PHP/Perl/Python/Tcl , так как ек вижу не извращенного способа вынести его в модуль на so/dll

Автор: azesmcar 5.6.2009, 21:11
Цитата(Vasay @  5.6.2009,  21:03 Найти цитируемый пост)

Гм... могу быть конечно не прав, но Controller нам придется писать на CGI/PHP/Perl/Python/Tcl , так как ек вижу не извращенного способа вынести его в модуль на so/dll

Ну, насчет CGI - если это C++ все просто. A вот для остальных есть http://www.swig.org/. Писать ничего не надо, он сгенерирует враперы. Я сам использовал только для Tcl, но он генерирует и для
Цитата

    *   Tcl 8.0 and newer versions.
    * Python 1.5 and newer.
    * Perl 5.003 or newer.
    * Guile 1.3.4 and newer. 

The following languages are also supported in swig-1.3.6 onwards.

    * Java JDK 1.1 and newer.
    * Ruby.
    * Mzscheme. 

PHP support was added in swig-1.3.11.
Objective Caml (Ocaml) and Pike support was added in swig-1.3.14.
Support for C# and the Chicken scheme compiler was added in swig-1.3.18.
Support for Allegro CL and Modula-3 was added in swig-1.3.22.
Support for Lua, CLISP and Common Lisp with UFFI was added in swig-1.3.26.
Support for Common Lisp with CFFI was added in swig-1.3.28.
Support for R was added in swig-1.3.30.
Support for Octave was added in swig-1.3.35.

Далее после компиляции специальной библиотеки идет обыкновенный вызов функции DLL, также как родных функций самого скрипта/языка.
Для примера в Tcl будет так
Код

load mywrappedlib.so
# и тут вызовы функций


Тут есть один минус - мы теряем возможность иметь обьектно-озабоченный интерфейс - но я предпочитаю реализовывать бизнес логику в виде API функций.
И у этого подхода даже есть множество плюсов. Кроме интерфейса мы можем дать клиенту DLL. Записать на диск чуть модернизированный интерпретатор какого нибудь скриптового языка (пусть это будет Perl) , чтобы он автоматически подгружал нужную библитеку и сказать что наша программа поддерживает script programming. Вся логика то в DLL реализована. 

Или я не так понял значение слова Контроллер?

Автор: Vasay 5.6.2009, 21:32
azesmcar, 

Сори, не заметил, что Вы отредактировали пост....  Мой пост потерял актуальность...

Автор: azesmcar 5.6.2009, 21:39
Я вроде добавлял только, не удалял ничего.

Автор: Vasay 5.6.2009, 21:54
Цитата(azesmcar @  5.6.2009,  21:39 Найти цитируемый пост)
Я вроде добавлял только, не удалял ничего. 


Просто, прочитав первый вариант Вашего сообщения,  я не совсем Вас понял и попросил уточнить. Но Вы уточнили раньше, чем я опубликовал свой пост smile и как следствие - мой пост стал не актуален. 

Сейчас я понял Вашу мысль. 

Хотя говоря 
Цитата

Гм... могу быть конечно не прав, но Controller нам придется писать на CGI/PHP/Perl/Python/Tcl , так как ек вижу не извращенного способа вынести его в модуль на so/dll


Я имел ввиду немного другое - что мы не сможем (как мне кажется) оставить на CGI/PHP/Perl/Python/Tcl только представление.  Придется писать какую-то часть логики, что приведет к усложнению отладки.

Цитата

Или я не так понял значение слова Контроллер?


Я имел ввиду http://ru.wikipedia.org/wiki/Model-View-Controller 


Автор: azesmcar 5.6.2009, 22:01
Цитата(Vasay @  5.6.2009,  21:54 Найти цитируемый пост)
Я имел ввиду немного другое - что мы не сможем (как мне кажется) оставить на CGI/PHP/Perl/Python/Tcl только отображение.  Придется писать какую-то часть логики, что приведет к усложнению отладки.

эммм, да. тут вы правы, полностью разделить бизнес логику и гуи к сожалению не получается. Тут отладка немного усложнится, но не так чтобы боятся этого.. в конце концов DLL не только в этом случае пишут. Отлаживают же.

Цитата(Vasay @  5.6.2009,  21:54 Найти цитируемый пост)
Я имел ввиду http://ru.wikipedia.org/wiki/Model-View-Controller 

теперь понял.

Автор: aliks 10.6.2009, 10:20
Частично бизнес-логика выноситься на скл сервер в виде хранимых процедур и триггеров.

В принципе эту дискуссию можно прекратить, так как я уже определился с языком. И соответственно прекратил развивать одно из направлений  smile 

Автор: zloyGamer 13.6.2009, 17:01
aliks - такой хитрый тип.. smile
Цитата

Сам склоняюсь к одному из вариантов, которых пока не хочу озвучивать.
Цитата
В принципе эту дискуссию можно прекратить, так как я уже определился с языком.

так ничего и не сказал по поводу выбора.., какой язы и почему, 
за эти 6 дней весь мозг мне разрушил smile а я так и неузнаю к чему пришли...

поделитесь..

Автор: aliks 18.6.2009, 11:40
Это не хитрость, а просто дипломатия  smile 

Выбор все таки пал на Java. Аргументы:

1. Одним из главных аргументов в данной ситуации, а я думаю, что такая ситуация встречается практически у каждого это скорость разработки проекта.
1.1 Наличие удобной среды разработки
1.2 Наличие большого количества сторонних компонентов (классов), из которых можно выбирать по мере необходимости

Для данной работы все таки по моему мнению, лучше подходит Java. К такому выводу я пришел после 6 месячного изучения/работы с этими языками. До этого я 8 лет работал исключительно с Delphi, поэтому мне было важно и самому попробовать и услышать чужое мнение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)