Delphi programming language |
Delphi is a programming language and Integrated Development Environment (IDE). It is produced by Borland (known for a time as Inprise). The Delphi language, formerly known as Object Pascal (Pascal programming language 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).
=Development Environment=
=Programming language=
The main distinguishing features of Delphi and Kylix programming tool 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 object (computer science) as references/pointers *Built-in managed types like strings, dynamic arrays, variants, and interfaces *Properties as part of the language; that is, member getters and setters (aka accessors and mutators), which transparently information hiding 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 software component *Delegation of interface (computer science) 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 *Component object model independent interfaces with reference counting class implementations
=Pros and cons=
Delphi exhibits the following advantages: *Rapid Application Development (RAD). *Based on a well-designed language. *A large community on Usenet and the World Wide Web (e.g., news://forums.borland.com and [http://info.borland.com/newsgroups/ng_delphi.html Borland s web access to Delphi newsgroups]). *Can compile to a single executable, simplifying distribution and reducing dll versioning issues. *Many VCL and third-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.
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). *Persistent doubts about the long-term future of Borland have made its products seem too much of a risky proposition for many employers, leading to shrinkage of the job market for Delphi programmers.
Interesting facts:
=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 not 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. *[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. *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 ARM architecture (ARM) architectures are working and formally released but not 100% end-user ready yet.
=Documentation=
Delphi Developer documentation from Borland:
=External links=
*[http://delphi.about.com About Delphi Programming] *[http://www.adug.org.au Australian Delphi User Group] — informative email list *[http://www.borland.com/delphi/ Borland website - Delphi subsite] *[http://www.computer-books.us/delphi.php/ Computer-Books.us] A collection of Delphi books available for free download *[http://crossfpc.untergrund.net/ CrossFPC] integrates the Free Pascal compiler with multi-platform targets into the Windows Delphi IDE *[http://crosskylix.untergrund.net/ CrossKylix] integrates the Linux Kylix compiler into the Windows Delphi IDE *[http://www.delphi3000.com/ delphi3000.com] *[http://www.delphibasics.co.uk Delphi Basics] Tutorial and Reference information on the basics of Delphi. *[http://chuacw.ath.cx/chuacw/ Delphi Developers Asia and Singapore] *[http://www.delphigamedev.com delphigamedev.com] Many tutorials on game development with Delphi. *[http://www.oreilly.com/catalog/delphi/chapter/ch02.html The Delphi Object Model] *[http://www.delphipages.com/ Delphi Pages] *[http://delphi.icm.edu.pl/ Delphi Super Page] *[http://www.Delphi-Central.com/tutorials/ Delphi Tutorials on Delphi Central] *[http://www.drbob42.com/ Dr. Bob s Delphi, C++Builder and JBuilder Programming Clinic] *[http://www.freebyte.com/programming/delphi/ Freebyte s Guide to free Delphi programming] *[http://www.howtodothings.com/ViewSubCategory.aspxSubCategory=41 How to do things] — Lots of Delphi articles *[http://www.lazarus.freepascal.org/ Lazarus Compiler] Freepascal based, Cross platform, Free/Opensource, Delphi compatible compiler. *Open Directory Project: [http://www.dmoz.org/Computers/Programming/Languages/Delphi/ Delphi] *[http://www.delphi-jedi.org/ Project JEDI] *[http://www.torry.net/ Torry s Delphi Pages] *[http://www.delphigamer.com/ Pascal Game Development] *|
|