Delphi programming language

From Academic Kids

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 Object Pascal (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).

Contents

Development environment

Delphi's 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 for 16-bit Windows. 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 became available. With one new major release every year, in 2002 support for Linux (through Kylix and the CLX component library) was added and in 2003 .NET became supported in Delphi.Net (Delphi 8).

The chief architect behind Delphi, and its predecessor Turbo Pascal, was Anders Hejlsberg until he left for Microsoft in 1996 where he is the chief designer of C# and a key participant in the creation of the Microsoft .NET Framework. Full support for .NET was added in Delphi 8 (released December 2003). Delphi 8, which compiles Object Pascal code for the .NET framework, changed its IDE for the first time since its conception to a look and feel similar to Microsoft's Visual Studio for .NET.

Delphi 2005 (brand name for Delphi 9) provides both 32-bit Windows and .NET code generation, and has as its most notable new feature design-time manipulation of live data from a database. It also includes a significantly improved IDE.

Delphi's proponents claim that having the Delphi Language, IDE and component library (VCL/CLX) supplied by a single vendor allows for a more internally consistent and recognizable package.

The Delphi product is distributed as various suites: Personal, Professional, Enterprise (formerly Client/Server) and Architect.

Programming language

The main distinguishing features of Delphi and Kylix from other IDEs are the Delphi language, the VCL/CLX (Visual Component Library), strong emphasis on database connectivity, and a large number of third party components.

Notable aspects of the Delphi language include:

  • Transparent handling of objects as references/pointers
  • Properties as part of the language; that is, member getters and setters (aka accessors and mutators), which transparently encapsulate the access to member fields
  • Index Properties and Default Properties to provide access to collections
  • 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
  • Implementation of Windows message handlers by tagging a method of a class with the number/name of the windows message to handle
  • COM independent interfaces with reference counted class implementations

Pros and cons

Delphi exhibits the following advantages:

  • Based on a well-designed language.
  • A large community on Usenet and the web (e.g., news://forums.borland.com and Borland's web access to Delphi newsgroups (http://info.borland.com/newsgroups/ng_delphi.html)).
  • Can compile to a single executable, simplifying distribution and reducing dll versioning issues.
  • Many VCL and 3rd-party components (usually available with full source code) and tools (documentation, debug tools, etc.).
  • Quick optimizing compiler and ability to use assembler code.
  • Multiple platform native code from the same source code.
  • High level of source compatibility between versions.
  • CrossKylix (http://crosskylix.untergrund.net/) - a third-party toolkit which allows you to compile native Linux applications from inside the Windows Delphi IDE, hence easily enabling cross-platform development and deployment.

The following are disadvantages:

  • Partial single vendor lock-in (Borland alone can set the language standard, the compatibles have to follow).
  • Limited cross-platform capability for Delphi itself. Compatibles provide more architecture/OS combinations.
  • Access to platform and third party libraries require header files to be translated to Pascal.
  • Documentation of platforms and techniques hard to find in Pascal language (e.g., access to COM and WIN32).

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 Delphi code running in ways not possible with Delphi (such as supporting different operating systems, free distribution and educational use, and allowing examination of the compiler source) and allow for some vendor independence. These are generally used educationally and to get the server parts of Delphi apps running on non-mainstream operating systems; most had Linux support years before Kylix.

  • Bloodshed Dev-Pascal (http://www.bloodshed.net/devpascal.html) A very polished graphical 32-bit Windows editor (though not RAD) as a frontend for both GNU Pascal and Free Pascal.
  • Free Pascal A commandline compiler that aims source compatibility with the core feature set of both the Turbo Pascal and Delphi dialects. The current version is 2.0(.0), which are highly Delphi6/7 compatible. Operates on most x86 operating systems. Supports Linux, Mac OS and Mac OS X (including an Xcode implementation) on PowerPC family, and Linux on AMD64. SPARC and Acorn RISC Machine (ARM) architectures are working and formally released but not 100% end-user ready yet.
  • GNU Pascal (http://www.gnu-pascal.de) (Separately distributed part of the GNU Compiler Collection) While formally not aimed at the Borland dialects of Pascal, it does contain a Borland Pascal compatibility mode, and is very 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.
  • InnerFuse (http://www.carlo-kok.com/) is a Delphi interpreter for embedding in applications. It is rumoured to work with several of the alternatives too.
  • Lazarus (http://lazarus.freepascal.org) 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 (http://sibyl.netlabs.org) is another effort to build a RAD on top of Free Pascal. However it is geared towards OS/2, and still in initial stages.
  • 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. Nevertheless, of the free alternatives, it is still the one with the best polished IDE and debugger though Free Pascal is getting nearer and nearer.
  • WDOSX (http://michael.tippach.bei.t-online.de/wdosx/) is a Win32 API-emulating DOS extender that can be used to get Delphi console applications running on plain DOS.
  • Winsoft Pocket Studio (http://www.winsoft.sk/pstudio.htm) aims to compile stripped down Delphi code to PDAs.

External links

Template:Wikicities

Template:Major programming languages smallar:دلفي bg:Delphi cs:Object Pascal da:Delphi de:Object Pascal es:Delphi fi:Delphi fr:Delphi it:Delphi ja:Delphi nl:Ontwikkelomgeving Delphi pl:Delphi ro:Delphi (limbaj de programare) ru:Object Pascal sv:Delphi (programsprk) sk:Delphi (programovac jazyk) zh:Delphi编程语言

Navigation

Academic Kids Menu

  • Art and Cultures
    • Art (http://www.academickids.com/encyclopedia/index.php/Art)
    • Architecture (http://www.academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (http://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (http://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools