Delphi is a programming language and software development environment. It is produced by Borland (known for a time as Inprise). The Delphi language, formerly known as the Object Pascal Language (the Pascal with object-oriented extensions) originally targeted only Microsoft Windows, but now builds native applications for Linux and the Microsoft .NET Framework as well (see below).
Its most popular use is the development of desktop and enterprise database applications, but as a general purpose development tool it is capable of and used for most types of development projects. It was one of the first of what came to be known as RAD tools, for Rapid Application Development, when released in 1995. Delphi 2, released a year later, supported 32-bit Windows environments, and a C++ version, C++Builder, followed a few years after. In 2001 a Linux version known as Kylix (a classical Greek urn) became available. With one new major release every year, in 2002, the product became known as Delphi 7 Studio, the language became known officially as Delphi instead of Object Pascal, and support for Linux (through Kylix) and .NET (through a preview compiler) were added. Full support for .NET is scheduled for the forthcoming Delphi 8.
The main components of Delphi and Kylix are the Delphi language (formally known as the Object Pascal language), the VCL/CLX (Visual Component Library), and strong database connectivity, combined with a powerful IDE (Integrated Development Environment) and additional support tools.
The remarkable features of the Delphi language include:
- Transparent handling of objects as references/pointers
- Properties as part of the language, that is member getters and setters which transparently encapsulate the access to member fields
- Index Properties and Default Properties which provide access to collections in a comfortable and transparent way
- Delegates aka type safe method pointers which are used to wire the events triggered by the components
- Delegation of interface implementation to a field or property of the class
- Easy implementation of Windows message handlers by tagging a method of a class with the number/name of the windows message to handle
The Delphi product is distributed as various suites, each offering more functionality over the other:
- A very informative and helpful community with an excellent noise/informations ratio at news://forums.borland.com or http://info.borland.com/newsgroups/ng_delphi.html
- Can compile to a single executable, simplifying distribution and reducing dll versioning issues
- VCL and 3rd-party components are usually available with full sourcecode
- Powerful and quick optimizing compiler
- Multiple platform native code from the same source code
- Support for latest technology and standards
Clones and alternatives
While not being a direct substitute for the entire product Delphi itself, there are a number of efforts that strive to be more or less language compatible and take Delphi code to places where Delphi and Kylix itself can't reach.
These can get you the extra mile to get your costly Delphi code running in ways not possible with Delphi (think Operating Systems, free distribution and educational use, examining compiler source etc). These seem to be used the most educationally and to get the server parts of Delphi apps running on non mainstream operating systems (with most having Linux support predating Kylix for years)
- Free Pascal A commandline compiler substitute that aims source compability with the core feature set of both the Turbo Pascal and Delphi dialects. Features of Delphi versions beyond 4 are implemented only in the 1.9.x beta series (which will become the 2.0.x series in time). The beta's are very usable though. Operates on most x86 operating systems including Win32, Dos (with extender), Linux, FreeBSD, NetBSD and OS/2 and Novell Netware. Supports some other OSes on m68k and PowerPC family, the status of which is still changing fast so not reproduced here. Work on SPARC and Acorn RISC Machine (ARM) has started.
- GNU Pascal (Separately distributed part of the GNU Compiler Collection) While formally not aimed at the Borland dialects of Pascal, it does contain a Borland Pascal compability mode, and is slowly absorbing Delphi language features, though not yet directly suitable for recompiling large bodies of Delphi code. It is the most prolific compiler in terms of Operating Systems and processors though, and therefore deserves mentioning as a last resort.
- There is a tool called Pocket Studio which aims to compile stripped down Delphi code to PDA's. The website was down at the time of writing this article, but I heard good comments about it.
- Virtual Pascal is a x86 32-bit Turbo Pascal and Delphi compatible compiler mainly aimed at OS/2 and Windows, though it developed a DOS+Extender and an experimental Linux cross-compiler too. The compiler is stuck on the level of about Delphi V2, and the site hasn't changed significantly in two years though, but of the free alternatives, it is still the one with the best polished IDE and debugger though Free Pascal is getting nearer and nearer.
- BloodShed distributes a very polished graphical Win32 editor (though not RAD) as a frontend for both GNU Pascal and Free Pascal.
- Lazarus is an effort to build a RAD on top of Free Pascal. The internal classes hierarchy can base itself on several graphical toolkits. The main toolkits are GTK1 and Win32, and GTK2 has already come a long way. Occasionally people want QT and wxWindows, but nobody seems interested enough to implement it.
- OpenSibyl is another effort to build a RAD on top of Free Pascal. However it is geared towards OS/2, and still in initial stages.
- FPC on Mac Status page for FPC to Classic Mac OS ports. (Mac OS X port is done by the FPC Unix crew)
- InnerFuse is a Delphi interpreter for embedding in applications. It is rumoured to work with several of the alternatives too.
- WDOSX is a win32 api emulating DOS extender that can be used to get Delphi console applications running on plain DOS.\n