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 ...
(IDE) for
rapid application development Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
(RAD) using the
Free Pascal Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, witexception clausesthat allow static linking against its ...
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 orac ...
. Software developers use Lazarus to create native-code console and
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, ins ...
(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 Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, witexception clausesthat allow static linking against its ...
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 computers. Within the market of desktop and la ...
,
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, whi ...
, 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 se ...
, 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 Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, ...
. Along with project management features, the Lazarus IDE also provides: * A What You See Is What You Get (
WYSIWYG In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
) 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 ...
, 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 word ...
,
SQLite SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the mo ...
,
Sybase Sybase, Inc. was an enterprise software and services company. The company produced software to manage and analyze information in relational databases, with facilities located in California and Massachusetts. Sybase was acquired by SAP in 2010; ...
, 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 Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, witexception clausesthat allow static linking against its ...
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 The Lazarus Component Library, abbreviated ''LCL'' is a visual software component library for the Lazarus IDE. Description The LCL consists of a collection of units that provide components and classes especially for visual tasks. It is base ...
(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 Write once, compile anywhere (WOCA) is a philosophy taken by a compiler and its associated software libraries or by a software library/software framework which refers to a capability of writing a computer program that can be compiled on all platf ...
'' manner, unless system-dependent features are used explicitly.


Cross-compiling

As Free Pascal supports
cross-compiling A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross c ...
, 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 se ...
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, whi ...
/
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 computers. Within the market of desktop and la ...
/ 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, whi ...
s,
PDA PDA may refer to: Science and technology * Patron-driven acquisition, a mechanism for libraries to purchase books *Personal digital assistant, a mobile device * Photodiode array, a type of detector * Polydiacetylenes, a family of conducting po ...
s, routers, game consoles) can be cross-compiled from any desktop platform.


Lazarus Component Library

The standard application framework,
Lazarus Component Library The Lazarus Component Library, abbreviated ''LCL'' is a visual software component library for the Lazarus IDE. Description The LCL consists of a collection of units that provide components and classes especially for visual tasks. It is base ...
(LCL) was originally modeled after the
Visual Component Library The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications. It is written in Object Pascal. History The VCL was developed by Borland for use i ...
(VCL) in Delphi 6, but, unlike Delphi, is not restricted to
Microsoft 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 ...
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 Widgetsets support platform-sensitive development with the Lazarus IDE system. They act as adapter libraries that provide an interface between a platform-inpedentent sourcecode written in Free Pascal and platform-specific system A system is ...
-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 system In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases ...
s (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 language ...
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-g ...
/ 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 ori ...
. 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 ...
. Se

*
SQLite SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the mo ...
. 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 Microsoft Windows, Windows, macOS, Android (operating system), Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro (comp ...
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 Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, witexception clausesthat allow static linking against its ...
, 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, n ...
. Different portions are distributed under different free software licenses, including GPL,
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
, 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 {{Short pages monitor


See also

* Comparison of Pascal IDEs *
Dev-Pascal Dev-Pascal is a free software, free integrated development environment (IDE) distributed under the GNU General Public License for programming in Pascal (programming language), Pascal and Object Pascal. It supports an ancient version of the Free P ...
*
Embarcadero Delphi Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, ...
* 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 Worksh ...


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