This is a page on the environments where DelphiLanguage operate. See the latter if you are interested in data types, RTTI, and programming patterns in Delphi. Borland Delphi is a development tool for MicrosoftWindows, based on Borland's ObjectPascal dialect of the PascalLanguage. Delphi 1.0 was released in 1995, and revolutionized windows development, introducing the paradigm of RAD (Rapid Application Development) to the windows world, but unlike other tools (such as Visual Basic), Delphi 1 through 7 have always used native-code optimizing compiler technology, and have offered fast execution, rapid development, small binary size, and the ability to create a standalone executable file that runs without any runtime dependencies. No dlls, no runtimes, unless you want them. Total control, total flexibility, and powerful object-oriented and component-oriented development. At mid05 there is a "technology preview" available for BorlandDelphi on the DotNetCompactFramework (MicrosoftDotNet for the PocketPc). See http://bdn.borland.com/article/0,1410,33271,00.html ---- Delphi is based on/uses PascalLanguage and ObjectPascal. Delphi is an IDE and Compiler for the Windows OS. (BorlandKylix is an IDE and Compiler for for Linux). Pascal is known to be easier to read than other languages; Not because it is verbose, rather because code is easier to read on the screen and on paper. Delphi uses := and = rather than just = alone, and BEGIN and END rather than { and } ) It also uses words like 'AND' and 'NOT', 'TRY', but does not go overboard, still using operators like < > + - etc. Delphi is a balance: not too verbose, verbose enough to read, but not too cryptic like other languages can be. (Even languages like SQL are "verbose" using words like SELECT - it makes code easier to read and share with developers, many find) Many C++ advocates will comment that Delphi is like VisualBasic, which is not true at all, and they have probably never used Delphi. It is very different from VB, somewhere along the lines of having the power of C++, but with components, and a rapid visual interface (not a clunky one like Visual C++ can be). You are never forced to use components or Visual interface, but that is available and that is what Delphi is mainly used for. This does not mean you can not create non-Visual applications. Delphi is component and plug-in oriented (both the applications Delphi compiles, and the Delphi IDE itself), which allows third parties to create an infinite number of add on's and components for Delphi. This encourages code reuse and efficiency. You are not forced to use components though, you can just use units which are like includes. Delphi can make applications by RAD (rapidly, using components), or it can make applications the hard way without ever touching "RAD" or "Visual Components" (even assembly can be embedded in code). Delphi creates native binaries, so what are compiled are fast applications, unlike say Java. Delphi had component based programming ever since Delphi 1, and just now C# is starting to implement a component based system umpteen years later. Borland employees were bribed and enticed to come over to Microsoft, and now Microsoft is starting to take all Delphi's ideas and put them into C#. Delphi is old and has experience, C# is new and unexperienced.. Delphi is obviously the better choice experience wise. People and companies have been creating components for Delphi for several years, not just the past few weeks. Delphi is event driven, and events are easily reusable, making use of object oriented programming. Components in Delphi can easily created on the fly, at run time, with very little code. Delphi uses "Units". Units are what make Delphi applications easy to expand, in addition to IDE components. Units are modules. Example: If you wanted to use regexes, you'd just add a regex unit to your application "uses" clause (like an include), and you'd have access to Regexes immediately. Delphi can make good use of DLL's and BPL's (run time libraries). BPL's are Borland's version of a DLL. You are not forced to use BPL's in fact many delphi developers use DLL's. DLL's are easy to write in Delphi. It helps to have a tutorial handy when making your first DLL, since the DLL wizard Delphi offers is not really a 'wizard' like you'd know it. The Delphi IDE allows you to create packages (DPK files), which encourage organization of projects and distribution. The Delphi IDE has something called a 'repository' which encourages code reuse and aides productivity. Similar forms or projects, and items within projects can be replicated like a template, but with obvious advantages over a template (visual replication and reuse). Delphi can compile all it's runtime libraries (units) inside the EXE so you do not have to distribute DLL's or BPL's, and go through "DLL hell". As an aside, most all Delphi applications are compatible with UPX compressor too. Delphi's IDE was created with Delphi. This recursively means that Delphi is by Delphi. *Are you sure this is right? I thought Delphi was written in ObjectPascal, but Delphi as a full-fledged visual environment couldn't have been written in itself. Please correct me if I'm wrong... ''Correcting - Delphi always had command-line compiler too. And yes, Delphi IDE is written in Delphi (no longer officialy called ObjectPascal by Borland).'' [The core compiler is not made with Delphi, but the IDE (delphi) itself is created in Delphi] Then how was Delphi 1 written? ''[If the compiler/linker was written in Pascal, I'd assume they did the initial builds of the compiler using Borland Pascal 7.0. At least until Delphi's compiler could build itself reliably. The more general question: "How do you bootstrap a compiler into a new environment" has a couple answers. The first option is to hand code (in assembly/machine code) the initial compiler. The second is to cross compile on another machine. --MikeSchaeffer'' * Maybe it was written in TurboPascal, their pre-cursor to Delphi? * The Delphi 5/6 compiler is actually built with Borland C/C++. Not sure about Delphi 1. Freepascal was bootstrapped once from TurboPascal, interestingly enough - and then it later compiled itself. How was GCC first built? How about the first assembler ever built? ''(OriginationOfTheFirstCompiler)'' At any rate, Borland gives the source code (called the "VCL", for Visual Component Library) for it's own environment, which makes it possible to trace through system calls just like your own procedures and functions. Very helpful for in-depth debugging. --JosephStyons Yes and another nice thing is you can go in and edit the ''shared source'' functions/procedures/objeccts from the VCL, and put it in your own units, fix rare bugs. If you did not want use the VCL at all, there are even replaceable "system" units for example. ---- ''DelphiLanguage is also known as ObjectPascal. Some prefer the term Modern Pascal - as the word delphi is a very product oriented term. FreePascal, for example does not require using a "delphi language", a modern pascal dialect.'' ---- '''Components''' Borland Delphi has the most powerful component technology, and largest third party component set, of any native-language-compiled compiler in the world. Component oriented development allows you to drop a component onto your visually designed forms or into data modules (non visual code modules), and just fill in some properties, and connect up some event handlers, simplifying development, and increasing productivity through real code reuse. Borland Delphi has a huge library of components that ship with delphi, known collectively as the VCL. There are also huge numbers (thousands) of third-party components, some are commercial (you buy them), some are free software (open source), some are inexpensive shareware, and some are 'freeware'. One of the largest open source collections of Delphi components is the JEDI VCL project at jvcl.sourceforge.net. One of the best places to search for Delphi components is the Delphi Super Page, at http://delphi.icm.edu.pl/ which is in Poland, mirrored by Borland (US) at http://community.borland.com/homepages/dsp/ ---- As of December 2004, the current version of Delphi is "2005" (aka Delphi 9), which supports in the same IDE (and even in the same project) Delphi for Windows, Delphi for .NET, and C#. BorlandKylix for Linux is at version 3.0. ---- ''I think this section, like most such lists on Wiki, is '''an incredibly bad idea'''. If one of these apps is significant in some way, then a mention of BorlandDelphi on the page describing that significance is sufficient to link it to this one. The key word here is '''significant'''. The Wiki cannot hope to be '''complete''' and should not attempt to do so. This list just looks like spam, to me.'' * Not intended that way. When I tell developers with whom I work about Delphi, and say it's suitable for serious development, I get asked, "can you give me some examples of RealWorld software?" If the discussion was about, say, Foxpro as a serious development environment, I might answer that same question with "SBT Accounting" or some of the other stuff out there. The idea is "Yes, Virginia, people do write RealWorld software in Delphi." I rather hope that the list will eventually be 5 or fewer well-recognized applications. I'm not particularly married to the list, so if it goes away no tears will be shed. '''Commercial (including shareware/freeware) software written in Delphi''': * ''The first few of these are all from F''''''reeByte Software'' * TreePad (several versions) * D''''''iskTective * F''''''reebyteZip * F''''''reebyteBackup * ''several applications at balticsolutions.com including'': * C''''''odePad * xmlHack * Crystal FTP * T''''''ext2Html * T.O.A.D (Tool for Oracle Application Developers) * Spybot --- Agreed re: the "Yes Virgina" comment above. Some other well-known apps developed in Delphi: * Skype's front-end / GUI app * FeedDemon * HomeSite ---- '''Links''' * http://www.borland.com * http://bdn.borland.com * http://www.codegear.com ---- See also BorlandCorp, BorlandKylix, ObjectPascal, FreePascal, WhatIsWrongWithTheGeneralVisualBasicApproach