HOME

TheInfoList



OR:

Lazarus is a free cross-platform visual
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(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 Delphi (; ), in legend previously called Pytho (Πυθώ), in ancient times was a sacred precinct that served as the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient classical world. The oracl ...
. 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
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
, and
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
, 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 Raspberry Pi () is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. The Raspberry Pi project originally leaned towards the promotion of teaching basic ...
.


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 MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
,
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
, FireBird,
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The wor ...
, 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


Cross-platform development

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.


Cross-compiling

As Free Pascal supports cross-compiling, Lazarus applications can be cross-compiled from
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
to
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
/
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
/ etc. and vice versa. Applications for embedded devices (
smartphone A smartphone is a portable computer device that combines mobile telephone and computing functions into one unit. They are distinguished from feature phones by their stronger hardware capabilities and extensive mobile operating systems, whic ...
s, PDAs, routers, game consoles) can be cross-compiled from any desktop platform.


Lazarus Component Library

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 system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s. 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 (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 dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming langua ...
and
FoxPro FoxPro was a text-based (computing), text-based Procedural programming, procedurally oriented programming language and database management system (DBMS), and it was also an object-oriented programming language, originally published by Fox Softwa ...
, supported through th
TDbf component
*
InterBase InterBase is a relational database management system (RDBMS) currently developed and marketed by Embarcadero Technologies. InterBase is distinguished from other RDBMSs by its small footprint, close to zero administration requirements, and multi ...
/ Firebird. Se

*
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ...
and
Sybase ASE SAP ASE (Adaptive Server Enterprise), originally known as Sybase SQL Server, and also commonly known as Sybase DB or Sybase ASE, is a relational model database server developed by Sybase Corporation, which later became part of SAP AG. ASE was ...
. Se

*
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
and
MariaDB MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the ...
. Se

* ODBC, ODBC databases. Se

* Oracle database, Oracle. Se

*
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
. Se

* SQLite. Se

* Simple, local, flat file databases through TBufDataset, TMemDataset and TSdfDataset.


Differences from Delphi

While resembling Embarcadero Delphi, 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. * 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 Microsoft Excel is a spreadsheet developed by Microsoft for Windows, macOS, Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro programming language called Visual Basic for ...
with a simple table filled out (since FPC 2.6.0). * Microsoft Component Object Model (COM) is supported (since Lazarus 2.2.0).


Distribution and licensing

Like Free Pascal, Lazarus is
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
. 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, 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.


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 SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrori ...
. 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 Lazarus of Bethany (Latinised from Lazar, ultimately from Hebrew Eleazar, "God helped"), also venerated as Righteous Lazarus, the Four-Days Dead in the Eastern Orthodox Church, is the subject of a prominent sign of Jesus in the Gospel of John ...
, who, according to the
Gospel of John The Gospel of John ( grc, Εὐαγγέλιον κατὰ Ἰωάννην, translit=Euangélion katà Iōánnēn) is the fourth of the four canonical gospels. It contains a highly schematic account of the ministry of Jesus, with seven "sig ...
, was restored to life by
Jesus Jesus, likely from he, יֵשׁוּעַ, translit=Yēšūaʿ, label=Hebrew/Aramaic ( AD 30 or 33), also referred to as Jesus Christ or Jesus of Nazareth (among other names and titles), was a first-century Jewish preacher and religiou ...
four days after his death.


Versions


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 A planetarium ( planetariums or ''planetaria'') is a theatre built primarily for presenting educational and entertaining shows about astronomy and the night sky, or for training in celestial navigation. A dominant feature of most 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 ''C-evo'' is a free turn-based strategy computer game whose source code is in the public domain by German developer Steffen Gerlach, its programmer and designer, making the game freeware. ''C-evo'' is an empire building game based on ''Civili ...
is an open source turn-based strategy game that has been ported from Delphi to Lazarus. *
Cheat Engine Cheat Engine (CE) is a proprietary, source available freeware memory scanner/debugger created by Eric Heijnen ("Byte, Darke") for the Windows operating system. Cheat Engine is mostly used for cheating in computer games and is sometimes modi ...
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 A planetarium ( planetariums or ''planetaria'') is a theatre built primarily for presenting educational and entertaining shows about astronomy and the night sky, or for training in celestial navigation. A dominant feature of most planetarium ...
program for Windows and Linux. Since version 3.4.0 written and compiled with Lazarus/FPC. * MyNotex is a free software for
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
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. * 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. * CudaText is a cross-platform open-source text editor.
Coedit
(renamed t
Dexed
is an IDE for the D programming language. *
SimThyr SimThyr is a free continuous dynamic simulation program for the pituitary-thyroid feedback control system. The open-source program is based on a nonlinear model of thyroid homeostasis. In addition to simulations in the time domain the software ...
is a continuous simulation program for thyroid homeostasis.
Tomboy-ng
the currently active manifestation of
Tomboy A tomboy is a term for a girl or a young woman with masculine qualities. It can include wearing androgynous or unfeminine clothing and actively engage in physical sports or other activities and behaviors usually associated with boys or men ...
. * Tranzistow is a 32/64-bit software synthesizer for Windows and Linux developed with FreePascal/Lazarus. * Simba is a automation program that facilitates the automation and repetition of certain programmable complicated tasks.


Examples of Delphi libraries compatible with Lazarus

*
GLScene GLScene is a free OpenGL-based library for Delphi, C++ and Free Pascal. It provides visual components and objects allowing description and rendering of 3D scenes. Development of the original library was started in 1999 by Mike Lischke and at ...
is a free
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
-based
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
that provides visual components and objects allowing description and rendering of 3D scenes. * OpenWire is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
that allows pin type properties to make connections between LCL components similar to
LabVIEW Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for a visual programming language from National Instruments. The graphical language is named "G"; not to be confused with G- ...
or Agilent VEE.


See also

* Comparison of Pascal IDEs * Dev-Pascal * Embarcadero Delphi * Free Pascal Compiler *
Object Pascal Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods. The language was originally developed by Apple Computer as ''Clascal'' for the Lisa Work ...


Citations


Additional references

* * * * *


External links


Lazarus Homepage



Project Homepage at SourceForge.net

The Lazarus Documentation Project

Get Lazarus hosting downloads

Lazarus learning center
{{DEFAULTSORT:Lazarus (Software) 1999 software Cross-platform free software Cross-platform software Free computer libraries Free integrated development environments Free Pascal Free software programmed in Pascal Integrated development environments Linux integrated development environments MacOS programming tools Pascal (programming language) Pascal programming language family Pascal (programming language) software Platform-sensitive development Programming tools for Windows User interface builders