| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Java vs Qt |
| Автор: aliks 4.6.2009, 11:00 |
| Разрабатывается кростплатформенное приложение клиент-сервер Что лучше выбрать Java или Qt Пожалуйста приведите аргументы |
| Автор: Skynin 4.6.2009, 11:56 |
| Неккоректно вообще-то сравнивать, и "кростплатформенное приложение клиент-сервер" неинформативно, но если без занудства то Java: 1. Масса решений апробированных клиент-серверных решений. 2. Язык для разработки более простой (а значит приложение будет надежней, и время разработки меньше) чем чаще всего подразумеваемый для Qt C++ |
| Автор: aliks 5.6.2009, 16:32 |
| извини не совсем понял вот эту фразу " чем чаще всего подразумеваемый для Qt C++ " |
| Автор: aliks 10.6.2009, 10:21 |
| А понятно, говоря Qt, я тоже подразумеваю С++ |
| Автор: unicuum 10.6.2009, 21:14 |
| А меня напрягают Java приложения. Они как правило дико тормознутые с нестандартным интерфейсом. Некоторые ещё через задницу приходится запускать настраиваясь на виртуальную машину. Те же которые нормально запускаются в другой ОС все равно надо по другому запускать. Qt SDK и C++ будет быстрее и не менее надёжно чем Java. Но дело в другом, если возникают вопросы Java или Qt, то значит человек вообще ещё не готов писать клиенты, потому что для тех кто пишет этот вопрос очевиден и в каждом случае решается индивидуально. |
| Автор: aliks 11.6.2009, 14:33 |
| Современные машины свободно позволяют запускать JRE без всяких тормозов. Согласен, что Qt получается 100% машинный код и это работает быстрее. Что касается задницы и Java, тоже можно сказать и про Qt/MySQL/Windows - с бубном и через задницу получается откомпилировать дрова для майки. Кроме того по Java гораздо более примеров и свободных компонентов в инете чем для Qt |
| Автор: Vasay 11.6.2009, 14:54 | ||||||
unicuum,
Согласен, что Swing (именно Swing, а не Java) - не отличается быстродействием, однако, даже хиленькая современная машина потянет без проблем. А если этого мало - есть http://ru.wikipedia.org/wiki/Standard_Widget_Toolkit.
Не согласен, тот же Swing отлично маскируется под системные настройки, а вот qt не всегда. В данный момент в моем Gnome именно qt приложения выглядят "не в тему".
Ага, а QT перекомпилировать под каждую систему не надо? В Java написал скрипт для запуска под Win, Linux - и у пользователя никаких проблем, а если и нет скрипта, то можно и jar запустить. |
| Автор: unicuum 11.6.2009, 17:29 | ||
По C++ гораздо больше примеров чем по Java и некоторые из них позволяют то, о чём Java может только мечтать. Иными словами у связки Qt и C++ гораздо больше возможностей. Ты сам задал вопрос и сам же агитируешь за Java. Я уже сказал, или ты знаешь, на чём хочешь писать, или нет. Или ждёшь что тут все начнут говорить, что Java супер, и ты утвердившись в правильности своего выбора пойдёшь со спокойным сердцем ваять прогу. А виртуальную машину Java на каждую систему ставить не надо? |
| Автор: kemiisto 11.6.2009, 17:33 | ||
Враньё! Как раз таки наоборот! |
| Автор: Vasay 11.6.2009, 17:42 | ||||||
unicuum, ++
Сравнение некорректно: qt либы тоже надо ставить на каждую машину! НО кроме этого должен быть билд приложения под эту систему, если производитель его не сделал, то про запуск qt программы можно забыть, даже если qt есть под эту систему.
Вы уверены? Если верить TIOBE то Java по популярней C++ будет : http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Согласен, такое есть, но есть и обратное. Причем если c++ позволяет больше в области системного ПО, то в области прикладного, а темболее в области web Java дает больше возможностей. п.с. ни в коем случае не говорю, что qt хуже Java или наоборот, просто они разные, и для моих прикладных задач Java подходит больше. Добавлено через 1 минуту и 59 секунд Ну лично в моей системе Java приложения великолепно маскируются под гномовские, а вот qt-шные - фиг, единственное что смог - подобрал похожую тему, но различия все равно есть. |
| Автор: kemiisto 11.6.2009, 18:06 | ||
http://labs.trolltech.com/page/Projects/Styles/GtkStyle идёт в поставке Qt начиная с 4.5. А вот с Java у меня проблемы были... Например, при отрисовке Combobox'ов. |
| Автор: unicuum 11.6.2009, 18:17 | ||||||||
Сухая установка, не нужны инсталляторы, библиотеки лежат рядом с программой, копируй и пользуйся. К тому же можно скомпилировать статично, что сделает программу вместе с библиотеками меньше (сейчас не буду касаться вопроса что по этому поводу думает Nokia и технологичные тролли
Должен быть билд Java машины под систему, и я не знаю у скольких людей хватит умения его провести. В Qt же мало мальски грамотный пользователь может провести такую компиляцию если об этом позаботится разработчик создав для этого спец. файлы, чтобы как говорится и дурак справился, и это помимо самого разработчика, который тоже может сделать билд.
У меня эта штука без ява-скрипта даже не открывается. К тому же я не говорю, что C++ станет самым популярным. Хорошо им пользоваться могут лишь мастера своего дела, а таких отнюдь не подавляющее большинство. Не то чтобы на Java ваяли чайники, просто ваяют они там не всё что доступно на C++. Высший уровень контроля над компьютером с использованием языка высокого уровня абстракции им попросту не доступен.
Так и я о том же, дело личного выбора. В перспективе C++ лучше, но до этой перспективы надо много кода написать. Многие просто не доживут, погибнут в неравной борьбе с собственными творениями.
Версия 4.5 это вообще большой удар для альтернативных систем, даже в мире самого C++. Применять такие примеры все равно что по яйцам врезать. |
| Автор: Vasay 11.6.2009, 18:24 | ||||||||
У меня в системе qt4.4.3 QGtkStyle в репозитарии отсутствует. В любом случае - не нравится Swing, есть SWT рисующая через GTK+ Вот-вот должен выйти JavaFX под Linux (впринципе, запустить уже можно) - qt таких возможностей для отрисовки не предлагает (хотя ИМХО JavaFX тормозить будет посильнее Swing-а) Добавлено @ 18:38
А сколько она будет занимать? При желании можно и jre в инсталятор засунуть (15-17мб).
Тут разница в том, что для Java достаточно билда jre под конкретную систему, а разработчик приложения не должен задумываться над тем под какую систему компилить ему свою программу, разработчик же qt приложения должен скомпилить свое приложение под все системы на которых он хочет, чтоб запускалось его ПО. А он может этого не сделать. С точки зрения кросплатформенности Java удобней QT.
Не в коем случае не спорю, что возможности с++ больше Java. Но есть вещи, которые сделать на c++ в разы сложнее и эта сложность не оправдана, когда речь идет о создании конечного приложения. Как я неоднократно говорил, слабым местом c/с++ является платформозависимость кода после компиляции, что делает его не очень удобным в современном мире, и в итоге будущее за такими языками платформами, как .NET, Java... |
| Автор: unicuum 11.6.2009, 18:40 | ||
А не проще сразу на C++ через GTK+ рисовать? Сейчас уже мочилово пойдёт не между Java и Qt естественно под C++, а между Qt SDK, GTK+, WxWidgets и прочими.
Qt может отрисовывать через OpenGL. Просто скачай последнюю версию и полюбуйся. |
| Автор: Vasay 11.6.2009, 18:53 |
| unicuum, Я так понял Вы фанат низкоуровневого программирования? Я в свое время писпл на asm, правда не для x86, больше не хочу. Мое мнение, меньше кода - меньше ошибок, быстрее результат. Зачем писать сотни строк кода там, где достаточно прописать пару строчек в xml файл? Использование вашего подхода мне финансово невыгодно. |
| Автор: unicuum 11.6.2009, 19:05 | ||
Какой-то дурацкий вывод. Ты мне покажи где я написал, что люблю программировать на ассемблере. А C++ между прочим это язык высокого уровня абстракции. Недавно тут бокси в лице лазина (или лазин в лице бокси) на меня наезжала. Типа докажи или иди и дальше нецензурная брань. |
| Автор: Vasay 11.6.2009, 20:15 | ||
unicuum,
А какой еще вывод сделать, когда вы сравниваете JavaFX и OpenGL ? Вот мне и вспомнился асм... |
| Автор: unicuum 11.6.2009, 21:31 | ||
А теперь покажи мне где я сравнивал JavaFX и OpenGL, ох уж эти сказочники. У виртуальных машин этого типа вообще нет никакого будущего, именно поэтому добившись кое-каких успехов на данном поприще я с них и съехал. Та же дотнетина, если подключение к базам ещё приемлемо, да и 3д графику можно кое-как запустить, но в конце натыкаешься на отсутствие портов, да и те которые есть юзают C++ библиотеки. Забавно да, вместо того чтобы сразу писать на C++, пишем на другой системе, заведомо худшей и делаем порты с C++ теряя время. Но есть и положительные моменты. Пока есть люди убеждающие других пользоваться мурой, часто даже искренне в это веря, конкуренция резко снижается. Обществу это конечно вредит, зато сотен миллионов успеха добьются лишь единицы, что тоже неплохо. |
| Автор: Vasay 11.6.2009, 22:14 | ||||||
Страницу назад переверните:
Похоже Вы, прежде чем ответить, даже не удосужились посмотреть что такое JavaFX. Можете посмотреть в вики http://ru.wikipedia.org/wiki/JavaFX Однако там обозначена только одна грань этой технологии - использование для интернет, но так же она может быть использована даля создание красивых десктоп интерфейсов (типа, конкурент WPF от MS). Если Вы собрались то же самое реализовывать напрямую через OpenGL - флаг Вам в руки.
Я бы на Вашем месте так не злорадствовал - при Вашем подходе Вы не попадете в те успешные единицы, так как пока другие будут запкскать свои проекты, Вы будете ловить "access violation", искать причину, почему не компилится Ваша софтина под новый процессор, и мучиться в попытках сделать web-интерфейc. Не обижайтесь - такова реальность. С++ уходит в узкоспециализированные ниши и область системного программирования, так же как в свое время ушел ассемблер. Благодаря таким проектам как QT он еще протянет несколько лет, до тех пор пока MS не выпустит .NET ОС (аля http://ru.wikipedia.org/wiki/Microsoft_Singularity). Добавлено через 11 минут и 36 секунд unicuum, Свое мнение, о том что, по крайней мере, в windows будущее за VM (в первую очередь, конечно, за .NET но и у Java неплохие шансы остаться на плаву, так как ее байт-код платформо независим) я высказал в следующих постах: http://forum.vingrad.ru/index.php?showtopic=177934&view=findpost&p=1292217 http://forum.vingrad.ru/index.php?showtopic=258295&view=findpost&p=1867585 |
| Автор: unicuum 12.6.2009, 10:44 | ||
Пусть, именно .NET в отличие от той же Java я знаю сверху и донизу, прочитал десятки книг и несколько версий MSDN, скачал множество вспомогательных программ, программировал на трёх языках входящих в основную поставку VS. Именно в нём я и разочаровался, когда передо мной стала стена дальше которой я не мог пройти, или мог, но это требовало огромных умственных усилий и подключение к тому же native C++. Если тебе нравится, то почему бы и нет, а я дерьма уже накушался. |
| Автор: kamre 14.6.2009, 10:17 | ||||
Swing http://forum.vingrad.ru/index.php?showtopic=24644&view=findpost&p=1768998 маскируется даже под WinXP интерфейс и жрет при этом больше сотни мегабайт памяти на простом окошке. GTK look and feel также очень корявый и тормозной, Qt начиная с версии 4.5 лучше маскируется под GTK через QGtkStyle и работает быстрее. Добавлено через 14 минут и 50 секунд
Рекомендуется взглянуть на http://labs.trolltech.com/blogs/2009/05/13/qt-declarative-ui/ и на http://labs.trolltech.com/page/Projects/Graphics/Kinetic. Так что аналоги JavaFX для Qt уже делаются. А если еще учесть, что Java2D http://trac-hg.assembla.com/jgears/wiki/ResultsHome по сравнению с Qt Arthur в скорости рендеринга качественной 2D графики, то для desktop (а может быть и mobile, не зря же Nokia купила Trolltech) приложений Qt лучше. |
| Автор: Vasay 14.6.2009, 12:53 | ||||||||
| kamre, Ну насчет маскировки - к Java претензий давно не было (win я правда не пользуюсь), r Qt есть сейчас, но qt у меня 4.4. если в 4.5 проблема решена - то прекрасно Насчет "жрет память" - то что qt будет поэкономичней, я не спорю, но "сотни мегабайт памяти на простом окошке" - Вы погорячились, у jvm есть привычка резервировать себе память, но ее потребление можно ограничить. Да и отдает она ее, если приложение не используется.
Чисто для desktop - вполне возможно, но, в данный момент мы обсуждаем типичную бизнес задачу (в соседней теме было уточнение):
Java здесь поудобней QT будет. А если еще потребуется web-морда, то тут одним qt не обойтись. Хоть unicuum в одной из соседних тем и говорит, что web приложения надо писать на с++, все же, для таких задачь есть более удобные технологии, и Java одна из них.
С планами Nokia не знаком, но слышал, что Windows Mobile 8 и Windows CE будут сделаны на базе Midori (коммерческой версии Singularity)
Прежде чем так резко говорить - уточните задачи, с которыми имеете дело. Есть достаточно много областей, где использование с++, даже с такими либами, как qt, приведет к неоправданным затратам времени и денег, при более низком качестве конечного продукта. |
| Автор: unicuum 14.6.2009, 22:58 | ||
Качество продукта получается низким вовсе не из-за C++, а из-за кривых программистов. Тоже самое касается и времени. Если программист в C++ абсолютный ноль, но умеет писать на C# (.NET), Java (Java Virtual Machine) и прочих, то понятное дело, что лучше его не привлекать даже к аналогичным проектам на C++. Твоё выссказывание про качество это фейк. |
| Автор: Vasay 15.6.2009, 00:46 |
| unicuum, Дело не в программистах. Программисты люди, а людям свойственно ошибаться, какими бы гениальными они ни были. Даже если не учитывать, что вероятность ошибки в одной строчке кода при программировании на c++ выше чем при программировании на Java или .NET, то для решения задачи, поставленной в этой теме на с++ придется написать больше кода. Больше кода - больше ошибок. Даже если допустить, что Вы гениальный прогаммист, который вообще не совершает ошибок, Вы же не собираетесь покорять мир в одиночку? Вам понадобятся сотрудники, а найдете ли Вы таких же гениальных как Вы? Кстати, Вы так и не уточнили задачи, с которыми имеете дело, что для вас .NET "###". |
| Автор: unicuum 15.6.2009, 05:39 | ||
На дотнете в версии 1.1 и 2.0 я получал доступ к базам данных, записывал или выводил это в каком-либо виде на экран. К Access доступ прошёл, к SQL Server тоже, к SQLite пришлось взять интегратор от Mono и скомпилированную библиотеку dll, но тоже прошло, к MySQL интегратор с оф. сайта, ну и так далее. Базы в общем и целом держит нормально. Что касается стандартного GUI, тоже вроде работает. Если делать свои контролы, то только с нуля, то что используется во фреймворке не поддаётся нормальному изменению без спец. вызовов к винде, потому что тупо включено в систему из COM как есть. Мультимедийные возможности через DirectX (срабатывает всё, даже старый DirectDraw), появился XNA, OpenGL через TAO Framework. Ограничение по форматам вывода, поддержка только особых видов. Если нужно расширенное количество мультимедиа форматов, то лучше сразу убиться об стену. Все дополнительные действия с устройствами делаются через специальные порты, исключение лишь для файловой системы и сети. Работа с файлами проходит нормально, работа с сетью тоже, оно не лучше чем в C++ и Qt, но и не хуже по функциональности. Более глубокий уровень работы с форматами проблематичен. Вообще, писать какие-нибудь кодеки или ещё что, наверное не стоит, если есть возможность сделать это на C++. Весь дотнет построен по шаблону делегирования, а там дальше всё скрыто и чистая проприетарщина, технология чёрного ящика. C# хороший язык, речь именно о языке. VB.NET тоже хороший язык, не вижу разницы между ним и C#, то есть могу писать на любом. Managed C++ странный, используется для связи с мультимедийными библиотеками. Можно использовать и его, но это у них неудачная разработка, от истинного C++, который они называют native там одна видимость. Главный недостаток дотнета в скорости, причём пока идёт делегирование от тех же C/C++ всё хорошо, но если понадобится работать с особенностями различных форматов, будет плохо. Ещё будет плохо, потому что чисто дотнетных библиотек очень мало, пожалуй лишь на основные форматы, одна сплошная маршализация. По сложности программировать на обычном C++ и например на C# одинаково. Любое заявление что C# или любой другой язык дотнета намного проще, эффективнее, что там всё быстрее, а ошибок гораздо меньше, сплошной фейк. Между прочим исследование рефлектором различных версий основных дотнетовских библиотек принесло мне не мало пользы. Отрицательный фактор для дотнета в том, что весь мир опенсорса построен на C/C++, и строился он десятилетиями. На дотнете ничего этого нет, библиотек нет. И большинство того чего нет, или нет, или тупо создаётся библиотека, которая перенаправляет вызовы на те самые C/C++ библиотеки. Теперь что касается Qt или других GUI либ. По возможностям равно дотнету, но есть преимущество, это любая библиотека C++. Отрицательный фактор метакомпилятор (MOC), некоторые считают его преимуществом, я же жутким недостатком. Создавать формы не сложнее чем в дотнете, для этого есть компилятор из файлов дизайнера в код (UIC). Между прочим в вижуал студии тоже самое, он сплошь вот из таких приложений состоит. В целом же если рассматривать современное программирование, то на дотнете нет ни одного крутого приложения, на ява их мало, на C++ огромное количество, из которого часть написана на Qt. А дотнет мне вот чем не нравится, помимо того, что на нём мало библиотек, вместо того, чтобы их написать, и нормально портировать платформу на другие операционные системы, каждый несколько лет происходит полная перезагрузка, меняются стандарты, начиная от языка и кончая фреймворка. То есть если я раньше этого не знал, то теперь знаю, что подождав какое-то время, майкрософт выпустит свой дотнет версии 10.0, на остальные же версии будет забито. Вместо того чтобы написать для них библиотеки и хоть немного приблизить возможности к C++, они будут объявлены устаревшими. Естественно, каждый раз фреймворк не совершенствуется, а наборот, чистота абстракций теряется. Говорю это, потому что смотрел основные библиотеки рефлектором, они там совсем охренели, мало того что проделегировали вызовы Win32, это допустимо, так ведь начали склеивать классы уже самого дотнета, хотя ООП ясно говорит, что их надо разделять. Есть ужасно уродские примеры в их проектировании фреймворка. Таким образом я сделал вывод, что вместо того, чтобы учить лямбда выражения, лучше свалить на что-то более вменяемое в плане развития и одновременно технологичное. Хотя следует отметить, что я учил C++ задолго до появления платформы .NET и то что в какой-то мере овладел дотнетовскими технологиями не меняет этого факта. Иными словами у меня есть выбор между тем что я знаю и тем что я знаю. Многих кто ратует за дотнет и говорит, что C++ это хуже, на нём сложнее разрабатывать, он ненадёжен и всё такое, сами даже его никогда не пробовали. Или пробовали пять минут, разочаровались, что всё само по себе не программируется. Не важно кто и что выбирает, важен именно осознанный выбор, а не так, Java круче потому что я больше ничего не знаю, или .NET круче по той же самой причине. |
| Автор: Vasay 15.6.2009, 11:21 |
| unicuum, Я согласен с Вами во многом. Однако смотрю немного под другим углом. Ставлю другие приоритеты. Сейчас, к сожалению, времени написать развернутый ответ нет - постараюсь сделать это вечером. |
| Автор: A5uKa 15.6.2009, 13:13 |
| ну я иду всегда по простейшему пути, я считаю это NetBeans и Java всё свеженькое будет вполне красиво, а с остальным убивать придётся и время и результат не очевиден... |
| Автор: unicuum 15.6.2009, 13:44 | ||
Вот именно потому, что так думают многие, программист C++ более редкий вид, а то что редкое, как правило более ценное. Тот кто в совершенстве овладеет Java будет так же квалифицирован, как и тот кто овладеет C++, но из-за дисбаланса их возможностей вторые окажутся в более привилегированном положении. Это не значит, что никто не возьмёт на работу Java программиста, и не значит что Java плох, это значит, что о C++ программисте будут думать как о большем профессионале. И это при том, что умственных усилий тратится одинаково, и скорость и качество написания программ такая же в обоих случаях. Впрочем стоит отметить, что немалая часть программистов на яве, дотнете и других, просто не упрётся в тот технологический предел виртуальных машин, которые существуют. Возможность подключаться к форматам вплоть до их структуры, выдумывать свои собственные и алгоритмы для работы с ними, и многое другое, всё это нужно далеко не каждому. А вот что неплохо бы сделать для самообразования, так это попробовать писать используя различные технологии. Расширяет кругозор, особенно если трансформировать реализации из одной системы в другую. Не надо зацикливаться на чём-то одном. |
| Автор: Vasay 16.6.2009, 02:26 | ||||
unicuum,
Вопрос - возможностей для каких задачь? Воспользуйтесь собственным советом и "расширьте кругозор". Мы спорим с вами в двух темах: В этой, где обсуждается типичное бизнес-приложение: Кросплатформенное клиент-сервер приложение. Добавим сюда еще пожелание иметь доступ к некоторым функциям через web-интерфейс и С++ в целом, как и qt в частности станут очень неудобными для решения этой задачи. И в теме про программирование для веб, где с++ не даст ничего кроме головной боли разработчику. Да есть задачи, где с++ нет равных. Но они обсуждаются не в этой теме. И уж не в теме про web. Вы дали очень правильный комментарий:
Задумайтесь, зачем появилась Java когда был c++, почему она стала самым популярным языком в мире (если верить различным статистикам). Почему ее так любят огромные корпарации типа Oracle и IBM ? Почему MS создала .NET ? Наверно, на то были причины. Наверно С и С++ чем-то не устраивают. Зачем понадобился .NET я уже высказывал свое мнение (ссылки выше, в посте от 11.6.2009, 22:14) Зачем нужна Java? С точки зрения кросплатформенности (*n?x, win, Mac...) - очень удобно (всяко лучше чем QT, который нужно перекомпилировать под каждую платформу ), хотя, пожалуй, это наименее востребованная составляющая. Независимость байткода от архитектуры процессора сделала ее лиделом среди решений для мобильных устройств. web - тут вообще php засел прочно, хоть java и предоставляет больше возможностей, свой момент она немного упустила (кроме Java конкурентов у php тут много, но с++ среди них нет) Но самое главное - это возможности для написания корпоративных приложений. Пожалуй именно в этой (очень востребованной) области у Java конкурентов нет. Разве что .NET, но он врядли сможет конкурировать ввиду проприетарности. п.с. я не говорю, что Java круче с++ (сравнивать их в лоб не корректно), я говорю что для некоторых, весьма востребованных задач Java гораздо удобней. п.п.с. Ну а в мире win, хотим мы того или нет - .NET в ближайшее время, несмотря на все перечисленные недостатки, будет править бал. Так хочет MS. И правильно делает - иначе так и останется системой для вымирающего x86. |
| Автор: unicuum 16.6.2009, 10:41 | ||
Признайся, ты ведь на Qt никогда не программировал. |
| Автор: Vasay 16.6.2009, 10:59 | ||
| unicuum, Программировал, немного, но достаточно, что бы иметь предсятвление о достоинствах и недостатках Если Вы считаете, что я где-то неправ, говоря:
Обоснуйте |
| Автор: unicuum 16.6.2009, 17:03 | ||
И в Java и в Qt используется модель MVC, значит данные можно вывести как на web, так и на gui форму. То что у тебя не хватит опыта сделать это на Qt не значит что на Qt это требует объективно больше усилий. Ещё раз могу повторить, люди использующие разные системы видят мир программирования по разному. Смотря на системы которыми они не пользуются начинают думать, что те сверхсложны и непригодны для их целей. Заметь, в моих рассуждениях не встречается того, что Java сложная, а Qt простой или наоборот. В данном случае это субъективная сложность, зависящая от конкретных людей, но не от используемой технологии.
Вот смотри, ты сейчас написал то что умеет Java, но не подумал о том, что этими достоинствами обладает Qt, именно так я бы его и рекламировал. Недостаток твоего личного опыта просто сделал антогониста из альтернативных технологий. Причём их основа имеет право первого рождения, а потенциальные возможности куда шире, хотя и не каждый сможет их извлечь. На самом деле уже давно не имеет смысл вопрос на каком языке или в какой системе программирует программист, важно что он сам из себя представляет. Моё убеждение то же самое, ни .NET, ни Java не выдерживают конкуренции с возможностями C++. Извлечение этих возможностей уже дело программиста. Пробовать нужно всё, в будущем поможет. |
| Автор: Vasay 16.6.2009, 18:22 |
| unicuum, О unicuum-сан, раз Вы считаете себя cэнсэйем в области Qt, может покажите мастер класс? И приведете пример, как легко и просто средствами qt реализовывать web-интерфейс (хотя бы с базовыми возможностями в виде аутентификации, постраничного вывода информации из бд и ее редактирование с валидацией)? Ну или, хотя бы приведите ссылочку на такой пример |
| Автор: Любитель 16.6.2009, 21:59 | ||||||||||||||
Про http://labs.trolltech.com/page/Projects/Graphics/Kinetic уже писали, почему проигнорировано?
Вы не в ту сферу просто смотрите. Веб-фреймворки, нормальные ORM-ы, средства для удобного создания распределённых приложений - всего этого в С++ в нормальном виде нет. И не нужно. С++ не для этого.
Ну.. поправочка - в области классической прикладнухи. Всему своё место
Причём тут COM и обычные виндовые текстбоксы и кнопки (из user32.dll которые) - вообще не понятно, но да ладно... Если вам нужен навороченный красивый ui - то здесь WPF без сомненья выигрывает. WinForms в первом приближении - это ОО-шная обёртка над нативным виндовым ГУИ. Во втором приближении - средства датабиндинга, куча всяких новых контролов (вроде грид-вью, тулстрипов и пр.) и т. д.
Код библиотеки классов .Net доступен, если что.
Ну.. во-первых, Managed C++ давным давно мёртв. Точнее переродился в (ильно отличающийся) C++/CLI. В своей области (интеграция с нативным кодом, когда не достаточно P/Invoke и COM Interop-а) он справляется отлично. Более того - альтернатив (нормальных) в этой области нет. А для всего прочего - ещё раз, давайте использовать инструменты для своих целей
Не смешно.
|
| Автор: Vasay 16.6.2009, 22:32 | ||||
Мне пока нечего сказать - пощупать надо
Есть подозрение - что не только. Если просмотреть на то, над чем работает MS (http://ru.wikipedia.org/wiki/Microsoft_Singularity, http://en.wikipedia.org/wiki/Midori_(operating_system) ) понимаешь, что только прикладным ПО дело не ограничится.
Думаю, дело даже не в навороченности ГУИ, а в задачах клиент-серверного приложения - если речь идет о чем-то типа скайпа, то я бы QT поставил над Java. Но в соседней теме aliks уточнил - что речь идет о программе для доступа к БД. |
| Автор: unicuum 16.6.2009, 22:39 | ||||||
И ты правда думаешь, что я буду тратить время и писать веб-приложение. Ни на Qt, ни на Java, ни на .NET я не буду его делать пока мне это не понадобится. Бери стандартные примеры входящие в стандартную поставку, там есть работа с http и работа с базой. А если нужно что-то более конкретное, то тебе на http://sourceforge.net. Уж там этих ссылок огромное количество. потонешь в них если не знаешь, что хочешь получить. Это твой аргумент не катит по очень простой причине, коды C++ одни из самых распространённых в мире программирования открытого кода, и на Qt сделано огромное число приложений. Веб-морды без проблем выводятся во многих проектах. Хотя тут стоит вот какой факт отметить. В последнее время появилась мода на XSLT, и Qt, как и Java, как и .NET умеют с ним работать. А в том же php этого не нужно, можно, но не нужно. Так что, все дружно переходим на пыхыч?
Внимательней читай, если влом смотреть те сообщения ещё раз повторяю. Речь шла о том, что я открываю код .NET Framework с помощью Reflector, а дальше внутри идут вызовы на обычные библиотеки, которые для декомпилятора естественно недоступны. Да, здесь абсолютно бессмысленный холивар, потому и общаюсь. Может действительно пусть лучше все на Java уходят, меньше проблем для C++ программистов. Добавлено через 2 минуты и 48 секунд
Пользовательский интерфейс skype для windows был разработан в Pascal изпользуя Delphi, версия skype для Linux была написана в C++ с Qt, а версия для Mac OS X была написана на Objective-C с Cocoa. |
| Автор: Любитель 17.6.2009, 00:27 | ||||||||
Ну.. лично я к этому отношусь как к "чисто академическим" проектам. Не знаю. По крайней мере так - не в обозримом будущем точно
Соседней темы не видел
Хорошо. Что от тебя "скрыто" конкретно в .Net, что тебе понадобилось? Да и вообще WinAPI проприетарна по определению. При бесконечном углублении здесь тупик обеспечен. ketnel32, gdi32, user32 и прочие - у тебя есть исходники или предпочитаешь дизассемблить?
Давай будем покультурней немного и как-то.. не надо считать своё мнение единственно верным. |
| Автор: unicuum 18.6.2009, 00:17 | ||
Это же холиварка, здесь должно быть одно мнение и не такое как у противоположной стороны. Если я сейчас скажу, что ява это круто, то вася увянет и не с кем станет спорить. |
| Автор: aliks 18.6.2009, 11:24 |
| Очень интересная получилась беседа. Честно говоря не ожидал, что будет такая горячая дискусия. Честно говоря можно прервать обсуждение по той причине, что с выбором определился. Последнее слово конечно сказал заказчик проекта. Но помимо все конечно я делал и свои выводы и выслушивал мнение различных сторон. 1. Одним из главных аргументов в данной ситуации, а я думаю, что такая ситуация встречается практически у каждого это скорость разработки проекта. 1.1 Наличие удобной среды разработки 1.2 Наличие сторонних компонентов (классов), из которых можно выбирать по мере необходимости 1.3 Возможность в дальнейшем развивать и трансформировать проект по мере необходимости. 2. Так как проект представлял собой клиент-сервер систему для работы с базой данных, считаю, что все разговоры о тормознутость того или иного выбора бессмыслены. И то и другое предоставляют подходящие результаты. 3. Разговор о убогости интерфейса (кажется это упоминалось о Java). А что бухгалтеру или кладовщику нужна программа со встроенным ТВ или со встроенной мигалкой OpenGL??? |
| Автор: unicuum 18.6.2009, 16:47 | ||
Ну с базами Qt тоже замечательно работает, впрочем и Java с ними работает. Это не аргумент для текущей темы, мною рассуждения ведутся не с точки зрения популярности, того что кто то знает, или заранее хочет, а именно с объективной точки зрения. Каков получится конечный продукт, каковы его параметры, вот что важно. |
| Автор: aliks 19.6.2009, 08:58 | ||
Согласен что общее потребление памяти у Java больше. Относительно того что есть задержка при открытии памяти на Java не очень то согласен, хотя может быть у меня машины довольно таки быстрая. С++ имеет лучшую совместимость ...с чем? И как это понять? |
| Автор: unicuum 19.6.2009, 11:51 | ||
А без разницы, Azureus, NetBeans и так далее. Чем лучше и функциональнее программа, тем она тормознутее на Java. То что она показывает как она усиленно загружается не отменяет этого факта. |
| Автор: Ubuntu 19.6.2009, 20:27 |
| Java vs Qt vs .NET ( Только не забывайте .NET тоже является не полностью кроссплатформеным, а тема была создана обсуждения кроссплатформености, тобто оффтопа нету ) Java - тормозная. С++ - падает вдохновение программера. С# - как раз подходит. Например MS VS 2008 SP1 была написана на С#, насколько быстро работает по сранению с NETBeans, при проектировке таких программ были программисты - создатели языков программирования, тобто используют весь потенциал того или иного языка панорамирования. Мелкомягие смогли написать программу С# которая работает быстрее, чем был написан предыдущая версия VS, которая была написана на С++. Гигант MS VS 2008 SP1 был написан на С#, и крошечный NETBeans написан на Java. Всегда считался С# на 10-15% медленым нежели С++, Java на 10-15% медленым нежели C#. Программы разработаные на MS VS 2008 SP1 работают на 10% быстрее нежели на предыдущых студиях. Сам не тестил, я так понял, что программы разработаные на MS VS 2008 SP1 С# будут работать на 1-5 % медленней нежели программы разработаные на других средах разработки С++. Сам не провирял, гарантии не даю. |
| Автор: Любитель 19.6.2009, 21:27 | ||||
С чего это ты взял? Абсолютно не так (хотя 2010-я студия действительно почти полностью дотнетная).
Не, ребят, какой-то у вас юмор уже.. совсем плоский пошёл.. Даже для холиваров.. То веб-приложения на С++ предлагают писать, то крошечный НетБинз. Вот честно - нефига не смешно (если что - я дотнетчик, в прошлом любитель C++/Qt).
Учитесь троллить красиво! Холивар уже не тот... |
| Автор: kemiisto 19.6.2009, 22:48 |
| Любитель, не обращайте на это... кхм... Ubuntu внимание. Против одноимённой ОС ничего не имею. И аппетит у неё здоровый. Ладно, выскажусь и я. С начала года (учебного) пишу небольшой проектик. Кроссплатформенный. Сначала писал на Java/Swing, потом перешёл на С++/Qt. Как ситуация выглядит с моей колокольни:
Но это в общем. А ТС не очень придирчив к интерфейсу и задачу у него, видимо, такова, что библиотек больше на Java. Тогда получаем... 2:2 |
| Автор: Любитель 19.6.2009, 23:19 | ||
Верю. Не пробовал (да и не спешу, собственно говоря). Но, надеюсь, что компы сейчас не столь дохлые - одним словом это не столь стращно.
Вопрос.. некорректный вообщем. Область надо называть. Как я уже говорил - сколько адекватных ORM-ов для С++? |
| Автор: kemiisto 19.6.2009, 23:25 |
Согласен. СУБД - отнюдь не плюсовая вотчина. Но ведь у ТС другая задача. Неужели для С++ нет готовых решений в области клиент-серверного ПО? Гы =) Забыл самый главный аргумент при переходе на Qt. Подумалось, что писать в Норвегии на Java - это нонсенс! =) |
| Автор: Vasay 20.6.2009, 01:25 | ||
| Товарищи! NetBeans штука тормозная но это ее личная особенность а не Java в целом, которую обещают исправит в версии 6.7 (RC доступен для скачивания, я еще не пробовал). НО! Есть JDeveloper (ощутимо быстрее), есть SWT-шный Eclipse - очень шустрая среда! Так что не совсем корректный пример. Хотя, я согласен, с тем что интерфейс на Swing тормознутей интерфейса на QT. Добавлено @ 01:26
Почему? |
| Автор: unicuum 20.6.2009, 02:48 | ||
Да, теперь здесь ведут высокоинтеллектуальные споры
Есть, это тот же самый Qt. |
| Автор: Vasay 20.6.2009, 03:20 |
И где там готовые решения? |
| Автор: unicuum 20.6.2009, 04:36 |
Открой да посмотри. |
| Автор: Vasay 20.6.2009, 05:34 |
| unicuum, Может Вы лучше ссылочку дадите? На Java, в зависимости от задачи я бы использовал: - WebServices (вслучае QT - клиент то без проблем, а как быть с сервером?) Если такой вариант не приемлем: - RMI (на QT аналогов не знаю) |
| Автор: W4FhLF 20.6.2009, 06:41 |
Мне тоже интересно. |
| Автор: Любитель 20.6.2009, 12:01 |
Qt DBUS, в первую очередь. Для веб-сервисов нормального решения "из-коробки" нету. Но, вообще надо признать, что у Qt здесь есть плюс перед "обычным С++". Я имею ввиду метаданные. Пусть и кривые, неудобные - но хоть какие-то (понятно, что всё основывается на кодогенераторе этих самых метаданных). |
| Автор: Vasay 20.6.2009, 12:20 | ||
DBUS - это же GNOMовская штука? Добавлено через 4 минуты и 15 секунд http://doc.crossplatform.ru/qt/4.5.0/qtdbus.html
|
| Автор: Любитель 20.6.2009, 12:29 |
| DBUS - изначально открытый протокол для IPC в мире никсовых приложений. В оригинале реализован только под никсами, но давно есть порт (в Qt правда не входит, но собрать Qt с его поддержкой не проблема и уже кругом разобрано) WinDBUS. http://doc.qtsoftware.com/4.5/qtdbus.html http://windbus.sourceforge.net/ Добавлено через 2 минуты и 48 секунд И да - самое важное. DBUS - это просто протокол. Qt же позволяет писать обычные классы и сразу вызывать паблик-слоты этого класса как методы через DBUS (ну там интерфейс объявить и пару макросов - это само собой..). |
| Автор: unicuum 20.6.2009, 17:07 | ||
QtNetwork чтобы работать с сетью. QtSql для работы с базами данных. QtXml для их трансформации и передачи. Если надо будет какие-то дополнительные протоколы, те же p2p и другие, выкачаешь готовые библиотеки. Я могу сказать, что такое готовое решение, это когда поставил программу и отдыхаешь. В программировании же готовое решение это заблуждение. |
| Автор: Любитель 20.6.2009, 17:53 | ||
И какое это отношение имеет к веб-сервисам? |
| Автор: W4FhLF 20.6.2009, 18:34 |
Ты ведь отправлял что-то посмотреть по сабжу. Что ты имел ввиду? |
| Автор: unicuum 21.6.2009, 07:04 |
Чтобы понять Qt SDK надо его скачать и изучить примеры. Однако этого будет недостаточно и вот почему. Тот же Любитель не понимает какое отношение эти составляющие имеют к веб-службам. А между тем как бы ни банально это звучало, веб-службы на любой платформе и системе одно и тоже. Заходит человек на текущий сайт, в браузере набирает - http://forum.vingrad.ru, а на самом деле браузер отправляет запрос на хост forum.vingrad.ru на порт 80 по протоколу HTTP, и полный адрес http://forum.vingrad.ru:80. Почему так? Да потому что так принято, но висеть то веб-сервер может на любом порте. И потом, те данные которые были получены обрабатываются и выводятся на экран. Можно не замечать RFC, думать что система на которой программируешь царь и бог, что не будь её всё бы рухнуло и перестало работать. Но факт в том, что она всего лишь одна из многих тысяч. Это уровень даже не любителя, а новичка. Но вот на сцене появляются фреймворки, и поверх простейших запросов строят гигантские фреймворки. Люди перестают понимать, что то что ни делают на своей супер пупер навороченной платформе можно сделать на множестве других библиотек. http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/examples.html И на Qt дофигище примеров, но нет, мы будем доказывать, что только Java великая и ужасная может создавать веб-сервера и только на ней всё делается просто и легко. Наезжать на Qt тем более глупо, учитывая, что на ней работает рабочий стол KDE и огромное количество приложений. Я не привожу конкретные примеры вовсе не потому что их мало, или они отсутствуют, просто их такое жутчайшее разнообразие, что мне жалко тратить целый день переписывая сюда те, которые относятся к веб-сервисам. |
| Автор: W4FhLF 21.6.2009, 07:56 | ||
Зато заниматься софистикой и графоманить у тебя время есть. Наводит на мысли о банальной некомпетентности. |
| Автор: unicuum 21.6.2009, 08:55 | ||||
И что, я должен сейчас доказывать, что весь такой компетентный. А когда станет мало, зайти в репозиторий и утонуть в законченных решениях. Если и этого окажется недостаточным, пойти на специальные сайты, где обсуждают Qt и выкладывают законченные программы и компоненты. Опять же sf.net никто не отменял. Но для начала надо решить, что хочешь найти, веб-служба это общее понятие, в вики вот так написали.
Или месье предпочитает, чтобы ему описали все извращения. О том, что одно приложение должно прослушивать порт, а другое соединятся, и при этом они ещё должны обмениваться данными, которые о ужас, надо извлекать из базы данных. Может ещё все протоколы обмена пересказать. |
| Автор: W4FhLF 21.6.2009, 09:17 |
| unicuum, да я спорить с тобой не собирался на самом деле. |
| Автор: unicuum 21.6.2009, 09:30 |
А я нет, как говорил герой Джеки Чана, - "Я не хочу одну, я хочу их всех". |
| Автор: Любитель 21.6.2009, 09:53 |
| unicuum, очевидно, что просто ты не работал с той же явой иди .Net-ом. И не представляешь, что такое создание и использование веб-сервисов на этих платформах. И, самое главное - в чём проблемы сделать аналогично на С++. Про то, что в Qt стандартных солюшенов нету - это факт. Наличие QNetworkAccessManager-а, умеющего работать с HTTP и 3-ёх парсеров/райтеров для XML-я ровным счётом ничего не даёт. Таким же образом можно доакзывать, что можно на чистом С безо всяких библиотек создавать веб-сервисы. АПИ ОСи для работы с сетью есть - технически ничто не мешает дальше, создавай... |
| Автор: unicuum 21.6.2009, 10:19 | ||||
Хочешь померяться со мной письками, ну давай, приму вызов для платформы .NET, то есть я буду на дотнете.
Тебе может и не даёт, но мир программирования удивительно разнообразен. |
| Автор: gcc 3.7.2009, 04:14 |
| хотел спросить, почему firefox/opera когда загружается и если ничего не включать, то жрет до 100 метров оперативки? она все свои большие либы не целесобразно загружает? например, на python, perl можно определить что загружать на этапе компиляции и еще автозагрузка методов класса, чтобы загружать только те метод(ы) которые вызываються, а не загружать весь большой класс целиком... |
| Автор: xackera 18.9.2009, 14:31 |
| Лучше Java - ты можешь клиентское приложение распрастранять в виде бинарного файла (кто им будет пользоваться необходимо будет поставить Java)... а вот qt... он лишь облегчает работу с интерфейсом... но все нюансы ОС прописывать будешь сам ) |
| Автор: W4FhLF 19.9.2009, 05:40 | ||
Qt это не только GUI библиотека. Какие ньюансы? |
| Автор: Akella 29.12.2009, 00:03 | ||
я что, зря купил две книги по жабе?? |
| Автор: kemiisto 29.12.2009, 00:26 |
Akella, ну почему же. Это было моё субъективное мнение. К тому же в разрезе конкретного приложения. Добавлено через 9 минут и 38 секунд Akella, вот смотри:
|
| Автор: Akella 29.12.2009, 00:57 |
| Ну если писать приложение: 1. работа базами данных (firebird) 2. табличный вывод данных на экран (компоненты devexpress для дельфи - это идеал, можно сказать) 3. вывод и печать отчётов (компоненты FastReport для дельфи - это идеал, можно сказать) 4. работа с текстами. 5. работы с регулярками. 6. работа с плагинами (в винде это dll) Всякие низкоуровневые штучки мне не нужны. Это касательно меня. Я не пишу игрушки и не пишу системные утилиты для дефрагментации дисков или реестра. |
| Автор: Любитель 29.12.2009, 01:57 |
| Я извиняюсь за наглость, но в области десктопного энтерпрайза (как бы это пошло не звучало, но БД + репортинг дают право говорить об энтерпрайзе) под винду .Net явно лидирует. Без сомнения. Добавлено через 29 секунд Если же из сабжа - то ява. |
| Автор: Akella 29.12.2009, 07:50 |
Речь идёт о кросплатформенности. Если под винду, то тогда уже дельфи (по крайней мере для меня). Ок. Только что-то не могу въехать, у джавы нет дизайнера форм при проектировании приложения? |
| Автор: serger 29.12.2009, 09:30 | ||
Можете посмотреть Netbeans. В других ide тоже что-то есть, проблема в том, что нет универсального и не будет. А люди могут работать под разными ide, или ваще без. Очень много вариантов, много предпочтений и мнений. Часто используют xml для рисования. Каждый решает сам... |
| Автор: Akella 29.12.2009, 15:40 |
Я именно про нетбинс и сказал Добавлено через 51 секунду Добавлено через 3 минуты и 27 секунд На другом компе поставил qt-qreator. Для отображения табличных данных из таблиц баз данных компонентов не нашёл, а также компонентов для доступа к базам данных тоже не нашёл компонентов. |
| Автор: kemiisto 29.12.2009, 15:44 | ||||||
Там очень даже ничего себе такой дизайнер формочек. Текстовый. Но
Посмотри: тот же http://ru.wikipedia.org/wiki/WPF использует http://ru.wikipedia.org/wiki/XAML.
Но это тупиковый путь. Добавлено через 3 минуты и 53 секунды
Вот за такое отнощение к делу делфистов часто и называют формошлёпами. |
| Автор: Akella 29.12.2009, 15:57 | ||
| http://netbeans.org/kb/docs/java/gui-functionality_ru.html нашёёёёёёёёёёёёёёёёл Добавлено через 15 секунд http://netbeans.org/kb/docs/java/gui-functionality_ru.html нашёёёёёёёёёёёёёёёёл Добавлено через 2 минуты и 43 секунды В окне "Projects" щелкните правой кнопкой мыши узел "NumberAddition" и выберите "New > JFrame Form".
Зато Delphi - это по настоящему RAD Добавлено через 6 минут и 35 секунд но это мы уже не в тему Добавлено через 6 минут и 47 секунд я прочитал всю эту тему и немного другой Добавлено через 7 минут и 10 секунд сейчас пытаюсь выбрать между qt и джавой Добавлено через 7 минут и 42 секунды тыкаюсь, как слепой котёнок Добавлено через 10 минут и 6 секунд По идее джава проще, но qt шустрее. Пока в qt дл меня минусы: qt-creator не такая очень удобная среда Нет компонентов для доступа у базам данных. Нет компонентов для отображения данных из баз данных. Нет компонентов для построения отчётов. |
| Автор: Akella 29.12.2009, 16:15 |
| Вот что я нашёл, да ещё и на русском. http://netbeans.org/kb/docs/java/gui-db_ru.html Это большой плюс в сторону джавы и нетбинс Добавлено через 49 секунд Ну ничего, скоро выйдет среда разработки Delphi.X и тогда мы покажем Кузькину мать |
| Автор: serger 29.12.2009, 17:11 |
Почему? Но я этому RAD был не рад уже спустя пол года... |
| Автор: Akella 29.12.2009, 17:16 |
зря Добавлено через 1 минуту и 48 секунд serger, а если по теме, что бы выбрал? И какую среду разработки? |
| Автор: kemiisto 29.12.2009, 17:36 | ||
Конкретно в разрезе XAML: одна из основных идей declarative UI - чтоб было human readable. Чтоб можно было не используя дизайнер форм, создавать UI. Причём в декларативном, а не императивном стиле. Ну и где она удобочитаемость?
Сравните, например, с http://labs.trolltech.com/blogs/2009/05/13/qt-declarative-ui/ или с http://juixe.com/techknow/index.php/2007/08/27/running-with-shoes-a-mini-gui/ (куда-то офф. сайт подевалсо |
| Автор: W4FhLF 29.12.2009, 18:04 | ||||||
1. Юзай VS и http://qt.nokia.com/developer/faqs/what-is-the-visual-studio-add-in/view. Т.е. писать будешь в VS, формы создавать в Qt Designer'e и всё это будет собираться автоматически. 2. Как нет?
3. Да всё же есть.
Советую почитать http://qt.nokia.com/doc/4.6/sql-programming.html 4. Что именно нужно? Можно же заюзать и сторонние либы для С++. |
| Автор: Sovereign 29.12.2009, 18:17 | ||
Про qtcreator дело привычки, либо можно использовать что нибудь другое. Про компоненты которые были в delphi в том виде можно забыть, если что-то визуальное - то в дизайнере форм, если нет то в рантайме, а для отображения данных все, есть таблицы и все что угодно. Да, отчетников особо не видел, да и сам впринципе немного времени потратил для создания своего отчетника. Сам после дельфи смотрел бы чтоб такого изучить , чуть дотнета, чуть явы, в итоге остановился на qt, просто из-за того что он мне давал что-то больше чем все остальное, просто чтоли нужно познакомиться с каждой средой и посмотреть что она дает тебе, хз ... |
| Автор: serger 30.12.2009, 08:01 | ||||
Java, а IDE - пофиг, когда как, на работе щас вообще из far работаю. kemiisto, ну не знаю, например, что тут сложного (http://www.swixml.org/):
Кстати, зато можно пользоваться всей мощью xml. Ну а восприятие от привычки зависит, конечно. Я привык. |
| Автор: Akella 30.12.2009, 17:21 |
Просматривал. Жаль нет на русском. Добавлено через 1 минуту и 18 секунд Скажем, так, я искал на панели компонентов. Хотя QTableView я нашёл. Но не знал что это для отображения данных из базы данных. Добавлено через 4 минуты и 4 секунды Я так понял, что NetBeans тоже для QT можно писать. Или на QT. или как правильно %) |
| Автор: Любитель 30.12.2009, 22:19 |
| 1. С QTableView всё правильно. Если GUI-компоненты заточенны под отображение данных именно из базы - это говорит об отстойном (сильносвязанном) дизайне библиотеки/фреймворка. 2. QT - это квик-тайм |
| Автор: W4FhLF 31.12.2009, 06:41 | ||||
http://doc.crossplatform.ru/qt/4.6.x/sql-programming.html
В Qt нет компонентов, там виджеты.
Я думаю здесь имеется ввиду другое. В Delphi на форму можно кидать всё, что угодно. В том числе не визуальные компоненты, типа TTcpSocket или TDataBase... |
| Автор: Любитель 31.12.2009, 10:02 |
| Ну да. Но и всякие ТДБГрид в дельфи есть.. Что пугает... |
| Автор: Akella 31.12.2009, 10:35 | ||
ничё не понял, шо за бред Добавлено через 24 секунды А как же отобразить данных из таблицы на форме (в окне) Добавлено через 1 минуту и 45 секунд Да, мне нужно отобразить данные + предоставить пользователю редактировать их (данные) с дальнейшей записью в базу. И что здесь не грамотного или пугающего? И что здесь отстойного. Добавлено через 3 минуты и 42 секунды Ты ещё не видел библиотек компонент DeveXpress. Вообще офигел бы |
| Автор: Lazin 31.12.2009, 10:40 |
это _why куда то подевался а перед этим подевал куда то все свои сайты |
| Автор: Akella 31.12.2009, 10:40 |
Хорошо. Т.е. метки (label), кнопки (PushButton) и т.д. - это всё виджеты? |
| Автор: Любитель 31.12.2009, 11:14 | ||
В том, что в VCL слишком сильная завязка именно на базу. В любом нормальном фреймворке (Qt в том числе) мы просто можем отображать/редактировать любые данные. В Qt данные представимы классом QAbstractModel. Я видел DevExpress. Даже приходилось пользоваться (правда для .Net-а). Не знаю как для дельфи, но там никакой заточки на базы нету. Что правильно. Правда при наличии времени и пр. - я, конечно, всё равно б отказался от сторонних глючных библиотек. И не надо говорить, что это не так - они неглючные только при абсолюнто стандартном использовании. При таком масштабе куча багов в хиттрых ситуациях - это нормально, проблема в том, что в своём проекте это всё без проблем фиксится, а в сторонних либах.. QTableView предназначен для отображения и редактирования любых данных. База не при чём. Вот это и есть слабая связанность. |
| Автор: alexpush 19.9.2010, 16:00 |
| Имею опыт программирования одной и той же очень большой задачи в системах программирования (технологиях) на языках Java, (IDE JBuilder фирмы Borland), C++ MicroSoft (Visual Studio 6) и Qt+C++ (QCreator от Nokia). И вот какие выводы напрашиваются. 1. Все технологии вместе со средствами разработки (IDE) и библиотеками классов достаточно сложны в изучении. 2. Производительность (написание и отладка) программирования сильно зависит от средства разработки (IDE). 3. С большим отрывом (в 5-6 раз) эффективнее разработка сложных задач на Java по сравнению с C++ Ms и Qt C++. 4. Надежность описания программ в доступной литературе в порядке убывания: Java, C++ Ms, Qt C++. Этот фактор может оказаться решающим. В Java все как написано, так и работает, т.е. все описания поразительно адекватны (в моей большой программистской деятельности - около 40 лет, подобное я встретил впервые.) В C++ Ms описание весьма приблизительно, особенно туманно описана Com-технология, тоже и в описании MFC. Требуется огромный опыт и множество консультаций для освоения библиотек классов MFC. Qt C++ очень зависит от версии как Qt так и IDE. Ошибки могут быть и не обнаружены, а программа не работает. Как в C++ Ms, так и Qt C++ много макросов, найти описание которых не просто. 3. Скорость исполнения программ в порядке убывания: C++ Ms, Qt C++, Java. 4. Объем занимаемой памяти программ в порядке убывания: C++ Ms, Qt C++, Java. 5. Не смотря на схожесть языков Java, C++ и Qt, Java спроектирована значительно лучше, проще и понятнее, особенно для начинающих программистов. Начинавший программировать на Java воспринимает язык C++ как архаику и максимально сопротивляется переходу на C++. Верно и обратное правило: знающий хорошо C++ не хочет программировать на Java, но ровно до тех пор, пока ее не освоит. 6. Java однозначно трактует все простейшие типы (int, long, float, double, char) по размерам. В C++ эти значения зависят от установок компилятора (а их великое множество) на разных платформах. 7. Все технологии требуют предустановки библиотек классов. 8. Резюмируя все выше сказанное можно сказать: технологию надо выбирать исходя из уровня программиста, сложности задачи и условий ее использования. Если в задаче преобладает перерисовка окон и критично время реакции, то выбирать надо C++. Если требуется независимость от платформы - Java или Qt C++. Если требуется скорость разработки - Java. Если требуется минимальность использования ресурсов (памяти, скорости исполнения) - C++ Ms. Если программист (или много программистов) начинающий - Java. Если Вы собираетесь работать в сети - с большим преимуществом Java. Она на это и была "заточена". 9. Если Вы знакомы с языком C# и .Net технологией Ms, то можно увидеть, что в этом языке и технологии заложены очень многие принципы Java. Это почти его "перепевка", но для другой среды (Net). 10. Мое мнение следующее - если бы был сделан еще и компилятор с Java, а не только интерпретатор (Java-виртуальная машина (JVM)), т.е. скорость исполнения сравнялась бы с C++, то нет никакого смысла использовать C++ для прикладных задач. Для некоторых системных задач пока предпочтительно использование C++. 11. Java лучше приспособлена для организации многопоточной и распределенной обработки данных задачи, а это уже актуально при использовании многопроцессорных систем на ЭВМ. 11. Есть еще один аспект в пользу использования Java. Используемый JVM байт-код программы может интерпретироваться "железом" или операционной системой, что может значительно повысить его производительность. И есть уже намеки на создание подобных ОС и процессоров. 12. Тенденция на увеличение производительности процессоров и объемов памяти, хотя и замедлилась в настоящее время, но не утратила свое значение в перспективе. А это значит, что на первое место в разработке выдвигается рост производительности труда программистов. Пока Jave по этому критерию нет конкурентов. 13. Я не слепой любитель Java, хотя и восхищаюсь ее программистской красотой. Но я пытаюсь объективно оценить обсуждаемые технологии разработки. Приведенные участниками форума доводы во многом справедливы, но есть и тенденциозность в оценках. Это когда участник форума либо замалчивает, либо не знает достоинства и недостатки той или иной технологии. Это я отношу и к себе. Можно сказать, что нет лучшей или худшей технологии, а есть условия ее освоения и использования для конкретных коллективов программистов и решаемых ими задач. |
| Автор: Любитель 19.9.2010, 18:57 |
| Ну зачем реинкарнировать мёртвые холивары? :( |
| Автор: W4FhLF 20.9.2010, 08:14 | ||
Это вы о чём сейчас? |
| Автор: alexpush 20.9.2010, 15:26 | ||
Это о решении одной задачи в рамках многопроцессорных систем. А также разделении задачи на множество выполняемых параллельно потоков вычислений. |
| Автор: W4FhLF 20.9.2010, 15:48 |
| Я о том, что по сравнению с чем Java лучше для параллельных вычислений? По сравнению с С/С++? У вас в этой области какой? |