Lazarus — это кроссплатформенная интегрированная среда разработки (IDE) для быстрой разработки приложений (RAD) с использованием компилятора Free Pascal . Ее цель — предоставить простую в использовании среду разработки для разработки на языке Object Pascal , максимально приближенном к Delphi . Это бесплатное программное обеспечение с открытым исходным кодом , различные части которого выпускаются под различными лицензиями на программное обеспечение .
Lazarus часто используется для создания консольных приложений с собственным кодом и графических пользовательских интерфейсов (GUI) для настольных компьютеров , мобильных устройств , веб-приложений , веб-сервисов , визуальных компонентов и библиотек функций для нескольких различных операционных систем , включая macOS , Linux и Windows . [1]
Проект, созданный с использованием Lazarus на одной платформе, может быть скомпилирован на любой другой, которую поддерживает компилятор Free Pascal . Для настольных приложений один исходный код может быть нацелен на macOS , Linux и Windows , с небольшими изменениями или без них. Например, Lazarus IDE создается из одной кодовой базы и доступна на всех основных платформах, включая Raspberry Pi .
Lazarus предоставляет среду разработки What You See Is What You Get ( WYSIWYG ) для создания многофункциональных пользовательских интерфейсов , логики приложений и других вспомогательных артефактов кода, похожих на Delphi . Наряду с функциями управления проектами, Lazarus IDE также предоставляет:
Lazarus использует Free Pascal в качестве внутреннего компилятора. Поскольку Free Pascal поддерживает кросс-компиляцию , приложения Lazarus могут быть кросс-компилированы из Windows , Linux или macOS в любую из поддерживаемых целей компиляции Free Pascal . Приложения для встраиваемых устройств ( смартфоны , КПК , маршрутизаторы, игровые консоли) могут быть кросс-компилированы с любой настольной платформы.
Lazarus предоставляет кроссплатформенную прикладную среду, называемую Lazarus Component Library (LCL), которая предоставляет единый унифицированный интерфейс для программистов с различными реализациями, зависящими от платформы. Используя LCL, можно создавать приложения в манере « написать один раз, скомпилировать где угодно », если только явно не используются системно-зависимые функции. LCL изначально был смоделирован по образцу Visual Component Library (VCL) в Delphi 6, но не ограничивается Windows . Это делается путем разделения определения общих классов виджетов и их реализации, специфичной для виджетсета . Каждый набор виджетов поддерживается путем предоставления интерфейса , который напрямую взаимодействует с набором. [2]
Разработчики могут устанавливать пакеты, которые позволяют Lazarus поддерживать несколько систем управления базами данных (СУБД). Программы могут взаимодействовать с СУБД через код или компоненты, перетаскиваемые на форму.
Следующие СУБД поддерживаются «из коробки»:
Lazarus во многом напоминает Delphi . Он поддерживает Component Object Model (COM) с версии 2.2.0 и предлагает большинство сетевых функций Delphi. Однако существуют ограничения по производительности и набору функций.
Lazarus не поддерживает следующее, что поддерживает Delphi:
LCL не полностью совместим с VCL. Это делает обширный репозиторий доступных виджетов VCL недоступным без преобразования. Преобразование в основном включает в себя некоторое редактирование, хотя есть несколько фундаментальных различий. При портировании отсутствующие модули в библиотеках представляют собой значительно большую проблему, чем несовместимости между LCL и VCL. Компоненты для Delphi можно преобразовать для работы в Lazarus. Это может быть сложно, хотя и менее сложно, чем для версий Lazarus старше 0.9.30, основанных на FP 2.4.x.
В Windows размер исполняемого файла по умолчанию больше, чем у эквивалента Delphi 6 или 7, поскольку Lazarus хранит отладочную информацию внутри исполняемого файла, а не в отдельных файлах. Начиная с версии 0.9.30, Lazarus поддерживает внешние отладочные символы через параметры компилятора. Таким образом, размеры программных файлов могут быть значительно уменьшены. В качестве альтернативы отладочная информация может быть удалена из EXE-файлов (например, с помощью порта strip
команды UNIX).
Как и Free Pascal , Lazarus является свободным программным обеспечением . Различные части распространяются под различными лицензиями свободного программного обеспечения , включая GPL , LGPL , MPL и модифицированную версию LGPL. [5] LCL, который статически встраивается в создаваемые исполняемые файлы, лицензируется под модифицированной версией LGPL, предоставляющей дополнительные разрешения, позволяющие статически встраивать его в создаваемое программное обеспечение, включая проприетарное .
Установка пакета времени разработки эквивалентна ссылке на IDE, поэтому распространение Lazarus IDE с несовместимым с GPL пакетом времени разработки, таким как пакеты JEDI, лицензированные по Mozilla Public License , предустановленным, приведет к нарушению лицензии. Это не запрещает разработку фирменных пакетов с помощью Lazarus.
Первая попытка разработать IDE для Free Pascal датируется 1998 годом в рамках проекта «Megido». После провала проекта некоторые из его разработчиков начали новый проект, основанный на более гибкой основе. Название «Lazarus» намекает на возрождение концепции Megido. Оно вдохновлено Лазарем из Вифании , который, согласно Евангелию от Иоанна , был воскрешен Иисусом через четыре дня после своей смерти.
Первая предварительная версия LCL была готова к выпуску в 2001 году. В 2003 году первая бета-версия Lazarus (0.9.0.3) была размещена на SourceForge . Версия Lazarus 1.0 была выпущена в 2012 году. Значительно улучшенная версия Lazarus 1.2 с была выпущена в 2014 году. По состоянию на март 2014 года с SourceForge было сделано более четырех миллионов загрузок.