From Seo Wiki - Search Engine Optimization and Programming Languages
|Please help improve this article by expanding it. Further information might be found on the talk page. (August 2009)|
|File:Lazarus 0.9.25 Carbon.png|
Lazarus IDE 0.9.25 running on Mac OS X 10.4
|Stable release||0.9.28.2 / October 31, 2009|
|Type||RAD tool for Pascal and Object Pascal|
|License||GNU General Public License, GNU Lesser General Public License, and others|
Lazarus is a cross platform visual IDE which provides a Delphi-mimic development environment for Pascal and Object Pascal developers. It is developed for and supported by the Free Pascal compiler. As of March 2008[update], Lazarus is available for several Linux distributions, FreeBSD, Microsoft Windows and Mac OS X.
Distributed under a mix of free software licenses, Lazarus is free software, just as Free Pascal is. Notably among those licences is a modified version of the GNU Lesser General Public License. The modification grants extra permissions to allow Lazarus to be used in proprietary software.
Unlike Java which is intended to be write once, run anywhere, Lazarus and Free Pascal aim to be write once, compile anywhere. As the same compiler is available for all of the above operating systems, there is no need for re-coding to produce identical products for different platforms, except when operating system-dependent features are used. Cross-compiling is also supported.
Compared with Delphi, Lazarus is less stable and less well-documented. However, Lazarus has multi-platform capability and is more transparent, customizable and can run from a USB flash drive.
Under Linux, Delphi source code can be compiled with Lazarus with a little adaptation. Lazarus source code can also be adapted to compile with Delphi or Kylix, an abandoned version of Delphi for Linux.
Lazarus and UI access
Lazarus Component Library (LCL)
The Lazarus Component Library (LCL) is a set of visual and non-visual component classes over a Widget toolkit-dependent layer. The LCL was originally created based on the Delphi 6 VCL, but is available for operating systems other than Microsoft Windows.
In the Lazarus terminology, an interface is a layer that interacts directly with a widget toolkit. By creating interfaces, support for different widget toolkits are added.
The current status of widget toolkit interfaces is roughly like this:
- Win32/Win64 GDI support (native) is in mainstream use.
- GTK+ 1.2.x is in mainstream use (for Unix derivatives, including Mac OS X)
- GTK+ 2.6+ is fully working and in mainstream use.
- Qt 4.2+ has headers translated, and the interface is fully implemented.
- for Cocoa (Mac OS X native toolkit, Objective C) there are bindings and an initial interface.
- for Carbon (Mac OS X native toolkit, C) is in mainstream use.
- Windows CE (native) is almost fully working.
- the fpGUI (Free Pascal GUI toolkit) interface is in the initial stage.
Currently there is no cross-platform tool for PDAs or good RADs. Support for PDAs in Lazarus is being implemented and it may fill this vacancy.
The Lazarus project has a good community and a vigorous development process, with many contributors and development testers. The community solves the problems using a discussion board, and programmers submit fixes for issues raised on the board. Each night untested builds are generated for beta testing.
Developers can install packages which allow Lazarus to support several databases. Programs can interact with databases through code or by components dropped on a form. The data-aware components represent fields and are connected by the correct setting of properties to a TDataSource, which represents a table, and to the database components, which may be TPSQLDatabase, TSQLiteDataSet, or equivalent.
The following databases are directly supported:
- PostgreSQL, with the PSQL package
- dBase and FoxPro can be supported without the need for an external server or library through the TDbf component
- MySQL works
- SQLite needs a single external library and the TSqliteDataset component
- MSSQL is working with Zeoslib
- InterBase / Firebird also work with the latest ZeosLib
Some helper data providers (CSV, SDF) are also provided.
Free Pascal supports cross-compiling, and Lazarus applications can be cross-compiled from Windows to Linux and FreeBSD and vice versa. Compiling from Mac OS X to Windows, Linux and FreeBSD is possible. Cross-compiling to OS X has been done, but is not ready for use by end users.
Lazarus is also used to build PDA applications, e.g. for Windows CE, on a machine running Linux or Windows.
While resembling the Delphi RAD in many ways, there are a few limitations regarding the performance and feature set:
- Under Windows executable file size is somewhat larger than the Delphi equivalent because debug information is included within Lazarus executables, instead of as separate files like Delphi. Lazarus program file size can be significantly reduced by using Strip and UPX. See also FPC wiki: Size Matters
- Components for Delphi can be installed in Lazarus, but they must be converted, which can be complex.
- Missing important media libraries and widgets:
- Microsoft Office connectivity
- Datasnap (not a publicly documented system, Borland proprietary enterprise functionality)
- Networking is mostly available, with a wealth of packages to choose from:
- Status: Linux/x86, win32: 100 percent working;
- FreeBSD/x86: also 100 percent, but requires developer's versions;
- Mac OS X/PowerPC: servers untested, various endianness problems in demos;
- Other platforms remain untested, though some client success on wince was claimed;
- ICS A bit win32-centric, but quite well suited for Windows-specific customization if needed.
- Synapse FPC support hugely improved the last year.
- lNet is an FPC native non-blocking variant, with Linux/FreeBSD specific (KSE/EPoll) optimizations for mass connectivity
- No support to directly call .NET libraries. On the other hand, it is possible to call Object Pascal code from .NET software. 
- The COM support was missing from the 2.0.x series, but was initially working in 2.2.0, and has matured fast since.
- Missing dynamically loadable packages support.
- Not 100 percent compatible with VCL. As mentioned previously this is by design, although the current 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 and COM support are a considerably bigger problem than incompatibilities between LCL and VCL.
The Lazarus Component Library (LCL), which is statically linked into programs, is licensed under a modified version of the GNU Lesser General Public License (LGPL). The modification is specially made so that static linking of the LCL into proprietary programs is allowed.
Note that installing a design-time package is equivalent to linking to the IDE. Thus, distributing the Lazarus IDE with a GPL-incompatible design-time package (e.g. the JEDI packages, which are licensed under the Mozilla Public License) pre-installed would cause a license violation. This does not prohibit proprietary packages from being developed with Lazarus, though.
Applications produced with Lazarus
- Audio X is a media management tool that can organize and sort your media without using a separate database, so the data set is always synchronized. Many audio formats are usable directly but you can also organize your LP or CD collection with it. It stores data in XML files so they are also viewable with a web browser. Made with Lazarus/FPC.
- Cactus Jukebox is an audio player that comes with a database to organize your MP3 file collection. It is platform independent and currently available for Linux and 32-bit Windows. Made with Lazarus/FPC.
- Becape is an open source backup tool aimed at personal/desktop usage. It does incremental backups and stores the backup info in an SQLite database allowing the restoration of the exact state of the backed files at a chosen date. It's fully written in Lazarus/Freepascal.
- CQRLOG is an advanced ham radio logger based on a Firebird database. Provides radio control based on hamlib libraries (currently support of over 140 radio types and models), DX cluster connection, QRZ callbook (web version), a grayliner, ON6DP QSL manager database support and a most accurate country resolution algorithm based on country tables developed by OK1RR. CQRLOG is strongly focused on easy operation and maintenance. Made with Lazarus/FPC.
- Dedalu is a collection of small and simple projects developed in Lazarus/FPC by Giuseppe Ridinò (aka Pepecito). They are games, editors, utilities, etc.
- DarGUI is a graphical interface for Denis Corbin's Dar backup utility, developed using Lazarus/FPC.
- KComm is a ham radio logging program developed specifically for Elecraft K2 and K3 transceivers. It works under Windows or Linux. It is designed for the average ham radio operator who wants an easy to use logging program also suitable for casual contest use. It supports CW Transmit from the keyboard, CW decoding, PSK31/63 transmit and receive. DX Cluster client and integration with CW Skimmer. Made with Lazarus/FPC.
- LockHunter a free utility to forced deletion of any files, even those that are locked by some processes. Made with Lazarus/FPC, currently supports Windows 32 / 64 bit only.
- Master Maths specializes in computer based training and maths. The third incarnation of their flagship product is developed using Lazarus, Firebird database and tiOPF v2. The product has two parts. An Administration application and a Learner Browser (used to view and mark the teaching modules). The Learner Browser uses Adobe Flash extensively and is a CGI web application. The complete product runs under Linux and Windows. Made with Lazarus/FPC and uses the fpGUI Toolkit as its widgetset.
- MRIcron is a medical image visualization and analysis package. The software provides tools for drawing volumes of interest and volume rendering. In addition, it includes non-parametric statistical mapping (npm) and conversion of images from DICOM format to NIfTI format (dcm2nii). Made with Lazarus/FPC, it is currently available for Windows (using WinAPI), Linux (GTK1, GTK2 or QT) and Mac OS X (Carbon or GTK1).
- MRIcroGL uses GLScene to provide hardware accelerated volume rendering. It can display grayscale images (e.g. CT, MRI) or full color images (e.g. photographs from the visible human dataset).
- OutKafe is a next-generation free and open source cybercafe management suite. OutKafe is licensed under the GNU GPL version 3, and is thus considered free software. OutKafe is developed by A.J. Venter with sponsorship from OutKast I.T. Solutions C.C. and the kind contributions of several volunteers. OutKafe is running hundreds of cybercafe’s at business, schools and other establishments around the world. Made with Lazarus/FPC.
- Peazip is an open source archiver, made with Lazarus/FPC
- QFront is a platform independent frontend for the CPU emulator QEMU. Made with Lazarus/FPC.
- SPINA is a medical cybernetic software package that allows for calculating constant structure parameters of endocrine feedback control systems from hormone levels obtained in vivo. This free software comes with source code in Lazarus/FPC and PocketStudio.
- TruckBites business management software for independent trucking companies and owner/operators in the USA. Written with Lazarus/FPC under contract by Tony Maro for both Linux and Windows for "Partners in Trucking, LLC".
- Virtual Magnifying Glass is a free, open source, screen magnification tool for Windows, Mac OS X and Linux.
- Double Commander is a cross-platform open source file manager with two panels side by side.
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.
OpenWire appears not to support Lazarus anymore. Can someone confirm please.
- ↑ ""COPYING.txt" file from the online source code repository". http://www.freepascal.org/cgi-bin/viewcvs.cgi/trunk/COPYING.txt?root=lazarus&view=markup.
- ↑ ""COPYING.modifiedLGPL.txt" file from the online source code repository". http://www.freepascal.org/cgi-bin/viewcvs.cgi/trunk/COPYING.modifiedLGPL.txt?root=lazarus&view=markup.
- About Lazarus
- Project Homepage at SourceForge.net
- Lazarus Code and Component Repository
- a website providing documentation to Lazarus developers, in addition to provide help to port VCL (Visual Component Library) to LCL (Lazarus Component Library).
- LCL is an open source clone of VCL/CLX (see more from Delphi), which works with the Free Pascal compiler.
- See Delphi to Lazarus Code Conversion Guide for more detail.
- The Lazarus Documentation Project
- Free Pascal Documentation
- Lazarus with GLScene bundled
- Other Free Pascal Links
bg:Lazarus de:Lazarus (Entwicklungsumgebung) es:Lazarus fr:Lazarus ko:라자루스 it:Lazarus (software) he:Lazarus hu:Lazarus nl:Lazarus (software) ja:Lazarus pl:Lazarus pt:Lazarus ru:Lazarus sk:Lazarus sr:Лазарус fi:Lazarus sv:Lazarus (programspråk) tr:Lazarus (yazılım) uk:Lazarus zh:Lazarus