"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 для разработчика видится только такой:

  1. Основная разработка ведется в Delphi, в исходном коде используем условную компиляцию
  2. С юникодными строками работаем так, как будто нет их поддержки в Delphi 2009, т.е. используем техники до версии 2007
  3. Регулярно проводим компиляцию под FreePascal, проверяя совместимость кода. Получается, правда, что Lazarus, как таковой становится здесь необязательным, достаточно одного FPC.

Вариант радикальный, вряд ли пригодный для Delphi-разработчика, особенно если речь идет об оконных приложениях: не связываться и сразу писать переносимый код на С/С++, Java или .Net/Mono :)

P.S. Про эксперимент миграции относительно большой системы читайте в "Кактус, или как перестать грызть Lazarus"

Комментарии

Изображение пользователя Alexey_Donskoy.

Ага...

Ну и я внесу чуток тоже...
Сам работаю на Turbo Delphi (который freeware); пока хватало, несмотря на невозможность подключения компонентов и всякие глюки, в том числе и потерю фокуса редактора после компиляции ;)

Однако срочно потребовался TChart, которого в Turbo Delphi нет. Дай-ка, думаю, на Lazarus гляну.
С (поза?)прошлого года стоял очередной непомнюкакой релиз Lazarus (для WinMobile экспериментировал).
Глянул. Чарт слабенький, но работающий. Ну и ладно. Рисую форму. И тут облом, абсолютно офигенный! У комбобокса список строк не редактируется!!!

Ладно, думаю, спокойно, ничего страшного, с кем не бывает. Каждый второй РЕЛИЗ RS-bank после перехода на НПС вообще не запускался, и ничего, все живы-здоровы.
Скачиваю последний stable. Касперский орёт - вирус там, троян. Хоть что с ним делай. Плюнул, репу чешу, что делать дальше, не знаю.

Позор просто. Уж на пенсию скоро, а до сих пор ни одной нормальной freeware среды программирования не освоил...
Народ крутит пальцем у виска и предлагает MS Visual Studio® 2010 Express. То ли я плохо вижу, то ли они плохо понимают, но то, что там написано free, ещё не означает, что его можно для коммерческих разработок использовать!

Вот такая ерунда... Подскажите, кто что сможет...

Изображение пользователя Serguei_Tarassov.

А что такое

А что такое НПС ?

MS, конечно, не особенно подходит, даже в виде своих "бесплатных" сырков, но для .NET-разработки есть неплохая среда MonoDevelop. Тоже куча тараканов, но в целом разрабатывать можно. Если не вспоминать, что "пишем партия - подразумеваем Ленин", то есть, "пишем .NET - подразумеваем Microsoft".

Вообще, из того что я видел Lazarus - наиболее продвинутый :) Мне кажется, что из фриварных средств реально зрелые только "похапэ" да Qt под С++ (см. http://pmk.arbinada.com/node/689).

Изображение пользователя Alexey_Donskoy.

Совет нужен

НПС - новый план счетов (1997, когда банки переходили от 9-значных к 20-значным счетам).
Я бы это и сделал без особого напряга, да только с центрального офиса всем RS-bank навязали. С чем и имели геморрой минимум на полгода...

Сейчас вот совет нужен. На чём разрабатывать сервер приложения, доступный через веб-браузер, с произвольными видеопотоками и прочей интерактивной графикой? Возможно, под винду это невозможно? А под Линуксы тогда на чём? ;)

Изображение пользователя Serguei_Tarassov.

Трудно сказать

Трудно сказать "на чем", я пока не понял, о каком сервере идет речь, для каких целей и для кого будет делаться. Вариантов масса, от "голого" С++ до "готового" MS Media Services.