Submitted Successfully!
To reward your contribution, here is a gift for you: A free trial for our video production service.
Thank you for your contribution! You can also upload a video entry or images related to this topic.
Version Summary Created by Modification Content Size Created at Operation
1 handwiki -- 2414 2022-10-13 01:39:37

Video Upload Options

Do you have a full video?

Confirm

Are you sure to Delete?
Cite
If you have any further questions, please contact Encyclopedia Editorial Office.
HandWiki. Lazarus. Encyclopedia. Available online: https://encyclopedia.pub/entry/29677 (accessed on 19 April 2024).
HandWiki. Lazarus. Encyclopedia. Available at: https://encyclopedia.pub/entry/29677. Accessed April 19, 2024.
HandWiki. "Lazarus" Encyclopedia, https://encyclopedia.pub/entry/29677 (accessed April 19, 2024).
HandWiki. (2022, October 17). Lazarus. In Encyclopedia. https://encyclopedia.pub/entry/29677
HandWiki. "Lazarus." Encyclopedia. Web. 17 October, 2022.
Lazarus
Edit

Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for programmers developing with the Object Pascal language, which is as close as possible to Delphi. Software developers use Lazarus to create native-code console and graphical user interface (GUI) 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. A project created by using Lazarus on one platform can be compiled on any other one which Free Pascal compiler supports. For desktop applications a single source can target Mac OS, 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.

application development integrated development graphical user interface

1. 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:

  • A What You See Is What You Get (WYSIWYG) visual windows layout designer
  • GUI widgets or visual components such as edit boxes, buttons, dialogs, menus, etc.
  • Non-visual components for common behaviors such as persistence of application settings
  • Data-connectivity components for MySQL, PostgreSQL, FireBird, Oracle, SQLite, Sybase, and others
  • Data-aware widget set that allows the developer to see data in visual components in the designer to assist with development
  • Interactive code debugger
  • Code completion
  • Code templates
  • Syntax highlighting
  • Context-sensitive help
  • Text resource manager for internationalisation (internationalization)
  • Automatic code formatting
  • The ability to create custom components

2. Cross-platform Development

Interaction of class libraries and widgetsets in Lazarus and Free Pascal. https://handwiki.org/wiki/index.php?curid=2011781

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 (LCL), 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.

2.1. 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 (smartphones, PDAs, routers, game consoles) can be cross-compiled from any desktop platform.

2.2. Lazarus Component Library

Architecture of the Lazarus Component Library. https://handwiki.org/wiki/index.php?curid=1378014

The standard application framework, Lazarus Component Library (LCL) was originally modeled after the Visual Component Library (VCL) in Delphi 6, but, 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.[1]

3. Database Development

Developers can install packages that allow Lazarus to support several database management systems (DBMSes). Programs can interact with DBMSes through code or by components dropped on a form.

The following DBMSes are supported out of the box:

  • dBase and FoxPro, supported through the TDbf component
  • InterBase / Firebird. See [1]
  • Microsoft SQL Server and Sybase ASE. See [2]
  • MySQL and MariaDB. See [3]
  • ODBC databases. See [4]
  • Oracle. See [5]
  • PostgreSQL. See [6]
  • SQLite. See [7]
  • Simple, local, flat file databases through TBufDataset, TMemDataset and TSdfDataset.

4. Differences from Delphi

While resembling Delphi in many ways, there are a few limitations regarding the performance and feature set, including:

  • Under Windows, the default size of an executable file is larger than the Delphi 6 or 7 equivalent, as Lazarus stores debug information within the executable, rather than as separate files. From 0.9.30 onwards, Lazarus supports external debug symbols; program file size can be significantly reduced (via compiler options) by using an external symbols file. Alternatively, debug info can be stripped from EXEs (e.g. using a port of the UNIX strip command).
  • Components for Delphi can be converted to work in Lazarus, which could be complex, but became less so since 0.9.30, based on FP 2.4.x.
  • Lack of Datasnap (not a publicly documented system, Embarcadero proprietary enterprise functionality).
  • Networking is mostly available.
  • No support to directly call .NET libraries. Object Pascal code can be called from .NET software.[2]
  • No support for dynamically loadable packages.
  • Not fully compatible with VCL. As mentioned previously, this is by design, although the LCL widget set should suffice for most applications. But this makes the deep repository of available VCL widgets inaccessible without conversion. The conversion effort mostly involves some editing, although there are a few fundamental differences. When porting, missing units in the libraries are a considerably bigger problem than incompatibilities between LCL and VCL.
  • Microsoft Office connectivity limited to popping up Microsoft Excel with a simple table filled out (since FPC 2.6.0).
  • Microsoft Component Object Model (COM) is supported (since Lazarus 2.2.0).

5. Distribution and Licensing

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.[3]

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, so that distributing the Lazarus IDE with a GPL-incompatible design-time package such as the JEDI packages licensed under the Mozilla Public License, pre-installed would cause a license violation. This does not prohibit proprietary packages from being developed with Lazarus.

6. History

The first attempt to develop a visual IDE for Free Pascal dates back to 1998, under the name "Megido project". 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 (0.9.0.3) was hosted at SourceForge. The first final Lazarus version (1.0) 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.

7. Versions

{{{2}}}

Version number Release date Platform Comments
0.0.5 January 2001 Windows First release of component library
0.1 January 2001 Windows Redesign of component library to support platform-sensitive development for Linux and Windows using GTK+ and other widgetsets.
0.5 January 30, 2001 Windows, Linux Bug fixes and new features supporting cross-platform development and project skeletons.
0.8 October 9, 2001 Windows, Linux Codetools implemented, bug fixes.
0.8.2 January 17, 2002 Windows, Linux Expanded find functions.
0.8.4 August 19, 2002 Windows, Linux Improved graphics and font support, support for Delphi 6 syntax. Binary DFMs are now automatically converted to LFMs.
0.8.5 October 26, 2002 Windows, Linux LCL decoupled from interfaces.
0.9.0.3 September 4, 2003 Linux First release on SourceForge
0.9.1 February 27, 2004 Windows, Linux Support for packages, numerous added and enhanced properties.
0.9.4 January 3, 2005 Windows Threading support improved, oldest public version hosted at SourceForge
0.9.6 February 25, 2005 Windows  
0.9.8 July 19, 2005 Windows  
0.9.10 October 3, 2005 Windows, Mac OS X (PPC) Bug fixes, extensibility of IDE improved, document editor for FPDoc files. Includes Free Pascal 2.0.1
0.9.12 February 7, 2006 Windows New packages for database support, CGI applications and printing.
0.9.14 April 2, 2006 Windows, Mac OS X (PPC), Linux Bugfixes, more controls in the WinCE and Qt4 interface
0.9.16 May 28, 2006 Windows, Mac OS X (PPC), Linux Bug fixes, online help for IDE windows and for LCL applications, improvements to QT widgetset interface. Includes Free Pascal 2.0.2
0.9.18 September 23, 2006 Windows, Mac OS X (PPC), Linux Bugfixes, procedure list implemented, new command-line tool "lazbuild"
0.9.20 November 5, 2006 Windows, Mac OS X (PPC), Linux Bufixes, code folding implemented, QT widgetset improved.
0.9.22 March 26, 2007 Windows, Mac OS X (PPC), Linux New components to write Windows services and Linux daemons, support for custom mouse cursors. Includes Free Pascal 2.0.4
0.9.24 November 15, 2007 Windows, Mac OS X (Intel and PPC), Linux First 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
0.9.26 October 5, 2008 Windows, Mac OS X (Intel and PPC), Linux Internal 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.
0.9.26.2 March 13, 2009 Windows, Mac OS X (Intel and PPC), Linux Bug fixes, improved icon support. Includes Free Pascal 2.2.2
0.9.28 September 29, 2009 Windows, Mac OS X (Intel and PPC), Linux Improvements 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
0.9.28.2 October 25, 2009 Windows, Mac OS X (Intel and PPC), Linux Mainly bug fixes.
0.9.30 March 22, 2011 Windows, Mac OS X (Intel and PPC), Linux Large number of new features, including docking and multiple source-code windows. Based on Free Pascal 2.4.2.
0.9.30.2RC1 September 30, 2011 Windows, Mac OS X (Intel and PPC), Linux Includes Free Pascal 2.4.4. Release candidate for Lazarus 0.9.30.2.
0.9.30.2RC2 October 26, 2011 Windows, Mac OS X (Intel and PPC), Linux Release candidate for Lazarus 0.9.30.2.
0.9.30.2 November 5, 2011 Windows, Mac OS X (Intel and PPC), Linux Bug fixes.
0.9.30.4RC1 March 3, 2012 Windows, Mac OS X (Intel and PPC), Linux Bug fixes, includes Free Pascal 2.6.0. Release candidate for Lazarus 0.9.30.4.
0.9.30.4RC2 March 7, 2012 Windows, Mac OS X (Intel and PPC), Linux Release candidate for Lazarus 0.9.30.4.
0.9.30.4RC3 March 11, 2012 Windows, Mac OS X (Intel and PPC), Linux Release candidate for Lazarus 0.9.30.4.
0.9.30.4 March 14, 2012 Windows, Mac OS X (Intel and PPC), Linux Bug fixes
1.0RC1 July 29, 2012 Windows, Mac OS X (Intel), Linux Release candidate for Lazarus 1.0.
1.0RC2 August 21, 2012 Windows, Mac OS X (Intel and PPC), Linux Release candidate for Lazarus 1.0.
1.0 August 28, 2012 Windows, Mac OS X (Intel and PPC), Linux First 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.
1.0.2 October 10, 2012 Windows, Mac OS X (Intel and PPC), Linux Bug fixes, minor additions to LCL and widgetsets
1.0.4 December 2, 2012 Windows, Mac OS X (Intel and PPC), Linux Bug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart
1.0.6 February 3, 2013 Windows, Mac OS X (Intel and PPC), Linux Bug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart
1.0.8 March 19, 2013 Windows, Mac OS X (Intel and PPC), Linux Bug fix release. Includes Free Pascal 2.6.2
1.0.10 June 12, 2013 Windows, Mac OS X (Intel and PPC), Linux Bug fixes.
1.0.12 August 24, 2013 Windows, Mac OS X (Intel and PPC), Linux Bug fixes.
1.0.14 November 16, 2013 Windows, Mac OS X (Intel and PPC), Linux Bug fixes.
1.1.99 September 16, 2013 Windows, Mac OS X, Linux Alpha version for Lazarus 1.2
1.2RC1 November 3, 2013 Windows, Mac OS X, Linux Release candidate for Lazarus 1.2
1.2RC2 January 13, 2014 Windows, Mac OS X, Linux Release candidate for Lazarus 1.2
1.2 March 4, 2014 Windows, Mac OS X, Linux Multiple new features, including a macro recorder, support for layered graphs and Pascal Script. Based on Free Pascal 2.6.2
1.2.2 April 23, 2014 Windows, Mac OS X, BSD, Solaris, Linux Bug fix release. Based on Free Pascal 2.6.4
1.2.4 June 16, 2014 Windows, Mac OS X, BSD, Solaris, Linux Bug fix release.
1.2.6 October 12, 2014 Windows, Mac OS X, BSD, Solaris, Linux Bug fix release.
1.4.0 April 19, 2015 Windows, Mac OS X, BSD, Solaris, Linux Improvements of editor, resource handling and additional new features. Based on Free Pascal 2.6.4.
1.4.2 July 14, 2015 Windows, Mac OS X, BSD, Solaris, Linux Bug fix release.
1.4.4 October 4, 2015 Windows, Mac OS X, BSD, Solaris, Linux Bug fix release.
1.6 February 18, 2016 Windows 32bit/64bit, Mac OS X, Linux Multiple new features, including docking, project groups and improved editor. Based on Free Pascal 3.0.0.[4]
1.6.2 November 13, 2016 Windows 32bit/64bit, Mac OS X, Linux Bug fix release.
1.6.4 February 26, 2017 Windows 32bit/64bit, macOS, Linux Bug fix release. Based on Free Pascal 3.0.2.
1.8.0 December 6, 2017 Windows 32bit/64bit, macOS, BSD, Linux Major release with many new features including an online package manager. Based on Free Pascal 3.0.4.
1.8.2 February 28, 2018.   Bug fix release.
1.8.4 May 22, 2018 Windows 32bit/64bit, macOS, BSD, Linux Bug fix release.[5]
2.0.0 January 5, 2019 Windows 32bit/64bit, macOS, BSD, Linux Multiple new features including Cocoa support and the introduction of a Pascal to JavaScript transpiler.
2.0.2 April 16, 2019 Windows 32bit/64bit, macOS, BSD, Linux Bug fix release.
2.0.4 August 6, 2019 Windows 32bit/64bit, macOS, BSD, Linux Bug fix release.
2.0.6 November 1, 2019 Windows 32bit/64bit, macOS, BSD, Linux Bug fix release.
2.0.8 April 16, 2020 Windows 32bit/64bit, macOS, BSD, Linux Bug fix release, improved Cocoa widgetset.
2.0.10 July 11, 2020 Windows 32bit/64bit, macOS, BSD, Linux Bug fix release, minor additions, first version based on Free Pascal 3.2.0.
2.0.12 February 21, 2021 Windows 32bit/64bit, macOS, BSD, Linux Based on Free Pascal 3.2.0. List of fixes available.[6]
2.2.0 January 5, 2022 Windows 32bit/64bit, macOS (ARM and Intel), BSD, Linux Based on Free Pascal 3.2.2. Multiple improvements, among others in the IDE, the LCL and widgetsets.[7]
2.2.2 May 19, 2022 Windows 32bit/64bit, macOS (ARM and Intel), BSD, Linux Bug fix release.

8. Examples of Applications Produced with Lazarus

  • ASuite is a free open-source application launcher for Windows. From 2.1 Alpha 1, it's fully written in Lazarus/FPC.
  • Beyond Compare is a data comparison utility for Windows, macOS, and Linux. The macOS and Linux versions are compiled using Lazarus/FPC.
  • Cartes du Ciel is a free planetarium program for Linux, macOS and Windows. The software maps out and labels most of the constellations, planets, and objects you can see with a telescope. It is fully written in Lazarus/FPC and released under GPL.
  • C-evo is an open source turn-based strategy game that has been ported from Delphi to Lazarus.[8]
  • Cheat Engine is an open-source memory scanner/hex editor/debugger. It is useful for cheating in computer games. Since version 6.0 it is compiled with Lazarus/FPC.
  • EPANET, a software package for modelling water-distribution systems.
  • HNSKY, Hallo Northern Sky is a free planetarium program for Windows and Linux. Since version 3.4.0 written and compiled with Lazarus/FPC.
  • MyNotex is a free software for Linux useful to take and manage textual notes.
  • PeaZip is an open-source archiver, made with Lazarus/FPC.
  • TorChat is moving away from Python and is being rewritten in Lazarus + Free Pascal.
  • Total Commander 64-bit version.[9]
  • Double Commander is a cross-platform open-source file manager with two panels side by side. It is inspired by Total Commander, plus some new ideas.[10]
  • CudaText is a cross-platform open-source text editor.
  • Coedit (renamed to Dexed) is an IDE for the D programming language.
  • SimThyr is a continuous simulation program for thyroid homeostasis.
  • Tomboy-ng, the currently active manifestation of Tomboy.
  • Tranzistow [11] is a 32/64-bit software synthesizer for Windows and Linux developed with FreePascal/Lazarus.

9. Examples of Delphi Libraries Compatible with Lazarus

  • GLScene is a free OpenGL-based library that provides visual components and objects allowing description and rendering of 3D scenes.
  • OpenWire is an open-source library that allows pin type properties to make connections between LCL components similar to LabVIEW or Agilent VEE.

References

  1. See LCL Internals. http://wiki.lazarus.freepascal.org/LCL_Internals
  2. "Using Pascal Libraries with .NET and Mono". https://wiki.lazarus.freepascal.org/Using_Pascal_Libraries_with_.NET_and_Mono. 
  3. ""COPYING.txt" file from the online source code repository". http://www.freepascal.org/cgi-bin/viewcvs.cgi/trunk/COPYING.txt?root=lazarus&view=markup. 
  4. Lazarus 1.6 on http://forum.lazarus.freepascal.org http://forum.lazarus.freepascal.org/index.php/topic,31575.0.html
  5. Lazarus 1.8.4 on http://forum.lazarus.freepascal.org http://forum.lazarus.freepascal.org/index.php/topic,41326.0.html
  6. "Lazarus 2.0 fixes branch". https://wiki.lazarus.freepascal.org/Lazarus_2.0_fixes_branch#Fixes_for_2.0.12_.28merged.29. 
  7. "Lazarus 2.2.0 release notes". https://wiki.lazarus.freepascal.org/Lazarus_2.2.0_release_notes. 
  8. c-evo Lazarus port website https://app.zdechov.net/c-evo/
  9. "In which language is TC written??". Ghisler.ch. 2010-08-09. http://www.ghisler.ch/board/viewtopic.php?p=207878#207878. 
  10. sourceforge.net. http://doublecmd.sourceforge.net/mediawiki/index.php/Main_Page
  11. "Tranzistow". https://www.hrastprogrammer.com/hrastwerk/tranzistow.htm. 
More
Information
Contributor MDPI registered users' name will be linked to their SciProfiles pages. To register with us, please refer to https://encyclopedia.pub/register :
View Times: 1.9K
Entry Collection: HandWiki
Revision: 1 time (View History)
Update Date: 17 Oct 2022
1000/1000