Odyssey » 30.11.2010 18:14:19
Я тоже задавался этим вопросом, гуглил и попробовал написать пару helloworld'ов. Остановился на Lazarus. Сразу хочу оговориться, что в процесс разработки на Qt вникал не сильно, к тому же мне больше нравится Pascal чем C++, поэтому моё мнение заведомо необъективно.
Что мне понравилось в С++/Qt после FPC/Lazarus:
* Больше функциональности, сосредоточенной в одном месте (не разбросанной по всему интернету) и хорошо документированной.
Что НЕ понравилось:
* отсутствие исключений, в том смысле что в библиотеках Qt они не используются и не ловятся. Соответственно, если мы что-то сделали не так, вместо вменяемого текста ошибки и бэктрейса в консоль, получаем Segmentation Fault и вылет.
* стандартная библиотека классов и функций (строки, списки и т.п.) во внешней библиотеке (QtCore), причём достаточно тяжёлой. Если во FreePascal я могу запросто отцепить свою логику от GUI, написать к ней консольный или Web интерфейс, и получить маленькое самодостаточное приложение с минимумом внешних зависимостей, с Qt такое не катит. Точнее катит, но при статической линковке, а там начинает действовать LGPL, которая в отличие от FPC/Lazarus без исключения на статическую линковку.
* очень долгая (по сравнению с FPC) компиляция и сборка. Плюс в Qt ещё и используется препроцессинг, который не добавляет скорости. Возможно, на новом железе это будет не так заметно как на моём.
* по автоматизации написания кода QtCreator (в той версии, в которой я его смотрел -- 1.2.80) существенно отставал от Lazarus. Может быть, в новых версиях ситуация улучшилась. Единственное что радовало после Lazarus -- это однооконный интерфейс из коробки.