Rozmiar: 8938 bajtów


Delphi programming language



Delphi is a programming language and software Software engineering environment. 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== Delphi's most popular use is the development of desktop and Business 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 plus plus version, C plus plus 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 Sharp programming language 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, Integrated development environment and component library (Visual component library/Component Library for Cross Platform) 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 object (computer science) as references/pointers *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: *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 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. * [http://crosskylix.untergrund.net/ CrossKylix] - 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. *[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. *[http://www.gnu-pascal.de GNU Pascal] (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. *[http://www.carlo-kok.com/ InnerFuse] is a Delphi interpreter for embedding in applications. It is rumoured to work with several of the alternatives too. *[http://lazarus.freepascal.org Lazarus] 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. *[http://sibyl.netlabs.org OpenSibyl] 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. *[http://michael.tippach.bei.t-online.de/wdosx/ WDOSX] is a Windows API-emulating DOS extender that can be used to get Delphi console applications running on plain DOS. *[http://www.winsoft.sk/pstudio.htm Winsoft Pocket Studio] aims to compile stripped down Delphi code to PDAs. ==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.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.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.howtodothings.com/ViewSubCategory.aspx?SubCategory=41 How to do things] — Lots of Delphi articles *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] Borland software Pascal dialects Imperative programming languages Procedural programming languages Algol programming language family .NET programming languages Object-oriented programming languages Integrated development environments

Delphi programming language



Afaik Delphi isn't even a programming language, it's the name of a Borland programming tool in which you use Object Pascal to program. In that case, the article title would be incorrect. And further... Why am I getting the impression that this text was ripped out of some advertizement broschure for Deplhi? :Untill last year the langauge was called Object Pascal and the IDE / product was called Delphi. Since Borland was making significant improvements on the langauge, yet again, to support .NET as well as other changes the changed the name to the Delphi langauge. This should probably be two different articles, one on Delphi Studio (the new name of the IDE product) and the other on the Delphi programming langauge. I didn't write the original article (I don't think), but AFAIK this is not based even loosly on any Borland adverts. I think that if the article were split in two then it would read better since one would be about a product while the other would focus on the langauge itself. The "features" and "selling points" could be isolated to the product article while the technical aspects could be in the language one. -- User:Jim McKeeth :In that case, shouldn't "formally known as Object Pascal" be "formerly known as Object Pascal"? By the way, many of the (POV) "remarkable features" of Delphi sound like features that appeared in other languages long ago, in one form or another. (e.g. transparent getters/setters were in CLU 10 years ago). (With some of the features, I can't tell exactly what they mean; e.g. how does a "type safe method pointer" differ from an ordinary type-checked function or method pointer?) —User:Stevenj ::You are correct on the formerly part. I fixed that. Feel free to NPOV the article any if you feel it is too POV. I don't have much emotional attachment to it. -- User:Jim McKeeth 01:00, 7 Oct 2003 (UTC) :::I made an attempt to NPOV it. What it could really use is a list of disadvantages. BTW, I removed "Support for latest technology and standards" from the advantages list, because it seems like a bit of an empty claim. Which new technologies and standards are supported? -- User:ComaVN 21:37, 16 Mar 2004 (UTC) :AFAIK the name change Object Pascal -> Delphi already predates the .NET extensions in D7. It's a sideeffect of a renewed focus (at least on PR level) on Delphi after the namechange from Inprise back to Borland. User:marcov. ::Slight correction: The name change was regarding the company's name, changing from the original Borland to Inprise, and then subsequently back to Borland. -- User:Stevietheman 19:03, 16 Jul 2004 (UTC) :Delphi's/Object Pascal's main adversary is C/C++. Most claims (the type safe proc-pointer) must be seen in that light. Personally, I think the outdated library design (even though the VCL is quite cool) are a bigger problem than the language. E.g. the possibilties of interfaces were never exploited in newer versions of the VCL User:marcov :I also don't like the .NET angle that has been added. Delphi and Delphi.NET are quite different, since only basic GUI and db operation can be .NETized easily (due to pointer and win32 use), and even for that, the VCL.NET framework is probably only temporarily supported for legacy reasons. All normal pascal code must be rewritten, and 3rd party components structurally updated for .NET. Maybe a split in a Delphi and Delphi.NET page (that reference eachother) is wise. User:marcov :Wasn't there also an Apple dialect of Pascal called Object Pascal, with different extensions than Borland's version? Does anyone know enough about this to comment? Yes, it was even formalised into an Object Pascal standards draft. Borland based on this draft for Delphi (though it kept _some_ compability with the old TP objects too). So Delphi is more or less a Borlandified version of that Apple dialect (I have Think Pascal manuals, and the dialect for objects is the same) User:marcov What does it mean when it says "Not a top-tier language" in the disavantages? That should be explicit in the article. The first thing I thought was that it wasn't suitable for b2b, but the enterprise and architect versions are mostly directed twards that. If it means the language is not a formal standard, the line saying "Partial vendor lock-in" is enough to describe that. In the list of cons, the article says "Access to platform and third party libraries require header files to be translated to Pascal." Personally, I fail to see how this is a disadvantage. If I write a useful library in Pascal, then C programmers would have to create headers for it, so why isn't that in a list of C/C++ disadvantages? I just think that there is probably a better way to say this without saying what amounts to, "Delphi sucks because it's not compatible with C" (which IMO, is the best feature any programming language can have). I hope you guys, who are experienced with editing Wikipedia, can come up with an appropriate wording. "Delphi 2005 (brand name for Delphi 9) provides both win32 and .NET code generation (...)" - win32 needs to be substituted with a phrase that has a clearer meaning. User:Silver hr 03:45, 21 Jun 2005 (UTC) == Delphi programming language vs. Delphi sofware development enviroment == Should these topics be separated? There's an article about Pascal, but it doesn't discuss extensions made by Borland (object-orientation). * Object orientation is not just a Delphi extension. TP has it too. Several other dialects too. There even was a O-Pascal draft standard. (IIRC proposed by Apple). Also the language is quite changed going through (soon 9) versions. * I think separating the lemma into .NET and native is better. These are quite incompatible to the point that they are actually separate (but related) products. D.NET breaks code that worked since TP3, and even on non Borland Pascals -- User:marcov. And I really hate to see Delphi categorized as .NET language. It isn't, not even close. Common code doesn't compile under .NET, only thoroughly .NETified or trivial code does. ... And strangely enough it is not categorized as object oriented. If C++ is OOP, so is Delphi. User:marcov I removed the garbage collection notes because nearly every lined contained a flaw, amongst others: * Garbage collection does not require a VM/bytecode concept, even if .NET and Java do so. So it being dependant on the platform is incorrect. According to the standard, even C++ can be fitted with GC, and still be standards compliant. * Languages _are_ affected by what they run on, due to what they specify over pointers, timeframe of destructor execution etc. Plain Delphi has pointers, they had to be pruned to make a .NET language variation. * Moreover Java can be compiled and be Java VM less. Or in general: the paragraph was about how Java/.NET do it, not about GC an sich. And notes about Java/.NET CLR explanation doesn't belong here, see their respective pages for that. User:marcov I added the section on GC as I thought it not fair to flag up a language as deficient for not having garbage collection. Hence the reference to C# and Java both of which use the platform and not the language to achieve GC. In other words although there are languages which compile with GC built in, you would not normally expect a compiled (as opposed to interpreted) language to handle garbage collection. The very nature of GC is something you DON'T have to do. When C++ is fitted with GC it is done by providing replacement memory allocators, and either the source code that implements the GC or links to binaries that implement it. In both cases the C++ language is not changed and is not providing the benefit. The same GC tools can be plugged into delphi on win32, so in this case has the language been adapted to get GC? The language in all these examples is not providing the benefit. .. Yes, I agree GC is not a deficient. (I changed it from a disadvantage to the current text that opinions vary). A lot of beginners simply can't program without GC. * Native Delphi is compiled and does GC on interfaces, dynamic arrays and strings. Again, just because Java does it this way, doesn't mean that is a key aspect of GC, and C# is a mere Java clone. * JIT is not equal to interpreted. * You seem to confuse the generic term garbage collection with a Boehm style garbage collector. Reference counting is GC too (see point one), and has an advantage, since it plays nice with native code. * Moreover, there still is a benefit, also for C++. The purpose of GC doesn't necessarily have to be about totally automatic memory management, even though the token GC languages do it that way. It can be e.g. about avoiding memleaks in server applications that must have long uptimes etc. User:marcov Ok Removed section on garbarge collection. Reference counting is not GC. GC as implemented in most platforms requires replacement Mem Alloc and De-Alloc routines which can easily be used by dephi as shown in Delphi's use of GC in the .NET version and the ability to use WIN32 replacement Memory Managers which will give you GC on all memory not just strings and interfaces. A simple question If GC should be considered part of the language, then what is the construct or call you make to free the memory automatically? Also removed the comments on Top Tier language Delphi is considered a Main stream language. Source: [http://www.tiobe.com/tiobe_index/tekst.htm Programming Community Index] Also added some real issues with Delphi so you do not think I am a delphi zealot --------- Ref counting is GC. There are no such requirements. Not everything GC is abotu OOP/.NET/JVM. However in this case your definition is easier to understand I think without integrating a complete GC chapter. And GC is not easily used in Delphi. For Delphi.NET so many mods are necessary to support GC that I regard Delphi.NET as a separate product line from Delphi. (so D8 or D2005 compiling for .NET). I already stated this before. IMHO BCB is closer to Delphi than Delphi.NET GC "part of the language" is hard. Delphi does GC as part of the language for strings and interfaces (ref counting). Just not for everything. And there is no fixed way. Some types of GC (like ref counting) call something on exit-of-scope. Some (like Boehm style) call it regularly in a separate thread or in code. With a lot of Boehm style collectors one can often forcedly call the GC to force it to clean too. The Top Tier part is hard. Your own "issues" you added confirm that, since they are pretty much in the same category. Microsoft Visual C++ and VB6 are then the only really Top Tier ones, since they are the only ones for which you can find an example for nearly every aspect of windows. Such code will typically not compile with a different C++ compiler. However I agree Delphi is at least partially top tier, the existance of a large commercial components market makes it more top tier than most other platforms (VB and VC++ excluded). In that light I agree with your decision to remove the remark Note that I give a lot of comments, but didn't change anything, I agree with the changes :) User:marcov ==Cons== I disagree on the "cons" of the delphi language, its says: 1. Partial single vendor lock-in (Borland alone can set the language standard, the compatibles have to follow). Lock-in? with GPC? Free pascal? i don think so. 2. Limited cross-platform capability for Delphi itself. Compatibles provide more architecture/OS combinations. Well, yes, but you got kylix for that, and it comes with delphi. 3. Access to platform and third party libraries require header files to be translated to Pascal. Yes, well, there are tool that do this automatically. 4. Documentation of platforms and techniques hard to find in Pascal language (e.g., access to COM and WIN32). This is bullshit, you ever have written a COM object in Delphi? is much more easy and elegant than C++. You can call any win32 api transparently with Delphi. Alfredo Ortega (Alfredo: I numbered your points to make it easier to reply to, hope you don't mind) 1. GPC is not even Delphi compat, anyway, both fall under the compatibles. Do you really think if FPC implements an extension, that Borland will follow it and remain compatible with FPC? 2. If I try to look at it as positive as possible, then Kylix is in the fridge (and i only say that to not have to say it is dead). Moreover it is linux/x86 and highly distro dependant. Where is Mac OS X, where are the 64-bit platforms? And even if it had those, it would only be a pale comparison to e.g. the number of platforms where most competitors except Microsoft can run on. 3. I personally translated large sets of headers to Pascal for FPC. Thinks like commctrl etc. If you really have one that works, let me know (hint: there isn't any) 4. That's exactly what I mean. If it is not in unit windows (which pretty much contains the win98 win32 API), you have to translate it yourself from a VB or C prototype. It is hard to get up to date info with examples and prototypes in the Delphi language -- Marco van de Voort


See other meanings of words starting from letter:

D

DA | DB | DC | DE | DF | DG | DH | DI | DJ | DK | DL | DM | DN | DO | DP | DR | DS | DT | DU | DW | DX | DY | DZ |

Words begining with Delphi_programming_language:

Delphi_programming_language
Delphi_programming_language


These materials are based on Wikipedia and licensed under the GNU FDL



YouTube.com videos better site than Turbo Tax 2007
encyklopedia online