Lazarus (software)

Lazarus (software)

:"This article concerns the software IDE named Lazarus. For other uses of the name, see Lazarus (disambiguation)."

Infobox_Software
name = Lazarus


caption = Lazarus IDE 0.9.25 Screen print (Linux, GTK1)
developer = volunteers
latest_release_version = 0.9.24
latest_release_date = release date and age|2007|11|8
operating_system = cross-platform
genre = Pascal SDK
license = GNU General Public License, GNU Lesser General Public License, and others
website = http://www.lazarus.freepascal.org

Lazarus is a cross platform Visual Integrated development environment (IDE) which provides a Rapid Application Development (RAD) Delphi clone for Pascal and Object Pascal developers. It is developed for and supported by the Free Pascal compiler, and as of March 2008 available for several Linux distributions, FreeBSD, Mac OS X and Microsoft Windows [http://sourceforge.net/project/showfiles.php?group_id=89339] .

Distributed under a mix of licences, [cite web
url=http://www.freepascal.org/cgi-bin/viewcvs.cgi/trunk/COPYING.txt?root=lazarus&view=markup
title="COPYING.txt" file from the online source code repository
] all of which are free software licences, 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. [cite web
url=http://www.freepascal.org/cgi-bin/viewcvs.cgi/trunk/COPYING.modifiedLGPL.txt?root=lazarus&view=markup
title="COPYING.modifiedLGPL.txt" file from the online source code repository
]

Free Pascal is a compiler which runs on many operating systems. It is designed to use and compile Delphi source code, which is Object Oriented Pascal. 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 recoding to produce identical products for different platforms, except when operating-system-dependent features are used. Cross-compiling is supported.

Under Microsoft Windows Lazarus is less stable and less well-documented than Delphi, but 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 be adapted to compile under Delphi and Kylix (An abandoned version Delphi for Linux).

Lazarus and UI access

LCL

The Lazarus GUI subsystem, Lazarus Component Library (LCL), is basically a set of visual and non visual component classes over a Widget toolkit-dependent part. The LCL is based on the Delphi6 VCL, but has not been kept totally compatible to improve use with operating systems other than Microsoft Windows.

Interfaces - Widget toolkit dependence

In Lazarus terminology, this part is called simply "the Interface". Actually it's more like one Interface per Widget toolkit.

The current status of Widget toolkit Interface is roughly like this:
* Win32 GDI support (win32 native) is in mainstream use.
* GTK+ 1.2.x is in mainstream use (Unix derivatives including Mac OS X)
* GTK+ 2.6+ is fully working. Running the IDE with the Gtk 2 interface still presents minor problems, however.
* Qt 4.2+ has headers translated, and the interface is partially implemented.
* for wxWidgets (C++) there is no header translation yet.
* for Cocoa (Mac OS X native toolkit, Objective C) No header translation yet.
* for Carbon (Mac OS X native toolkit, C) is partially implemented.
* wince (Windows CE native) has headers and the interface is working.
* fpGUI (Free Pascal GUI toolkit) needs to wait until fpGUI stabilizes.

PDA support

Currently there is no cross platform tool for PDAs or good RADs. Support for PDAs on Lazarus is being implemented and it may occupy this vacancy.

Platforms with LCL Interfaces being implemented:
* Windows CE
* Qtopia

Possible in the future:
* PalmOS
* Symbian OS

Development process

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 bèta testing.

Database support

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 [http://wiki.lazarus.freepascal.org/Lazarus_DB_Faq#PostgreSQL PSQL package]
* dBase and FoxPro can be supported without the need for an external server or library through the [http://wiki.lazarus.freepascal.org/Lazarus_Tdbf_Tutorial TDbf component]
* MySQL works
* SQLite needs a single external library and the TSqliteDataset component
* MSSQL is working with [http://zeoslib.sourceforge.net/index.php Zeoslib]
* InterBase / Firebird also work with the latest [http://zeoslib.sourceforge.net/index.php ZeosLib]

Some helper data providers (CSV, SDF) are also provided.

Cross-development

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 manageable by endusers.

Lazarus is also used to build PDA applications, e.g. for Windows CE, on a machine running Linux or Windows.

Limitations

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. See also [http://wiki.freepascal.org/Size_Matters 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:
** [http://www.indyproject.org/Sockets/fpc/index.en.aspx Indy] .
*** 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 demoes;
*** Other platforms remain untested, though some client success on wince was claimed;
** [http://www.overbyte.be ICS] A bit win32-centric, but quite well suited for Windows-specific customization if needed.
** [http://www.ararat.cz/synapse/ Synapse] FPC support hugely improved the last year.
** [http://wiki.lazarus.freepascal.org/index.php/LNet 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. [http://wiki.lazarus.freepascal.org/Using_Pascal_Libraries_with_.NET_and_Mono]
* The COM support was missing from the 2.0.x series, but was initially working in 2.2.0, and has matured fast since.
* No frames (*)
* No visual form inheritance (*)
* 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.

(*) denotes features currently being worked on

Licensing

Although Lazarus software is GPL licensed, software developed using it can be deployed on any license. The Lazarus Component Library (LCL) is statically linked into programs and is licensed using a modified version of LGPL specially designed to allow static linking to proprietary programs. (the "special" linking is an own wording of GNU's GPL-With-Linking-Exception. Meanwhile the wording has changed to more close match the GNU variant. It doesn't matter if the linking exception is applied to the GPL (as GNU does) or LGPL (as FPC/Lazarus did), since the exception is more liberal then the differences between both )

Note that installing a designtime package is equivalent to linking to the IDE. So distributing the Lazarus IDE with non-GPL compatible (e.g. MPL, the Jedi packages) designtime packages pre-installed would be a license violation. Despite that, you can build proprietary Lazarus packages, as long as you don't distribute a Lazarus pre-installed with them.

Applications produced with Lazarus

*Peazip: open source archiver, made with Lazarus/FPC
* [http://www.mricro.com/mricron/ 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 ( [http://www.mricro.com/npm/ npm] ) and conversion of images from DICOM format to NIfTI format ( [http://www.mricro.com/mricron/dcm2nii.html dcm2nii] ). Made with Lazarus/FPC, it is currently available for Windows (using WinAPI), Linux (GTK1, GTK2 or QT) and Macintosh OSX (Carbon or GTK1).
* [http://www.mricro.com/mricrogl/ MRIcroGL] uses [http://glscene.sourceforge.net/wikka/HomePage 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.
* [http://magnifier.sourceforge.net/ Virtual Magnifying Glass] is a free, open source, screen magnification tool for Windows and Linux. It is simple, customizable, and easy-to-use. It's currently available for Windows, Linux and FreeBSD. With over 170.000 downloads and a 5 years history, the magnifier aims to bring an easy to use accessibility tool to those who need it. Available for Linux, OSX and Windows, it is made with Lazarus/FPC.
* [http://www.ullihome.de Audio X] is an media management tool, that organize and sort your media without an database so everything is ever actual. A lot of audio formats are usable directly but you can also organize your LP or CD collection with it,it stores the data in XML Files so they are viewablealso with an webbrowser. Made with Lazarus/FPC.
*Cactus is an audio player that comes with a database to organize your mp3 file collection. Take a look at [http://cactus.hey-you-freaks.de Cactus Homepage] . It's platform independent and currently available for linux and win32. Made with Lazarus/FPC.
* [https://sourceforge.net/projects/becape/ Becape] is a open source backup tool aimed to personal/desktop usage. It does incrementall backups and stores the backup info in a sqlite database allowing to restore the exact state of the backed files at a chosen date. It's fully written in Lazarus/Freepascal.
* [http://www.mastermaths.co.za Master Maths] specialises in computer based training and maths. The third incarnation of our flagship product is developed using Lazarus, Firebird and [http://www.techinsite.com.au tiOPF v2] . The product has two parts. A Administration application and a Learner Browser (used to view and mark the teaching modules). The Learner Browser uses Macromedia Flash extensively. The complete product runs under Linux and Windows. Made with Lazarus/FPC.
* [http://www.ullihome.de QFront] is a platform independent Frontend for the CPU Emulator QEmu. Made with Lazarus/FPC.
* [http://outkastsolutions.co.za/outkast/index.php?option=com_openwiki&id=outkafe OutKafe] is a next-generation free and open source cybercafe management suite. OutKafe is licensed under the GNU/GPL version 3, and can be used free of charge. 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 cybercafe’s at business, schools and other establishments around the world. Made with Lazarus/FPC.
* [http://sourceforge.net/projects/cqrlog/ CQRLOG] is an advanced ham radio logger based on Firebird database. Provides radio control based on hamlib libraries (currently support of 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.
* [http://www.g4ilo.com/kcomm.html 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.
* [http://dedalu.sourceforge.net/ Dedalu] is a collection of small and simple projects developed in Lazarus/FPC by Giuseppe Ridinò (aka Pepecito). They are games, editors, utilities, etc.
* [http://www.truckbites.com TruckBites] business management software for independent trucking companies and owner/operators (for the USA.) Written with Lazarus/FPC under contract by Tony Maro for both Linux and Windows for "Partners in Trucking, LLC".

See also

* Free Pascal Compiler
* Comparison of Pascal IDEs

References

External links

* [http://www.lazarus.freepascal.org Lazarus, a RAD for FPC] ( [http://sourceforge.net/projects/lazarus/ Download at SourceForge.net] )
* [http://lazarus-ccr.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 [http://lazarus-ccr.sourceforge.net/index.php?wiki=CodeConversionGuide Delphi to Lazarus Code Conversion Guide] for more detail.
* [http://wiki.lazarus.freepascal.org/index.php/Lazarus_Documentation The Lazarus Documentation Project]
* [http://www.freepascal.org/docs.html Free Pascal Documentation]
* [http://www.skinhat.com/lazarus Lazarus with GLScene bundled]
* [http://www.freepascal.org/links.var Other Free Pascal Links]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Lazarus (Software) — Lazarus Lazarus IDE 0.9.26 Basisdaten Entwickler: Freiwillige Aktuelle Version: 0.9.26.2 (23. März 2009) …   Deutsch Wikipedia

  • Lazarus (disambiguation) — The name Lazarus can refer to a number of people and things. It is most commonly known as the name of the Biblical Lazarus of Bethany, raised from the dead in the New Testament. The derivation of the name itself is from Greek Lazaros , which was… …   Wikipedia

  • Lazarus — Lazarus …   Википедия

  • Lazarus (Entwicklungsumgebung) — Lazarus Lazarus IDE 0.9.26 Basisdaten Entwickler Freiwillige Aktuelle Version …   Deutsch Wikipedia

  • Lazarus — Para otros usos de este término, véase Lazarus (desambiguación). Para otros usos de este término, véase Lázaro (desambiguación). Lazarus Vista del IDE de Lazarus …   Wikipedia Español

  • Lazarus of Bethany — Stories say that he would always include something sweet in every meal. That was when he observed someone stealing a clay pot, causing him to smile and say with a laugh, clay stealing clay . [ [http://www.serfes.org/lives/stlazarus.htm St.… …   Wikipedia

  • Amiga support and maintenance software — This article is a split of main article Amiga software and refers to any support and maintenance software that run on Amiga line of computers.See also related articles Amiga productivity software and Amiga Internet and communications software for …   Wikipedia

  • List of open source software packages — This is a list of open source software packages: computer software licensed under an open source license. Software that fits the Free software definition may be more appropriately called free software; the GNU project in particular objects to… …   Wikipedia

  • List of Macintosh software — Contents 1 Audio 2 Computer aided design (CAD) 3 CD and DVD authoring …   Wikipedia

  • List of interactive geometry software — Interactive geometry software (IGS, or dynamic geometry environments, DGEs) are computer programs which allow one to create and then manipulate geometric constructions, primarily in plane geometry. In most IGS, one starts construction by putting… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”