Эта статья представляет собой перевод соответствующей страницы с сайта проекта Lazarus.
Он не является абсолютно полным и дословным, однако, на мой взгляд, достаточно точно
отражает то, что и как хотел сказать автор оригинала.
Так что такое Lazarus?
Lazarus - это библиотеки классов Free Pascal для эмуляции Delphi. Free Pascal - это компилятор языка Паскаль, свободно распространяемый на условиях GNU Public License (GPL), который работает на многих платформах: Linux, Win32, OS/2, 68K и других. Free Pascal позволяет писать программы, используя объектно-ориентированный синтаксис Delphi. Так что Lazarus - это то недостающее звено, которое открывает возможности кроссплатформной разработки Delphi-подобных программ. В отличие от языка Java, на котором однажды написанные программы могут исполняться на разных платформах с помощью виртуальной машины, программы на Lazarus и Free Pascal могут быть скомпилированы без изменений в "родной" код различных платформ.
А как насчёт графического интерфейса пользователя? Какой набор компонент использует Lazarus?
Хороший вопрос! Lazarus спроектирован так, чтобы вовсе не зависеть от любого конкретного API. Создав программу, Вы просто указываете, какой API хотите использовать. Хотите GTK+ - отлично! Нужна совместимость с Gnome - замечательно! Если интерфейсный код для определённого набора визуальных компонент уже написан, Вы сразу можете его подключить. Если ещё не написан, что-ж, Вы можете его написать.
К примеру, скажем, Вы разрабатывали программу в среде Windows и использовали элементы управления Windows. Теперь Вы хотите создать Linux-версию. Сначала Вы должны выбрать один из типов наборов компонент. Предположим, что вы решили использовать GTK+. Вы копируете исходные тексты программы на Linux машину, компилируете их в связке с GTK+ интерфейсными модулями... и получаете работающую Linux-версию Вашей Windows-программы.
В настояший момент доступен только GTK+ интерфейс, выбранный в качестве базового. Некоторая часть работы выполнена также для QT и Win32 интерфейсов. После появления релиза Lazarus будет начата разработка интерфейсных модулей LCL (Lazarus Class Libraries) и для других API.
И что, эта штука действительно средство быстрой разработки, подобное Delphi?
Точно так. Всё ли уже сделано? Пока нет. Дизайнер форм всё ещё нуждается в доработке. Остальная часть среды разработки уже практически полностью готова. В целом, не все аспекты проекта достаточно проработаны, так что помощь была бы очень кстати.
Можно ли использовать существующий код на Delphi?
Частично. Если программа написана на стандартном Delphi-паскале и используются стандартные компоненты, то ответ положительный. Если же были задействованы специфические элементы ActiveX, сторонние средства доступа к базам данных и т.п., то ответ, скорее всего, отрицательный. Всё это слишком специфично для Windows. Однако, если Вы готовы пожертвовать кроссплатформенностью и использовать Free Pascal только для Windows, то, вполне возможно, это получится, но не сейчас, а только в будущем, когда необходимая функциональность будет добавлена в LCL.
Можно ли создавать на этом коммерческие продукты?
Да. Компилятор Free Pascal лицензируется в соответствии с GPL. Это означает, что Вы можете изменять его код, но обязаны обеспечить доступность этих изменений для всех, кто пожелает их использовать.
FCL (Free Pascal Class Libraries) и LCL (которая в конечном счете станет частью FCL) лицензируются в соответствии с изменённой лицензией LGPL. В двух словах это означает, что Вы можете разрабатывать коммерческое программное обеспечение, к которому эти библиотеки должны быть просто прилинкованы. Вы можете продавать Ваши разработки без необходимости предоставлять в свободный доступ их исходные коды. Однако, если Вы всё же внесли изменения в исходные коды библиотек FCL или LCL, то, как и в случае компилятора Free Pascal, Вы обязаны сделать их общедоступными.
А откуда такое название?
Одним из оригинальных проектов по "клонированию" Delphi был Megido. Но он "умер". Lazarus, как известно, это библейский персонаж, воскрешённый Иисусом из мёртвых. Так что... Проект назван Lazarus, поскольку он был начат на основе "почившего" Megido.