Lazarus, или IDE на халяву…

Программисты-одиночки, коих в нашей стране большинство, как правило, пользуются компиляторами, купленными на ближайшем лотке, и совершенно не задумываются, сколько эти компиляторы стоят на самом деле. А стоят они, в большинстве своем, немало. Особенно если речь идет о таких мощнейших инструментах, как Delphi или MS Visual Studio. Такие траты просто не по карману российским студентам (да и не только студентам). Выбор в данном случае прост — либо на свой страх и риск продолжать использование пиратских версий программ, либо применять их бесплатные аналоги. Сегодня речь пойдет об OpenSource-проекте Lazarus, цель которого — создать среду разработки, по своей функциональности максимально приближенную к Delphi, но при этом — совершенно бесплатную.

Краткая справка
Итак, давайте разберемся, что же такое Lazarus. По своей сути Lazarus — это надстройка над OpenSource-компилятором FreePascal, который является на сегодняшний день лучшим компилятором языка Pascal (точнее — разновидности ObjectPascal). Этот инструмент поддерживает полтора десятка (!) различных аппаратно-программных платформ и продол­жает активно развиваться. Для FreePascal существует немалое число библиотек с функциями и процедурами, разрабатываемых сообществом OpenSource. Но при всех своих достоинствах FPC (FreePascal Compiler) трудно будет добиться популярности среди Windows-программистов, привыкших к таким удобным инструментам, как Delphi. Именно этот недостаток и призван исправить Lazarus.

Splash-скрин Lazarus

Splash-скрин Lazarus

На данный момент существует несколько версий Lazarus (для Linux, Free/Open/NetBSD, а также для MacOSX). Мы рассмотрим Lazarus на примере его Windows-разновидности, так как эта операционная система распространена более других. Версии для других ОС, как правило, отличаются незначительно, и отличия эти в основном внутренние.

Первый взгляд
Для начала несколько слов об установке. Установочный пакет для Windows можно скачать с сайта www.laza­rus.free­pascal.org. Весит он около 27 Мбайт, что, с одной стороны, не так уж и мало, с другой — сущий пустяк, по сравнению с размерами того же Delphi. Установка не должна вызвать затруднений, так как программа установки (с недавнего времени) общается не только на английском, но и на русском языках. Замечу только, что имя каталога, в который вы будете устанавливать Lazarus, не должно содержать пробелов (то есть привычный «Program files» не подойдёт). При первом запуске Lazarus определит язык системы и применит соответствующий язык интерфейса. Вот тут есть небольшой глюк: среди поддерживаемых языков (всего около двух десятков) есть два русских — просто «rus» и «ruswin», файлы первого имеют кодировку koi8, второго — win1251. А проблема в том, что Lazarus сперва применяет именно первый русский, и все надписи в окнах становятся абсолютно нечитаемыми. Вариантов решения два: либо методом «научного тыка» найти окно настроек и сменить язык на «ruswin», либо — зайти в подкаталог «languages» и переименовать там три файла с *ruswin на *rus. Второй способ быстрее.

Главное окно Lazarus

Главное окно Lazarus

Будем надеяться, что вам удалось-таки скачать, установить и нормально русифицировать Lazarus. Теперь рассмотрим его поближе.
Основное окно Lazarus (см. рис.) мало чем отличается от такового в Delphi. То есть одного главного окна, по сути, нет. Есть несколько отдельных окон, свободно висящих на Рабочем столе (такой подход к организации рабочего пространства встречается, например, в графическом редакторе Gimp). В верхней части экрана [1] находится основное меню и панель инструментов, совмещенная с палитрой компонентов [2]. Слева расположены Инспектор объектов [3] и Диспетчер свойств и событий [4]. Большую часть экрана занимает собственно редактор кода [5], между ним и редактором форм можно переключаться клавишей F12 (так же, как и в Delphi). Ну и, наконец, в нижней части экрана располагается окно сообщений [7] (обычно оно скрыто и появляется только при выводе сообщений). Кроме того, имеется вспомогательное окно [6], в котором отобра­жаются варианты завершения слова, набираемого в данный момент.

Работа
Работа в Lazarus также мало отличается от работы в Delphi. Все основные приемы абсолютно аналогичны, хотя местами и встречаются небольшие отличия. Именно на них мне и хотелось бы остановиться.
Библиотека классов для Lazarus (аналог VCL) называется LCL (Lazarus component library). Имена большинства её юнитов, классов, их свойств и событий совпадают со своими Delphi-аналогами, что только облегчает переход на Lazarus.
Наибольший интерес представляют сервисные функции Редактора кода, которых нет в Delphi. Так, например, вы можете не описывать переменные вручную: достаточно один раз упомянуть в теле функции что-то вроде «i:=1» и нажать Ctrl+Shift+C — Lazarus сам добавит в раздел Var описание i: integer.
Ещё одна полезная особенность: попробуйте набрать русский текст вне комментариев или ограничителей строковой переменной — ничего у вас не получится. Lazarus помнит, что синтаксис Pascal включает в себя только символы латиницы и блокирует всё лишнее.
Таких мелочей довольно много и их подробному описанию можно посвятить отдельную статью. Но, как говорится, лучше один раз увидеть…

Пример формы

Пример формы

Если вы хотите побольше узнать об отличиях Lazarus от Delphi, то загляните в раздел «Documentation» официального сайта — там есть целая страница, посвящённая этой теме.
В целом Lazarus работает довольно стабильно и «вылетает» даже реже Delphi 7. Есть, конечно, мелкие недостатки, но, будем надеяться, в финальной версии (а последняя на данный момент носит номер 0.9.2 beta) их исправят.

Итого
В заключение хотелось бы обобщить все основные моменты.
Итак, к основным достоинствам Lazarus можно отнести:
+ абсолютную бесплатность;
+ открытый исходный код (GPL);
+ обширную библиотеку классов от FreePascal;
+ возможность локализации интерфейса;
+ большое сходство с Delphi;
+ стабильную работу;
+ поддержку большого числа платформ.
Но, к сожалению, имеют место и некоторые недостатки (большинство из которых, скорее всего, будет устранено к выходу официальной версии):
– много мелких глюков;
– отсутствие справки (если не считать online-документацию, в которой пока ещё очень много пробелов);
– слишком большой размер генерируемых исполняемых файлов (для «пустого» проекта с использованием LCL — более 5 Мбайт, после упаковки UPX — 2 Мбайт).
Как видите, плюсов всё-таки больше (по крайней мере, на мой взгляд). Посмотрим, что получится в итоге…

5 комментариев

  1. От юрий

    Ответить

    • Ответить

  2. От Паша

    Ответить

  3. От dark

    Ответить

  4. От Павел

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *