Lazarus (IDE)


Lazarus is a free cross-platform visual integrated development environment for rapid application development using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for programmers developing with the Pascal Object language, which is as close as possible to Delphi.
Software developers use Lazarus to create native-code console and graphical user interface applications for the desktop, and also for mobile devices, web applications, web services, visual components and function libraries for a number of different platforms, including Mac, Linux and Windows.
An application created using Lazarus on one platform can generally compile and execute on any platform for which a Free Pascal compiler exists. For desktop applications a single source can target Mac, Linux, and Windows, with little or no modification. An example is the Lazarus IDE itself, created from a single code base and available on all major platforms including the Raspberry Pi.

Features

Lazarus provides a highly visual development environment for the creation of rich user interfaces, application logic, and other supporting code artifacts, similar to Borland Delphi. Along with project management features, the Lazarus IDE also provides:
Lazarus uses Free Pascal as its back-end compiler. Therefore, Lazarus can theoretically be used to develop applications for all platforms supported by Free Pascal.
Lazarus provides a cross-platform application framework called the Lazarus Component Library, which provides a single, unified interface for programmers, with different platform-specific implementations. Using LCL, it is possible to create applications in a write once, compile anywhere manner, unless system-dependent features are used explicitly.

Cross-compiling

As Free Pascal supports cross-compiling, Lazarus applications can be cross-compiled from Windows to Linux / macOS / etc. and vice versa.
Applications for embedded devices can be cross-compiled from any desktop platform.

Lazarus Component Library

The standard application framework, Lazarus Component Library was originally modeled after the Visual Component Library in Delphi 6, and, unlike Delphi, is not restricted to Microsoft Windows operating systems. This is done by separating the definition of common widget classes and their widgetset-specific implementation. Each widget set is supported by providing an interface which interacts directly with the set.

Database development

Developers can install packages that allow Lazarus to support several database management systems. Programs can interact with DBMSes through code or by components dropped on a form.
The following DBMSes are supported out of the box:
While resembling Delphi in many ways, there are a few limitations regarding the performance and feature set, including:
Like Free Pascal, Lazarus is free software. Different portions are distributed under different free software licenses, including GPL, LGPL, MPL, and a modified version of LGPL.
Specifically, the LCL, which is statically built into the produced executables, is licensed under a modified version of the LGPL, granting extra permissions to allow it to be statically built into the produced software, including proprietary ones.
Installing a design-time package is equivalent to linking to the IDE, thus distributing the Lazarus IDE with a GPL-incompatible design-time package pre-installed would cause a license violation. This however does not prohibit proprietary packages from being developed with Lazarus.

History

The first attempt to develop a visual IDE for Free Pascal dates back to 1998, when the Megido project commenced. For various reasons this approach failed. Some of Megido's developers then started a new project based on a more flexible foundation.
The first preliminary LCL version was ready for release in 2001, and in 2003 the first beta version of Lazarus was hosted at SourceForge. The first final Lazarus version was released in 2012, and significantly enhanced Lazarus 1.2 with was released in 2014. More than four million downloads had been made from SourceForge as of March 2014.
The name "Lazarus" alludes to the revival of the Megido concept. It is inspired by Lazarus of Bethany, who, according to the Gospel of John, was restored to life by Jesus four days after his death.

Versions

Version numberRelease datePlatformComments
January 2001WindowsFirst release of component library
January 2001WindowsRedesign of component library to support platform-sensitive development for Linux and Windows using GTK+ and other widgetsets.
January 30, 2001Windows, LinuxBug fixes and new features supporting cross-platform development and project skeletons.
October 9, 2001Windows, LinuxCodetools implemented, bug fixes.
January 17, 2002Windows, LinuxExpanded find functions.
August 19, 2002Windows, LinuxImproved graphics and font support, support for Delphi 6 syntax. Binary DFMs are now automatically converted to LFMs.
October 26, 2002Windows, LinuxLCL decoupled from interfaces.
September 4, 2003LinuxFirst release on Sourceforge
February 27, 2004Windows, LinuxSupport for packages, numerous added and enhanced properties.
January 3, 2005WindowsThreading support improved, oldest public version hosted at Sourceforge
February 25, 2005Windows
July 19, 2005Windows
October 3, 2005Windows, Mac OS X Bug fixes, extensibility of IDE improved, document editor for FPDoc files. Includes Free Pascal 2.0.1
February 7, 2006WindowsNew packages for database support, CGI applications and printing.
April 2, 2006Windows, Mac OS X, LinuxBugfixes, more controls in the WinCE and Qt4 interface
May 28, 2006Windows, Mac OS X, LinuxBug fixes, online help for IDE windows and for LCL applications, improvements to QT widgetset interface. Includes Free Pascal 2.0.2
September 23, 2006Windows, Mac OS X, LinuxBugfixes, procedure list implemented, new command-line tool "lazbuild"
November 5, 2006Windows, Mac OS X, LinuxBufixes, code folding implemented, QT widgetset improved.
March 26, 2007Windows, Mac OS X, LinuxNew components to write Windows services and Linux daemons, support for custom mouse cursors. Includes Free Pascal 2.0.4
November 15, 2007Windows, Mac OS X, LinuxFirst stable release for Win64, WinCE, and Intel-based Mac OS X. Improvements in Qt, Carbon, and Gtk2 widgetset interfaces. Customizable toolbar. Includes Free Pascal 2.2.0
October 5, 2008Windows, Mac OS X, LinuxInternal graphic system was rewritten. LCL now uses Unicode strings encoded as UTF-8 on all platforms. FPDoc help in tooltips. First version to run natively using the Carbon widgetset on Mac OS X.
March 13, 2009Windows, Mac OS X, LinuxBug fixes, improved icon support. Includes Free Pascal 2.2.2
September 29, 2009Windows, Mac OS X, LinuxImprovements of editor and debugger including support for double-byte fonts such as Eastern, Japanese, Chinese, and Arabic, smaller file sizes of generated applications. Includes Free Pascal 2.2.4
October 25, 2009Windows, Mac OS X, LinuxMainly bug fixes.
March 22, 2011Windows, Mac OS X, LinuxLarge number of new features, including docking and multiple source-code windows. Based on Free Pascal 2.4.2.
September 30, 2011Windows, Mac OS X, LinuxIncludes Free Pascal 2.4.4. Release candidate for Lazarus 0.9.30.2.
October 26, 2011Windows, Mac OS X, LinuxRelease candidate for Lazarus 0.9.30.2.
November 5, 2011Windows, Mac OS X, LinuxBug fixes.
March 3, 2012Windows, Mac OS X, LinuxBug fixes, includes Free Pascal 2.6.0. Release candidate for Lazarus 0.9.30.4.
March 7, 2012Windows, Mac OS X, LinuxRelease candidate for Lazarus 0.9.30.4.
March 11, 2012Windows, Mac OS X, LinuxRelease candidate for Lazarus 0.9.30.4.
March 14, 2012Windows, Mac OS X, LinuxBug fixes
July 29, 2012Windows, Mac OS X, LinuxRelease candidate for Lazarus 1.0.
August 21, 2012Windows, Mac OS X, LinuxRelease candidate for Lazarus 1.0.
August 28, 2012Windows, Mac OS X, LinuxFirst final version. This stable release includes Free Pascal 2.6.0. Multiple corrections and improvements of the IDE, including a macro function, expanded code-folding and new debugger functions.
October 10, 2012Windows, Mac OS X, LinuxBug fixes, minor additions to LCL and widgetsets
December 2, 2012Windows, Mac OS X, LinuxBug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart
February 3, 2013Windows, Mac OS X, LinuxBug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart
March 19, 2013Windows, Mac OS X, LinuxBug fix release. Includes Free Pascal 2.6.2
June 12, 2013Windows, Mac OS X, LinuxBug fixes.
August 24, 2013Windows, Mac OS X, LinuxBug fixes.
November 16, 2013Windows, Mac OS X, LinuxBug fixes.
September 16, 2013Windows, Mac OS X, LinuxAlpha version for Lazarus 1.2
November 3, 2013Windows, Mac OS X, LinuxRelease candidate for Lazarus 1.2
January 13, 2014Windows, Mac OS X, LinuxRelease candidate for Lazarus 1.2
March 4, 2014Windows, Mac OS X, LinuxMultiple new features, including a macro recorder, support for layered graphs and Pascal Script. Based on Free Pascal 2.6.2
April 23, 2014Windows, Mac OS X, BSD, Solaris, LinuxBug fix release. Based on Free Pascal 2.6.4
June 16, 2014Windows, Mac OS X, BSD, Solaris, LinuxBug fix release.
October 12, 2014Windows, Mac OS X, BSD, Solaris, LinuxBug fix release.
April 19, 2015Windows, Mac OS X, BSD, Solaris, LinuxImprovements of editor, resource handling and additional new features. Based on Free Pascal 2.6.4.
July 14, 2015Windows, Mac OS X, BSD, Solaris, LinuxBug fix release.
October 4th, 2015Windows, Mac OS X, BSD, Solaris, LinuxBug fix release.
February 18, 2016Windows 32bit/64bit, Mac OS X, LinuxMultiple new features, including docking, project groups and improved editor. Based on Free Pascal 3.0.0.
November 13, 2016Windows 32bit/64bit, Mac OS X, LinuxBug fix release.
February 26, 2017Windows 32bit/64bit, macOS, LinuxBug fix release. Based on Free Pascal 3.0.2.
December 6, 2017Windows 32bit/64bit, macOS, BSD, LinuxMajor release with many new features including an online package manager. Based on Free Pascal 3.0.4.
February 28, 2018.Bug fix release.
May 22, 2018Windows 32bit/64bit, macOS, BSD, LinuxBug fix release.
January 5, 2019Windows 32bit/64bit, macOS, BSD, LinuxMultiple new features including Cocoa support and the introduction of a Pascal to JavaScript transpiler.
April 16, 2019Windows 32bit/64bit, macOS, BSD, LinuxBug fix release.
August 6, 2019Windows 32bit/64bit, macOS, BSD, LinuxBug fix release.
November 1, 2019Windows 32bit/64bit, macOS, BSD, LinuxBug fix release.
April 16, 2020Windows 32bit/64bit, macOS, BSD, LinuxBug fix release, improved Cocoa widgetset.
July 11, 2020Windows 32bit/64bit, macOS, BSD, LinuxBug fix release, minor additions, first version based on Free Pascal 3.2.0.

Examples of applications produced with Lazarus

*