Delphi is a software development environment for Microsoft Windows applications. It has always supported development of native Windows applications in the Delphi programming language, a further development of Object Pascal.
Delphi 2007, the eleventh version, also supports development in C++ for the 32 bit Microsoft Windows platform, and in Delphi and C# for the Microsoft .NET platform. Delphi 2009, the twelfth and latest version released in September 2008, adds support for Unicode to the VCL and IDE as well as new compiler features (Generics and Anonymous methods) and enhances the IDE with the first version of a resource manager and overhauled project manager as well as user definable build configurations.
Delphi is mainly used for the development of desktop and enterprise database applications, but it is a general-purpose software development tool suitable for most software projects. With several included libraries, web applications are possible as well.
Delphi is distributed in various versions with different features and prices: Personal (currently not available), Professional, Enterprise (formerly Client/Server) and Architect.
Borland Kylix is a now discontinued equivalent to Delphi for the Linux platform.
Distinguishing features
Delphi and Kylix use the Pascal-based Delphi programming language, and compile Delphi source code into native x86 code or managed .NET code. They include the VCL/CLX (Visual Component Library), support for COM independent interfaces with reference counted class implementations, and support for a large numberFact|date=May 2008 of third-party components. Interface implementations can be delegated to fields or properties of classes. Message handlers are implemented by tagging a method of a class with the integer constant of the message to handle. A strong emphasis is placed on database connectivity, and this made Delphi be often be mistaken for a database (only) front-end designer, given its rich database component set.
Advantages
Delphi is a strongly typed high-level programming language, originally based on the well designed language Pascal. Delphi in contrast to Pascal was not primarily designed for education purposes. In addition to high level language features it also supports low level programming by allowing assembler parts and the notation of direct CPU opcodes is also possible. The language's object orientation features only class- and interface-based polymorphism which makes programs written in Delphi more clearly laid out as programs written in some languages, allowing and using multiple inheritance. Metaclasses are the first class objects. Objects are actually references to the objects (like in Java), which Delphi implicitly dereferences, so there's usually no need to manually allocate memory for pointers to objects or similar techniques needed in some other languages. There are dedicated reference counted string types (as well as null-terminated strings).
Strings can be concatenated by using the '+' sign, rather than using functions. For those dedicated string types, no manual memory management is necessary, the memory manager handles this. The improved memory manager introduced with Borland Developer Studio 2006 now provides functions to track down memory leaks.
The language is suitable for Rapid Application Development (RAD) and comes with an integrated IDE. The Delphi products all ship with a large framework called VCL (Visual Component Library) including most of its source code. Third-party components (usually available with full source code) are available on the market as well as tools to enhance the IDE or for other Delphi related development tasks. The IDE includes a GUI for localization and translation of created programs which may be deployed to a translator at no additional cost. (Some developers prefer to use 3rd party products for this purpose as they often have more functionality.) The VCL framework maintains a high level of source compatibility between versions which means one can upgrade existing source code easily in most cases to a newer Delphi version. 3rd party libraries either need updates from the vendor or if source code is available a simple recompilation with the newer version may be sufficient. The VCL was a early adopter of Dependency injection or Inversion of Control. The VCL is a sophisticated "re-usable" component model, extensible by the developer. With class helpers one can introduce new functionality to core RTL and VCL classes without changing the original source code of the RTL or VCL.
The quick optimizing single pass compiler can compile to a single executable, thus simplifying distribution and eliminating DLL version issues. The creation of DLLs and ActiveX DLLs or COM Automation servers is also possible, and developers can even create Windows services using Delphi.
The Delphi IDEs since Delphi 2005 increasingly support advanced refactoring features such as Method Extraction, etc. [ cite web | url=http://delphi.about.com/od/productreviews/ss/delphi2006first_6.htm | title=A First Look at (Borland Developer Studio) Delphi 2006 - Refactoring in Delphi 2006 | publisher=About.com | accessdate=2007-12-19 ] and the possibility to create UML models from the source code or to modify the source through changes made in the model.
Delphi has a large community on Usenet and the web (e.g. news://newsgroups.codegear.com) which help solving problems of individual developpers and many Codegear employees actively participate in those communities. A voluntary team (TeamB) also helps out.
In former versions (prior to Delphi 2005) multiple platform native code from the same source code was possible via the usage of the CLX framework (a framework similar to VCL) and recompilation with Kylix, the Linux IDE from Borland. CLX is no longer supported since Kylix was abandoned.
Disadvantages
Delphi is, in itself, not a cross-platform tool. However, Delphi.NET compiles for the .NET Framework, which is designed to be cross-platform, with few modifications to the original pre-.NET Delphi source code. The Kylix product, which enabled porting Delphi applications to Linux, is no longer sold.
Each new release of Delphi attempts to keep as much backwards compatibility as possible. This allows users to build legacy code and not worrying about any broken interfaces or functionality. However, some developers feel that the attention to backwards compatibility has held back the evolution of the Delphi language, and has led to awkward or antiquated design decisions in the standard class libraries (VCL/RTL).
Currently 64-bit development is not available in Delphi, but is being planned for a future release codenamed "Commodore" in mid-2009. [ cite web | url=http://dn.codegear.com/article/36620 | title=Delphi and C++Builder Roadmap | publisher=CodeGear.com | accessdate=2008-09-29 ]
History
Turbo Pascal and Borland Pascal were low-cost 16-bit native code compilers. They went through a number of revisions over the years, and were used mainly to produce programs to run on text displays. When the use of graphical user interfaces became viable with Microsoft Windows 3.1, Delphi, using augmented Borland Pascal as its underlying language, was introduced. Delphi was one of the first of what came to be known as Rapid Application Development (RAD) tools when released in 1995 for the 16-bit Windows 3.1.
Delphi 2, released a year later, supported 32-bit Windows environments, and a variant using C++ as the underlying language, C++ Builder, followed a few years later.
The chief architect behind Delphi was Anders Hejlsberg, who had developed Turbo Pascal. He moved to Microsoft in 1996 to work on C#.
In 2001 a Linux version named Kylix was released. It was criticised as being of low quality and did not sell well, and was abandoned after version 3.
Attempts to support both Linux and Windows for cross-platform development were made, and a cross-platform version of the VCL known as CLX shipped in 2002 with the release of Delphi 6. The CLX technology effort has faded, and with the failure of Kylix, the CLX was abandoned too.
Since version 1.0, database development remains one of Delphi's strongest points. The Visual Component Library (VCL) contains a large library of database aware controls, and database access components. The Borland Database Engine was the original database connection layer, and was the only choice in the early versions of Delphi, although it is now seldom used, the latest version still ships with the BDE as an installable option.
Delphi 7, released in August 2002, became the standard version used by more Delphi developers than any other single version, and remains still actively used to this date. It added support for Windows XP Themes, and added more support for building Web applications. It was also the last version of Delphi which can be used without Activation. It has an optional registration feature, that can be ignored.Delphi 7 is one of the most appreciated IDEs created by Borland because its stability, speed and low hardware requirements. However, as in all Delphi versions there are a huge number of known bugs that Borland never fixed. The task of fixing those bugs was left to Delphi community (see projects as Kylix Unofficial Patch and the [http://www.tahionic.com/reviving-Delphi/index.html Reviving Delphi project] ).
Delphi 8, released December 2003, was a .NET-only release that allowed developers to compile Delphi Object Pascal code into .NET CIL. It was also significant in that it changed its IDE for the first time, from the multiple-floating-window-on-desktop style IDE to a look and feel similar to Microsoft's Visual Studio.NET. The new IDEs still have the "Classic Undocked" windows layout available as an option.
The next version, Delphi 2005 (Delphi 9), included the Win32 and .NET development in a single IDE, reiterating Borland's commitment to Win32 developers. Delphi 2005 includes design-time manipulation of live data from a database. It also includes an improved IDE and added a "for ... in" statement (like C#'s foreach) to the language. However, it was criticized by some for its bugs; both Delphi 8 and Delphi 2005 had stability problems when shipped, which were only partially resolved in service packs.
In late 2005 Delphi 2006 was released and combined development of C# and Delphi.NET, Delphi Win32 and C++ into a single IDE. It was much more stable than Delphi 8 or Delphi 2005 when shipped, and improved even more with the release of service packs and several hotfixes.
On February 8, 2006 Borland announced that it was looking for a buyer for its IDE and database line of products, which include Delphi, to concentrate on its ALM line. The news met with voluble optimism from the remaining Delphi users.
On September 6, 2006 The Developer Tools Group (the working name of the not yet spun off company) of Borland Software Corporation released single-language versions of Borland Developer Studio, bringing back the popular "Turbo" name. The Turbo product set includes Turbo Delphi for Win32, Turbo Delphi for .NET, Turbo C++, and Turbo C#. Each version is available in two editions: "Explorer"—a free downloadable version—and "Professional"—a lower-priced (US$899 for new user, US$399 for update) version which opens access to thousands of third-party components. Unlike earlier "Personal" editions of Delphi, new "Explorer" editions can be used for commercial development.
On November 14, 2006 Borland announced that rather than selling the development tools group it would spin it off into an independent subsidiary company named CodeGear. [cite web | author=David Intersimone | title=Press Release: Borland forming CodeGear to focus exclusively on developer productivity |url=http://bdn.borland.com/article/33819| accessdate=2006-11-28]
Delphi 2007, the first version by CodeGear, was released on March 16, 2007. The Win32 personality was released first, before the .NET personality of Delphi 2007 was released, as part of the CodeGear RAD Studio 2007 product. New features included support for MS Build and enhancements to the Visual Component Library for Windows Vista. CodeGear also introduced DBX4 as the next version of dbExpress. For the first time Delphi could be downloaded from the Internet and activated with a license key. Internationalized versions of Delphi 2007 shipped simultaneously in English, French, German and Japanese. RAD Studio 2007, which includes .NET and C++Builder development, was released on September 5, 2007.
The latest version, Delphi 2009 (code named Tiburón), adds many new features such as completely reworking the VCL and RTL for full Unicode support, and adds generics and anonymous methods (for both Win32 native and .Net development).
Borland sold CodeGear to Embarcadero Technologies in 2008. Embarcadero is retaining the CodeGear division created by Borland to identify its tool and database offerings, and Embarcadero has decided to identify its own database tools under the DatabaseGear moniker.
Name
Delphi was originally a confidential research project at Borland which evolved into a product that was to be called AppBuilder.
Shortly before the first release of Borland's AppBuilder, Novell AppBuilder was released, leaving Borland in need of a new name. After much struggle, the name Delphi prevailed. [cite web | author=David Intersimone | title=Borland History: Why the name "Delphi?" |url=http://bdn.borland.com/article/20396| accessdate=2006-11-28]
Developer Danny Thorpe chose the "Delphi" codename in reference to the Oracle at Delphi. One of the original goals of Delphi was to provide database connectivity to programmers as a key feature and a popular database package at the time was Oracle database; hence, "If you want to talk to [the] Oracle, go to Delphi". As development continued, the name grew on them and there was growing support within Borland for the name Delphi.
Later career of the creators
Anders Hejlsberg, the main architect of Delphi and Turbo Pascal, was hired by Microsoft in 1996, where he was a key participant in the creation of the Microsoft .NET Framework and led the design of both the Java dialect J++ and C#. Chuck Jazdzewski, who was chief scientist and architect of Borland's Delphi technology, left Borland and joined Microsoft in 2004 [ cite web | url=http://www.eweek.com/article2/0,1895,1485307,00.asp | title=Borland Brain Drain Continues | publisher=eWeek | date=2004-02-02 | accessdate=2007-12-19 ] . Danny Thorpe, Chief Scientist at that time, joined Google in 2005 and moved to Microsoft in 2006. [ cite web | url=http://blogs.msdn.com/dthorpe/archive/2006/04/14/576171.aspx | title=Into the Maelstrom | date=2006-04-14 | accessdate=2007-12-19 ]
Related software
Delphi for PHP
Delphi for PHP is an IDE for PHP. It provides true RAD functionality. It features Delphi or Visual Basic like form designer, integrated debugger (based on Apache web server). It also includes a VCL library ported to PHP. Support for Web 2.0 features like AJAX, makes it a unique IDE.
This product was announced on March 20 2007, and is based on Qadram Qstudio, which Codegear is now whole and sole owner of.
Products developed with Delphi
Among the many products developed with Delphi are:
* CodeGear products: CodeGear Delphi, CodeGear C++ Builder, Borland JBuilder versions 1 and 2
* Database management/development: MySQL Tools (Administrator, Query Browser), TOAD
* Engineering Software: Altium Designer/Protel (electronics design)
* Image viewers: FastStone Image Viewer, FuturixImager, Photofiltre
* Internet messaging: Skype (VoIP and IM), QIP and QIP Infium (IM's), The Bat! (e-mail client), PopTray (e-mail check tool), FeedDemon (RSS/Atom feed viewer), XanaNews (newsgroup reader), Xnews (newsgroup reader)
* Music production: FL Studio (formerly FruityLoops), Guitar Pro
* Software development: Dev-C++ (IDE), DUnit (unit testing), Game Maker (game creation) Help & Manual (help system authoring), Inno Setup (installer engine)
* Web authoring: Macromedia HomeSite (HTML editor), TopStyle Pro (CSS editor), Macromedia Captivate (screencast)
* Web browsers (MSIE shells): Avant Browser, Netcaptor
* Utilities: Spybot - Search & Destroy, Ad-Aware (anti-spyware), jv16 PowerTools, Total Commander (file manager), Copernic Desktop Search, PowerArchiver, MCubix (Data Mining), Beyond Compare(File comparing utility)]
* Accounting and Tax: Intuit's Lacerte Professional Tax Software, including all sub-components such as the QuickBooks/EasyACCT Trial Balance Utility, Document Management System, and Client Database Repair Utility.
* Remote Administration Tools , Sub7, NetBus and Theef 2.0.
* Free raster graphics editor for digital painting: Artweaver.
* Cyber control for cybercafes: AvilaLink.
Clones and alternatives
There are several compilers of the Object Pascal originally developed by Borland, and also products that supply an entire development framework as Delphi does.
Some of these can do things that Delphi cannot, such as supporting different operating systems, and allowing examination of the compiler source code. They are sometimes used to get the server parts of Delphi applications running on operating systems other than Microsoft Windows. Most had Linux support years before Kylix.
* [http://www.bloodshed.net/devpascal.html Bloodshed Dev-Pascal] - A very polished graphical 32-bit Windows editor (though not RAD) as a frontend for both GNU Pascal and Free Pascal.
*Lazarus [http://lazarus.freepascal.org] is a RAD IDE which uses the Free Pascal Compiler.
Notes
References
* Citation
last=McConnell|first=Steve|authorlink=Steve McConnell
title=Code Complete
year=1993
publisher=Microsoft Press
ID=ISBN 1-55615-484-4
External links
* [http://www.codegear.com/products/delphi/win32 CodeGear Delphi for Win32 Home Page]
* [http://www.turboexplorer.com/ Turbo Delphi 2006 - Download a free older version of Delphi]
Wikimedia Foundation.
2010.