"Test drive" FreePascal/Lazarus
Тестировал FreePascal/Lazarus на предмет пригодности к профессиональной разработке. В качестве теста взял простенькое приложение из 3 компонентов (1 исполняемый модуль и 2 DLL-ки по принципу плагинов) с несложной обработкой XML внутри. Выводы.
Продукт имеет немало продвинутой функциональности, главная из которой - компиляция и кросс-компияция под множество платформ, включая мобильные устройства. Однако, среда пока не слишком пригодна для разработки чего-то иного, чем монолитное графическое оконное или консольное приложение, в т.ч. связанное с СУБД.
Например:
- в последней стабильной версии 0.9.28 отсутствует отладка DLL в среде разработки (можно использовать GDB извне или традиционную отладку сообщениями и файлами журналов). Мне удалось заставить это работать только взяв последний девелоперский слепок-дистрибутив (snapshot), обновив в нем руками GDB до последней версии 7.2.
- в последней стабильной версии все ещё нет различных конфигураций для компиляции. Они введены в 0.9.29, но эта версия пока доступна только в виде слепка текущей разработки.
- отсутствует управление группой проектов (решением, solution). То есть для работы с тремя тестовыми модулями приходилось держат открытыми три запущенных среды разработки...
- встроенная справка отсутствует, вся информация в документации на сайте или в виде PDF-книжек
- unicode-строки так и не реализованы по-умолчанию, необходимо явное использование WideString и нового типа UnicodeString (управление памятью в нем базируется на подсчете ссылок)
- ну, куча неприятной мелочи, вроде того, что окно редактирования теряет фокус после компиляции - с этим ёщё жить можно
Вариант использования Lazarus для разработчика видится только такой:
- Основная разработка ведется в Delphi, в исходном коде используем условную компиляцию
- С юникодными строками работаем так, как будто нет их поддержки в Delphi 2009, т.е. используем техники до версии 2007
- Регулярно проводим компиляцию под FreePascal, проверяя совместимость кода. Получается, правда, что Lazarus, как таковой становится здесь необязательным, достаточно одного FPC.
Вариант радикальный, вряд ли пригодный для Delphi-разработчика, особенно если речь идет об оконных приложениях: не связываться и сразу писать переносимый код на С/С++, Java или .Net/Mono.
P.S. Про эксперимент миграции относительно большой системы читайте в "Кактус, или как перестать грызть Lazarus"
blog comments powered by Disqus