Lazarus (IDE)
|
|
This article's use of external links may not follow Wikipedia's policies or guidelines. Please improve this article by removing excessive or inappropriate external links, and converting useful links where appropriate into footnote references. (January 2011) |
|
|
This article for grammar, style, punctuation, use of undefined acronyms may require cleanup to meet Wikipedia's quality standards. (Consider using more specific cleanup instructions.) Please help improve this article for grammar, style, punctuation, use of undefined acronyms if you can. The talk page may contain suggestions. (February 2011) |
Lazarus IDE 0.9.26 running on Mac OS X |
|
| Developer(s) | Volunteers |
|---|---|
| Stable release | 0.9.30.2 / November 4, 2011 |
| Operating system | Cross-platform |
| Type | RAD tool for Pascal and Object Pascal |
| License | GNU General Public License, GNU Lesser General Public License, and others |
| Website | http://www.lazarus.freepascal.org/ |
Lazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions, FreeBSD, and Mac OS X. The earliest versions were created before that, and Lazarus is a front end for the much older Free Pascal.
Contents |
[edit] 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.
Similar to Free Pascal’s run-time library, 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, one can create applications in a write once, compile anywhere manner, unless system-dependent features are used explicitly.
[edit] Cross-compiling
As Free Pascal supports cross-compiling, 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 Mac OS X can be done, but is not ready for use by end users.
Applications for embedded devices (Phones, PDA's, routers, game consoles} are cross-compiled from a *nix or Windows.
[edit] Lazarus Component Library
The standard application framework, Lazarus Component Library (LCL) was modeled after the Visual Component Library (VCL) in Delphi 6, but is available for operating systems other than Windows. This is done by separating the definition of common widget classes and their widgetset-specific implementation. Support for each widget set is done by providing an interface which interacts directly with the widget set.[1]
Currently (early 2011), the development status of widget toolkit interfaces is roughly as follows.
| Widget set | Supported Operating Systems | Status |
|---|---|---|
| Windows API, GDI | Windows | Mainstream use |
| Windows CE API, GDI | Windows CE | Mainstream use |
| GTK+ 1.2.x | Linux (via X11) | Deprecated |
| GTK+ 2.8+ | Windows, Linux (X11 and framebuffer) and Mac OS X (via X11) | Mainstream use |
| Qt 4.5+ | Windows, Linux (X11 and framebuffer), Mac OS X | Mainstream use. Works in Windows, Linux, Mac OS X, Maemo, etc |
| Cocoa | Mac OS X | In progress |
| Carbon | Mac OS X | Mainstream use |
| fpGUI | Windows, Windows CE, Linux (via X11) | Initial stage |
| Lazarus Custom Drawn Controls | Android, Windows, Linux (via X11), Mac OS X | Initial stage |
[edit] Database development
Developers can install packages that 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
- InterBase / Firebird works via standard SQL DB Package, and the Open Source IBX for Lazarus (see external link below)
- SQLite needs a single external library and the TSqliteDataset component
- MSSQL is working with Zeoslib
- InterBase / Firebird also works with the latest ZeosLib
- SQLdb which is shipped by default provides connectivity against PostgreSQL, Oracle, ODBC, MySQL, SQLite and InterBase
- ZeosDBO originally written for Delphi, now works for Lazarus as well, providing connectors roughly as many as SQLdb
Some helper data providers (CSV, SDF) are also provided.
[edit] Web development
There are some packages allowing web development with Lazarus, they're mostly based on fcl-web package provided by Free Pascal.
- fpWeb, officially supported package capable of developing CGI, FastCGI and Apache module based web application. It's distributed along with Lazarus, but not installed by default. The three kinds could share the same source code except for the main project file, which normally shouldn't be manually modified. Since 0.9.31 r31011, there's a new HTTP server application registered in the project menu. This adds support for embedding the webserver along with the application, making the entire web application standalone (just like WebDesign below).
- WebDesign, enhancing fpWeb with drag-n-drop web page design (previewing enabled with the help of XPCom library), embedded web server capability and jQuery wrappers. Maintained by Joost van der Luis (links from official website is outdated, updated version is available from fppkg repository).
- FreeSpider, a 3rd party package with smart module loading concept, but similar with fpWeb in other parts. Supports only CGI.
- ExtPascal, a ExtJS wrapper, generates HTML + ExtJS code dynamically upon page request. Promotes use of FastCGI (CGI -> FastCGI gateway provided). The wrapper is generated from ExtJS documentation with a self-made tool.
[edit] Differences from Delphi
While resembling Delphi in many ways, there are a few limitations regarding the performance and feature set.
- Under Windows executable, by default, file size is somewhat larger than the Delphi (6/7) equivalent because debug information is included within Lazarus executables, instead of as separate files like Delphi. However, the 0.9.30 release introduces an external debug symbols feature. Lazarus program file size can be significantly reduced by using an external symbols file (it can be set in Compiler options), and also by using Strip and UPX (although UPX has significant disadvantages). See FPC wiki: Size Matters
- Components for Delphi can be installed in Lazarus, but they must be converted, which can be complex. (2.4.x based 0.9.30 should make this easier)
- Missing important media libraries and widgets:
- Microsoft Office connectivity (popping up Excel with a simple table filled out works fine in 2.5.x trunk)
- Datasnap (not a publicly documented system, Borland proprietary enterprise functionality)
- Networking is mostly available, with a wealth of packages to choose from:
- 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 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
- Indy.
- No support to directly call .NET libraries. On the other hand, it is possible to call Object Pascal code from .NET software. [1]
- COM support was missing from the 2.0.x series, but was initially working in 2.2.0, and has matured 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.
[edit] 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.[2]
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.
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.
[edit] 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.
- Cartes du Ciel is a free planetarium program for Linux, Mac OS X and Windows. The software maps out and labels most of the constellations, planets, and objects you can see with a telescope. It's fully written in Lazarus/FPC and released under GPL.
- 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.
- 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.
- 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.
- HJSplit for Linux is a freeware file splitter. HJSplit supports file sizes of over 100 Gigabytes, Split, Join/Recombine, MD5 checksums, file-compare and "run without install". Runs on Linux. Created using Free Pascal and Lazarus.
- 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 used to force 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).
- Music Player by Freebyte.com is a freeware no-frills music player designed for Linux. It supports MP3, Wav, OGG and AIFF files. Created using Lazarus, Free Pascal and the Bass audio library.
- MyNotex is a free software for Gnu/Linux useful to take and to manage textual notes.
- 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.
- SimThyr is a continuous numerical simulation program for thyrotropic feedback control used for research and education (open source, cross platform for Mac OS X, Windows and Linux).
- Smith4VNA is a program for driving "miniVNA" Vector Analyzer via USB port. The results of measurements are both table and Smith Chart. Made with Lazarus/FPC, Linux + Windows32 platforms.
- 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.
- TreePad Lite for Linux is a freeware tree-based personal information manager for Linux. It has been designed to manage, store, edit, organize and browse any type of textual data, such as: notes, emails, articles, links, phone numbers, addresses, scraps pasted from the Web, etc. Created using Lazarus and Free Pascal.
- 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.
- Wireless Orders for Mini Bar Cafe Win32 TCP/IP Application Server, Win32 TCP/IP Client, WinCE TCP/IP Client.
[edit] 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.
- AnyDAC is a commercial high-speed data access сomponent library for Firebird, MySQL, SQL Server, Oracle, PostgreSQL, SQLite, InterBase, Access, DB2, SQL Anywhere, dbExpress, ODBC, that simplifies the task of building Lazarus / Free Pascal Compiler, Delphi and C++Builder database applications.
- Andorra 2D is a free OpenGL and DirectX plugin-based library that provides visual components and objects allowing description and rendering of 2D scenes, with support for rendering 3D models.
[edit] See also
[edit] References
[edit] External links
- 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
- IBX for Lazarus
- Lazarus tutorials from Sheepdog Guides... Several "Getting Started with Lazarus" lessons available, and links to annotated Delphi tutorials.
- Lazarus Support: Professional, partly commercial help resource on installation and usage of Lazarus
- Other Free Pascal Links
- Blaise Pascal Magazine. Journal on Development in Pascal with a focus on Lazarus and Free Pascal (english, dutch and portuguese)
|
|||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||