Borland Delphi
Encyclopedia
Embarcadero Delphi is an integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 for console
Console application
A console application is a computer program designed to be used via a text-only computer interface, such as a text terminal, the command line interface of some operating systems or the text-based interface included with most Graphical User Interface operating systems, such as the Win32 console in...

, desktop graphical
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

, web
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...

, and mobile applications.

Delphi's compilers use its own Object Pascal
Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...

 dialect of Pascal
Pascal
Pascal or PASCAL may refer to:-People:* Pascal , a French given name* Pascal , a French and Italian surname* Adam Pascal , American actor and singer, best known for his role of Roger Davis in the Broadway musical Rent* Blaise Pascal , French mathematician and philosopher* Cleo Paskal, environmental...

 and generate native code for 32- and 64-bit
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...

 Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 operating systems, as well as 32-bit Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 and iOS
IOS
iOS is an operating system for iPad, iPhone, iPod Touch, and Apple TV.IOS may also refer to:-Companies and organisations:* Illinois Ornithological Society, American state-based bird club...

. (iOS code generation is done with the Free Pascal
Free Pascal
Free Pascal Compiler is a free Pascal and Object Pascal compiler.In addition to its own Object Pascal dialect, Free Pascal supports, to varying degrees, the dialects of several other compilers, including those of Turbo Pascal, Delphi, and some historical Macintosh compilers...

 compiler.) support for the Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and Android operating system was planned by Embarcadero.

To create applications for managed code
Managed code
Managed code is a term coined by Microsoft to identify computer program code that requires and will only execute under the "management" of a Common Language Runtime virtual machine ....

 platforms, a similar (but not mutually compatible) alternative is Delphi Prism.

Delphi was originally developed by Borland
Borland
Borland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...

 as a rapid application development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 solution for Windows, and as the successor of Borland Pascal. Delphi and its C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 counterpart, C++Builder, shared many core components, notably the IDE and VCL
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

, but remained separate until the release of RAD Studio 2007. RAD Studio is a shared host for Delphi, C++Builder, and others.

In 2006, Borland’s developer tools section were transferred to a wholly owned subsidiary known as CodeGear
CodeGear
CodeGear is a wholly owned division of Embarcadero Technologies. CodeGear develops software development tools such as the Delphi IDE, the programming language Delphi, and the database server InterBase. Originally a division of Borland Software Corporation, it was launched on 14 November 2006...

, which was sold to Embarcadero
Embarcadero
Embarcadero may refer to:* Embarcadero , California** Embarcadero Circle, waterfront re-development project* Embarcadero , California** Embarcadero Center, office complex** Embarcadero Freeway, former California State Route 480...

 in 2008.

History

Delphi was originally one of many codenames of a pre-release development tool project at Borland
Borland
Borland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...

. Borland developer Danny Thorpe
Danny Thorpe
Danny Thorpe is Chief Software Architect at BiTKOO working on XACML based cloud scale distributed authorization and access control technologies....

 suggested the Delphi codename in reference to the Oracle at Delphi. One of the design goals of the product was to provide database connectivity to programmers as a key feature and a popular database package at the time was Oracle database
Oracle database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

; hence, "If you want to talk to [the] Oracle, go to Delphi".

As development continued towards the first release, the Delphi codename gained popularity among the development team and beta testing group. However, the Borland marketing leadership preferred a functional product name over an iconic name and made preparations to release the product under the name "Borland AppBuilder".

Shortly before the release of the Borland product, Novell AppBuilder was released, leaving Borland in need of a new product name. After much debate and many market research surveys, the Delphi codename became the Delphi product name.

The chief architect behind Delphi was Anders Hejlsberg
Anders Hejlsberg
Anders Hejlsberg is a prominent Danish software engineer who co-designed several popular and commercially successful programming languages and development tools...

, who had developed Turbo Pascal
Turbo Pascal
Turbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...

. He was persuaded to move to Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 in 1996.

Versions

Borland Delphi
Delphi (later known as Delphi 1) was released in 1995 for the 16-bit Windows 3.1, and was an early example of what came to be known as Rapid Application Development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 (RAD) tools. Delphi evolved from Borland's "Turbo Pascal for Windows", itself an evolution with Windows support from Borland's Turbo Pascal
Turbo Pascal
Turbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...

 and Borland Pascal, very fast 16-bit native-code MS-DOS compilers with their own sophisticated integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 (IDE) and graphical user interface toolkit for DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...

. Early Turbo Pascal (for MS-DOS) was written in a dialect of the Pascal programming language
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...

; in later versions support for objects
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

 was added, and it was named Object Pascal
Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...

. Delphi has always used Object Pascal, which continued to be developed, as its underlying procedural language.

Borland Delphi 2
Delphi 2, released in 1996, supported 32-bit Windows environments. Delphi 1 was bundled with it for creation of 16-bit Windows 3.1 applications.

Borland Delphi 3
Delphi 3, released in 1997, added COM
Component Object Model
Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...

 tooling, amongst other new features.

Borland Delphi 4
Borland Delphi 4 was released in 1998.

Borland Delphi 5
Borland Delphi 5 was released in 1999.

Kylix
In 2001 Borland released a Linux version of Delphi, named Kylix
Kylix programming tool
Kylix was a compiler and integrated development environment formerly sold by Borland but later discontinued. It is a Linux version of the Borland Delphi software development environment and C++ Builder, which runs under Microsoft Windows. Continuing Delphi's classical Greek theme, Kylix is the name...

. The IDE was dependent on the Wine
Wine (software)
Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...

 libraries rather than Linux's native system libraries (glibc) in order to get a product out quickly and relatively cheaply. The expense of developing a native glibc version of Kylix, combined with the lack of Linux adoption among programmers at the time, caused sales to go soft, and Kylix was abandoned after version 3. This was the first attempt to add Linux support in the Delphi product family.

Kylix used the new CLX cross-platform framework, instead of Delphi's VCL.

Borland Delphi 6
Attempts to support both Linux and Windows for cross-platform development were made, and a cross-platform alternative to the VCL
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

 known as CLX shipped in 2001 with the release of Delphi 6. This was the second attempt to add Linux support to the Delphi product family (see Kylix above).

Delphi 6 included the same CLX version (CLX 1) as the first version of Kylix. CLX 1 had been created before Delphi 6; its feature set was based on VCL 5 and lacked some features added to the VCL 6 shipped with Delphi 6.

Borland Delphi 7
Delphi 7, released in August 2002, became the standard version used by more Delphi developers than any other single version. It is one of the most successful IDEs created by Borland because of its stability, speed and low hardware requirements, and remained in active use as of 2011. Delphi 7 added support for Windows XP Themes, and added more support for building Web applications. It was the last version of Delphi which could be used without software activation.

Borland Delphi 8
Delphi 8, released December 2003, was a .NET-only release that compiled Delphi Object Pascal code into .NET CIL
Common Intermediate Language
Common Intermediate Language is the lowest-level human-readable programming language defined by the Common Language Infrastructure specification and is used by the .NET Framework and Mono...

; the IDE was rewritten for this purpose. The IDE changed to a docked interface similar to Microsoft's Visual Studio.NET. Delphi 8 was highly criticized for its low quality and its inability to create native applications (*.exe). The inability to generate native applications is only applicable to this release; the capability was restored in the next release (Delphi 2005).

Borland Delphi 2005
The next version, Delphi 2005 (Delphi 9, also Borland Developer Studio 3.0), 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
Foreach
For each is a computer language idiom for traversing items in a collection. Foreach is usually used in place of a standard for statement. Unlike other for loop constructs, however, foreach loops usually maintain no explicit counter: they essentially say "do this to everything in this set",...

) to the language. However, it was widely criticized for its bugs; both Delphi 8 and Delphi 2005 had stability problems when shipped, which were only partially resolved in service packs. The ability to compile native windows applications (*.exe) was added back into Delphi 2005 after being removed in Delphi 8.

Borland Delphi 2006
In late 2005 Delphi 2006 (Delphi 10, Borland Developer Studio 4.0) was released and combined development of C# and Delphi.NET, Delphi Win32 and C++ (Preview when it was shipped but got stable in Service Pack 1) 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. CLX support was dropped for new applications from this release onwards.

Delphi offered for sale
On February 8, 2006 Borland announced that it was looking for a buyer for its IDE and database line of products, including Delphi, to concentrate on its ALM
Application Lifecycle Management
Application Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance...

 line.

Turbo Delphi and C
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 components, bringing back the Turbo name. The Turbo product set included Turbo Delphi for Win32, Turbo Delphi for .NET, Turbo C++, and Turbo C#. There were two variants of each edition: Explorer, a free downloadable version, and the Professional version, priced at US$899 for new users and US$399 for updates, less than the full Borland Delphi, which opened access to thousands of third-party components. Unlike earlier Personal editions of Delphi, Explorer editions could be used for commercial development.

Delphi transferred to Codegear
On November 14, 2006 Borland transferred the development tools group to an independent subsidiary company named CodeGear
CodeGear
CodeGear is a wholly owned division of Embarcadero Technologies. CodeGear develops software development tools such as the Delphi IDE, the programming language Delphi, and the database server InterBase. Originally a division of Borland Software Corporation, it was launched on 14 November 2006...

, instead of selling it.

Codegear Delphi 2007
Delphi 2007 (Delphi 11), the first version by CodeGear, was released on March 16, 2007. The Win32 personality was released first, before the .NET personality of Delphi 2007 which is based on .NET Framework 2.0 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, but the C#Builder feature was dropped in this release as sales where not as high as expected due to Visual Studio also offering C#. The Windows Form designer for Delphi .NET was also dropped in D2007 because it is based upon part of the .NET framework API which had been changed so drastically by Microsoft in .NET 2.0 that updating the IDE would have been a major undertaking. Delphi 2007 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, a capability powered by the new InstallAware installation technology (itself authored in Delphi, and now shipping in a free, limited edition inside the box with Delphi). Internationalized versions of Delphi 2007 shipped simultaneously in English, French, German and Japanese. RAD Studio 2007 (code named Highlander), which includes .NET and C++Builder development, was released on September 5, 2007.

Delphi Prism
Delphi Prism was developed by RemObjects Software
RemObjects Software
RemObjects Software is an American software company founded in 2002 by Alessandro Federici and Marc Hoffman. It develops and offers tools and libraries for software developers on a variety of development platforms, including Embarcadero Delphi, Microsoft .NET, Mono, and Apple's...

 and distributed by Embarcadero from 2008 to replace Delphi.NET. It is a combination of RemObjects's mostly Delphi-compatible .NET compiler (without RTL or VCL
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

), a version of the Microsoft Visual Studio Shell without C# or VB support, and some Embarcadero technologies such as dbExpress. Prism is cross-platform capable insofar as it supports the Mono .NET libraries. Prism is a separate product line with new releases; Embarcadero Delphi Prism XE2 was released at about the same time as Delphi XE2.

Sale to Embarcadero
Borland sold CodeGear to Embarcadero Technologies
Embarcadero Technologies
Embarcadero Technologies is an American computer software company that develops, manufactures, licenses, and supports a wide range of products and services related to software through its various dynamic product divisions...

 in 2008. Embarcadero retained the CodeGear division created by Borland to identify its tool and database offerings, but identified its own database tools under the DatabaseGear name.

Embarcadero Delphi 2009
Delphi 2009 (Delphi 12, code named Tiburón), added many new features such as completely reworking the VCL
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

 and RTL for full Unicode support, and added generics and anonymous methods for Win32 native development. Support for .NET development was dropped from the mainstream Delphi IDE starting with this version, and was catered for by the new Delphi Prism.

Embarcadero Delphi 2010
Delphi 2010 (code-named Weaver, aka Delphi 14; there was no version 13), was released on August 25, 2009 and is the second Unicode release of Delphi. It includes a new compiler run-time type information
Run-time type information
In programming, RTTI refers to a C++ system that makes information about an object's data type available at runtime. Run-time type information can apply to simple data types, such as integers and characters, or to generic objects...

 (RTTI) system, support for Windows 7 direct 2D, touch screen and gestures, a source code formatter, debugger visualizers and the option to also have the old style component palette in the IDE. The new RTTI system makes larger executables than previous versions.

Embarcadero Delphi XE
Delphi XE (aka Delphi 2011, code named Fulcrum), was released on August 30, 2010.

Delphi Starter Edition
On January 27, 2011 Embarcadero announced the availability of a new Starter Edition which gives independent developers, students and micro businesses a slightly reduced feature set for a price less than a quarter of that of the next-cheapest version..

Embarcadero Delphi XE2
On September 1, 2011 Embarcadero released RAD Studio XE2 which included Delphi XE2, C++Builder, Prism XE2 and RadPHP XE2.

Delphi XE2 natively supports 64-bit Windows (except the starter edition), in addition to the long-supported 32-bit versions, with some backwards compatibility. 64-bit applications can be compiled, but not tested or run, on the 32-bit platform. Delphi XE2 is supplied with both the VCL, and an alternative library called FireMonkey that supports Windows, Apple Mac OS X and the Apple iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...

, iPod Touch
IPod Touch
The iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line...

 and iPad
IPad
The iPad is a line of tablet computers designed, developed and marketed by Apple Inc., primarily as a platform for audio-visual media including books, periodicals, movies, music, games, and web content. The iPad was introduced on January 27, 2010 by Apple's then-CEO Steve Jobs. Its size and...

 portable devices. FireMonkey and VCL are not compatible; one or the other must be used, and older VCL applications cannot use Firemonkey unless user interfaces are recreated with FireMonkey forms
Form (programming)
In component-based programming , a form is an easy way to create a GUI window. A form contains components and controls, which are a high-level representation of standard GUI widgets; it's easier to manipulate the high-level wrappers than to deal with the underlying API.At design time, visual...

 and controls. Third parties have published information on how to use Firemonkey forms in VCL software, to facilitate gradual migration, but even then VCL and Firemonkey controls cannot be used on the same form. Embarcadero say that Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 support "is being considered for the roadmap", as is Android, and that they are "committed to ... FireMonkey. ... expect regular and frequent updates to FireMonkey".

Future plans

Embarcadero makes available a "roadmap" of future plans. a roadmap for RAD Studio, Delphi and C++Builder, undated but with copyright date 2010, was available.

Editions and prices

Each version has been released in different editions which add functionality and price to the most basic one. As an indication of editions and prices, Delphi XE2 was sold directly by Embarcadero in 2011 in editions called Starter (US$199), Professional ($899), Enterprise ($1,999), Ultimate ($2,999), and Architect ($3,499). Prices vary from different suppliers, with different incentives, and in different regions, and Delphi is also included in the RAD Studio bundles. Embarcadero publishes feature matrices summarising the differences in functionality.

Distinguishing features

Delphi supported rapid application development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 by introducing features such as application framework
Application framework
In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of an application for a specific development environment ....

 and visual window layout designer that reduced application prototyping times.

Delphi supports rapid native cross-compilation.

Delphi uses the Pascal-based programming language called Object Pascal
Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...

, and compiles
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 Delphi source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 into native x86 code. They include the VCL
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

 (Visual Component Library), support for COM
Component Object Model
Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...

 independent interfaces with reference counted
Reference counting
In computer science, reference counting is a technique of storing the number of references, pointers, or handles to a resource such as an object, block of memory, disk space or other resource...

 class implementations, and support for a large number of third-party components. Interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...

 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.

Database connectivity is supported, and Delphi supplies several database components. The Visual Component Library (VCL) includes many database-aware and database access components.

Later versions have included upgraded and enhanced Runtime Library routines provided by the community group FastCode
FastCode
FastCode is an open source programming project aimed at providing enhanced runtime library routines for Embarcadero Delphi and C++ Builder. Since it was started in 2003 by Dennis Kjaer Christensen, it has contributed highly optimised functionality to the Delphi RTL...

, established in 2003.

Advantages

Delphi is a strongly typed
Strongly-typed programming language
In computer science and computer programming, a type system is said to feature strong typing when it specifies one or more restrictions on how operations involving values of different data types can be intermixed...

 high-level programming language
High-level programming language
A high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be from the specification of the program, making the process of...

, intended to be easy to use and originally based on the earlier Object Pascal language. Pascal was originally developed as a teaching language, without low-level programming facilities or access to hardware and with no emphasis on efficiency; Turbo Pascal and its descendants, including Delphi, are designed for efficiency and support access to hardware and low level programming, with the facility to incorporate code written in assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

 and other languages. Delphi's object orientation
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 features only class- and interface-based polymorphism
Polymorphism in object-oriented programming
Subtype polymorphism, almost universally called just polymorphism in the context of object-oriented programming, is the ability to create a variable, a function, or an object that has more than one form. The word derives from the Greek "πολυμορφισμός" meaning "having multiple forms"...

. Metaclasses are first class objects. Objects are actually references to the objects (as in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

) which Delphi implicitly dereferences, so there is usually no need to manually allocate memory for pointers to objects or use similar techniques needed in some other languages. There are dedicated reference-counted string types and also null-terminated strings).

Strings can be concatenated by using the '+' operator, rather than using functions. For dedicated string types the programmer does not have to handle memory management as Delphi's memory manager handles this. The improved memory manager introduced with Borland Developer Studio 2006 provides functions to locate memory leak
Memory leak
A memory leak, in computer science , occurs when a computer program consumes memory but is unable to release it back to the operating system. In object-oriented programming, a memory leak happens when an object is stored in memory but cannot be accessed by the running code...

s.

The language is suitable for Rapid Application Development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 (RAD) and Delphi includes an integrated IDE. The Delphi products all ship with a large framework called the Visual Component Library
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

, usually referred to by its initials VCL, including most of its source code. Third-party components (sometimes with full source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

) and tools to enhance the IDE or for other Delphi related development tasks are available free of charge or for purchase. 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 third-party products with more functionality for this purpose. The VCL framework maintains a high level of source compatibility between versions which simplifies adapting existing source code to a newer Delphi version. Third-party libraries may need updates from the vendor but, if source code is supplied, recompilation with the newer version may be sufficient. The VCL was an early adopter of Dependency injection
Dependency injection
Dependency injection is a design pattern in object-oriented computer programming whose purpose is to improve testability of, and simplify deployment of components in very large software systems....

 or Inversion of Control
Inversion of Control
In software engineering, Inversion of Control is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming....

; it uses a sophisticated "re-usable" component model, extensible by the developer. With class helpers new functionality can be introduced 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
Executable
In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU...

, simplifying distribution and eliminating DLL
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...

 version issues. Delphi can also generate standard DLLs, ActiveX
ActiveX
ActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....

 DLLs, COM
Component Object Model
Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...

 automation servers and Windows services.

The Delphi IDEs since Delphi 2005 increasingly support refactoring
Refactoring
Code refactoring is "disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior", undertaken in order to improve some of the nonfunctional attributes of the software....

 features such as method extraction and the possibility to create UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 models from the source code or to modify the source through changes made in the model.

Delphi has large communities on Usenet
Usenet
Usenet is a worldwide distributed Internet discussion system. It developed from the general purpose UUCP architecture of the same name.Duke University graduate students Tom Truscott and Jim Ellis conceived the idea in 1979 and it was established in 1980...

 and the web
World Wide Web
The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...

 (e.g. news://newsgroups.codegear.com) which help solving problems of individual developers. Many Codegear employees actively participate in those communities. Voluntary team TeamB also helps out.

Backward compatibility

Each new release of Delphi attempts to be as compatible as possible with earlier versions, so that already-developed software and libraries can be retained. Incompatibility necessarily arises as new functionality is added, e.g., with support by Firemonkey of other platforms than Windows.

Limitations

Platform availability
Delphi XE2 can develop applications for 32- and 64-bit Microsoft Windows, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 and iOS
IOS
iOS is an operating system for iPad, iPhone, iPod Touch, and Apple TV.IOS may also refer to:-Companies and organisations:* Illinois Ornithological Society, American state-based bird club...

. Embarcadero has said they plan to support Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and Android.

Backward compatibility
Each new release of Delphi attempts to keep as much backwards compatibility as possible to allow developers to continue to use existing code without incompatibility of interfaces or functionality. The design of the standard class libraries (VCL/RTL) had become somewhat dated and restrictive; Embarcadero released in 2011 as part of Delphi XE2 a new compiler and cross-platform VCL replacement called FireMonkey, based on Direct3D and OpenGL, which runs on other platforms in addition to Windows, supporting their features, but is not backwards-compatible with VCL applications.

RAD Studio

Embarcadero sells RAD Studio, a suite of development tools which consists of Delphi, Delphi Prism and C++Builder. Like Delphi, there are different editions of RAD Studio: Professional edition, Enterprise edition and Architect edition.

RadPHP (formerly Delphi for PHP)

RadPHP is an IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 for PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

 that provides true RAD functionality. It has a form designer similar to that of Delphi or Visual Basic
Visual Basic
Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...

, and an integrated debugger based on the Apache
Apache HTTP Server
The Apache HTTP Server, commonly referred to as Apache , is web server software notable for playing a key role in the initial growth of the World Wide Web. In 2009 it became the first web server software to surpass the 100 million website milestone...

 web server. It also includes a VCL
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

 library ported to PHP. Unlike other IDEs it supports Web 2.0 features such as AJAX
Ajax
- Mythology :* Ajax , son of Telamon, ruler of Salamis and a hero in the Trojan War, also known as "Ajax the Great"* Ajax the Lesser, son of Oileus, ruler of Locris and the leader of the Locrian contingent during the Trojan War.- People :...

.

Delphi for PHP was announced on March 20, 2007, renamed on October 2010 to RadPHP, and is based on Qadram Q studio. Embarcadero acquired Qadram in January 2011.

Delphi Prism

Delphi Prism is a product from Embarcadero based on the Oxygene programming language (previously known as Chrome). Delphi Prism is the replacement for Delphi.NET, which was discontinued. The Prism product runs inside the Visual Studio IDE and is part of the "RAD Studio" IDE environment.

Third-party software

  • Free Pascal
    Free Pascal
    Free Pascal Compiler is a free Pascal and Object Pascal compiler.In addition to its own Object Pascal dialect, Free Pascal supports, to varying degrees, the dialects of several other compilers, including those of Turbo Pascal, Delphi, and some historical Macintosh compilers...

     - an open-source Pascal compiler which partially supports Delphi code and works on many operating systems.
  • Lazarus
    Lazarus (software)
    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,...

     - an RAD
    Rapid application development
    Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

     IDE
    Integrated development environment
    An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

     developed for and supported by the Free Pascal compiler that runs on Windows, Linux and Mac OS X. A free alternative which works very like Delphi, and is cross platform.
  • Project Jedi
    Project Jedi
    Project JEDI is an Open Source project created in 1997, which started with the goal to translate C headers to Object Pascal and share the results with fellow Delphi programmers. The name decided on was Project JEDI...

     (Joint Endeavor of Delphi Innovators) - A collaborative open-source effort by the Delphi developer community to provide translations of Windows API
    Windows API
    The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name "Windows API" more accurately reflects its roots in 16-bit Windows and its support on...

     interfaces, additional components and controls, and algorithms and data structures.
  • FastCode
    FastCode
    FastCode is an open source programming project aimed at providing enhanced runtime library routines for Embarcadero Delphi and C++ Builder. Since it was started in 2003 by Dennis Kjaer Christensen, it has contributed highly optimised functionality to the Delphi RTL...

     - Enhanced runtime libraries
    Runtime library
    In computer programming, a runtime library is a special program library used by a compiler, to implement functions built into a programming language, during the execution of a computer program...

     and memory manager.
  • Teechart
    Teechart
    TeeChart is a Charting Library for programmers developed and managed by Steema Software of Girona, Catalonia.It is available as commercial and non-commercial software...

     - Charting library.
  • OpenWire (library)
    OpenWire (library)
    The OpenWire is an open source Dataflow programming VCL and FireMonkey library that extends the functionality of Delphi, C++ Builder and Lazarus by providing pin type component properties. The properties can be connected to each other...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK