Delphi (software)

Last updated
Delphi
Original author(s) Borland, CodeGear, Embarcadero
Developer(s) Embarcadero Technologies
Stable release
RAD Studio 12 Athens [1]   OOjs UI icon edit-ltr-progressive.svg / 9 November 2023;4 months ago (9 November 2023)
Written inMostly Delphi (Object Pascal)
Operating system Runs on Windows; [2] targets Windows, Linux, macOS, Android, iOS
Type Software Development, Designer, IDE, Compiler, RTL
License Freemium
Website embarcadero.com/products/delphi

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, [3] currently developed and maintained by Embarcadero Technologies.

Contents

Delphi's compilers generate native code for Microsoft Windows, macOS, iOS, Android and Linux (x64). [4] [5] [6]

Delphi includes a code editor, a visual designer, an integrated debugger, a source code control component, and support for third-party plugins. The code editor features Code Insight (code completion), Error Insight (real-time error-checking), and refactoring. The visual forms designer has the option of using either the Visual Component Library (VCL) for pure Windows development or the FireMonkey (FMX) framework for cross-platform development. Database support is a key feature and is provided by FireDAC (Database Access Components). Delphi is known for its fast compilation speed, native code, and developer productivity.[ citation needed ]

Delphi was originally developed by Borland as a rapid application development tool for Windows as the successor of Turbo Pascal. Delphi added full object-oriented programming to the existing language, and the language has grown to support generics, anonymous methods, closures, and native Component Object Model (COM) support.

Delphi and its C++ counterpart, C++Builder, are interoperable and jointly sold under the name RAD Studio. There are Professional, Enterprise, and Architect editions, with the higher editions having more features at a higher price. There is also a free-of-charge Community edition, with most of the features of Professional, but restricted to users and companies with low revenue. [7]

Features

Delphi supports rapid application development (RAD). Prominent features are a visual designer and two application frameworks, VCL for Windows and FireMonkey (FMX) for cross-platform development.

Delphi uses the Pascal-based programming language Object Pascal created by Anders Hejlsberg for Borland (now IDERA) as the successor to Turbo Pascal. It supports native cross-compilation to many platforms including Windows, Linux, iOS and Android.

To better support development for Microsoft Windows and interoperate with code developed with other software development tools, Delphi supports independent interfaces of Component Object Model (COM) with reference counted class implementations, and support for many third-party components. Interface 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.[ citation needed ]

Database connectivity is extensively supported through VCL database-aware and database access components.

Later versions have included upgraded and enhanced runtime library routines, some provided by the community group FastCode.

Characteristics

Delphi uses a strongly typed high-level programming language, intended to be easy to use and originally based on the earlier Object Pascal language. Pascal was originally developed as a general-purpose language "suitable for expressing the fundamental constructs known at the time in a concise and logical way", and "its implementation was to be efficient and competitive with existing FORTRAN compilers" [8] but without low-level programming facilities or access to hardware. Turbo Pascal and its descendants, including Delphi, support access to hardware and low-level programming, with the facility to incorporate code written in assembly language and other languages. Delphi's object orientation features only class- and interface-based polymorphism. [9] Metaclasses are first class objects. Objects are references to the objects (as in Java), which Delphi implicitly de-references, so there is usually no need to manually allocate memory for pointers to objects or use similar techniques that some other languages need. 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, Delphi handles memory management without programmer intervention. Since Borland Developer Studio 2006, there are functions to locate memory leaks.

Delphi includes an integrated IDE. The Delphi products all ship with a run-time library (RTL) and a Visual Component Library (VCL), including most of its source code. Third-party components (sometimes with full source code) and tools to enhance the IDE or for other Delphi related development tasks are available, some free of charge. The IDE includes a GUI for localization and translation of created programs that may be deployed to a translator; there are also third-party tools with more features for this purpose. The VCL framework maintains a high level of source compatibility between versions, which simplifies updating existing source code to a newer Delphi version. Third-party libraries typically 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 or inversion of control; it uses a reusable 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 compiler is optimizing and is a single-pass compiler. It can optionally compile to a single executable which does not require DLLs. Delphi can also generate standard DLLs, ActiveX DLLs, COM automation servers and Windows services.

The Delphi IDEs since Delphi 2005 increasingly support refactoring features such as method extraction and the possibility to create UML models from the source code or to modify the source through changes made in the model.

Delphi has communities on the web, where also its employees actively participate.

Backward compatibility

Delphi is one of the languages where backward compatibility is close to 100%. Although each new release of Delphi attempts to keep as much backward compatibility as possible to allow existing code reuse, new features, new libraries, and improvements sometimes make newer releases less than 100% backward compatible.

Since 2016, there have been new releases of Delphi every six months, with new platforms being added approximately every second release. [10]

Frameworks

Delphi offers two frameworks for visual application development, VCL and FireMonkey (FMX):

Interoperability

Delphi and its C++ counterpart, C++Builder, are interoperable. They share many core components, notably the IDE, the VCL and FMX frameworks, and much of the runtime library. In addition, they can be used jointly in a project. For example, C++Builder 6 and later can combine source code from Delphi and C++ in one project, while packages compiled with C++Builder can be used from within Delphi. In 2007, the products were released jointly as RAD Studio, a shared host for Delphi and C++Builder, which can be purchased with either or both. Starting with Rio, there is also interoperability with Python.

Sample "Hello World" program

programObjectPascalExample;typeTHelloWorld=classprocedurePut;end;procedureTHelloWorld.Put;beginWriteln('Hello, World!');end;varHelloWorld:THelloWorld;{ this is an implicit pointer }beginHelloWorld:=THelloWorld.Create;{ constructor returns a pointer to an object of type THelloWorld }HelloWorld.Put;HelloWorld.Free;{ this line deallocates the THelloWorld object pointed to by HelloWorld }end.

Note that the object construct is still available in Delphi.

History

Uses in schools

Delphi is the medium used to teach programming in South African schools as a subject of information technology (IT). [11]

Roadmaps

Embarcadero publishes "roadmaps" describing their future development plans. The most recent one was published in November 2020. [12] Version 10.5 referred to in the November 2020 roadmap was renamed 11.0.

Notable third-party libraries

Related Research Articles

Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named after French mathematician, philosopher and physicist Blaise Pascal.

Turbo Pascal is a software development system that includes a compiler and an integrated development environment (IDE) for the Pascal programming language running on CP/M, CP/M-86, and DOS. It was originally developed by Anders Hejlsberg at Borland, and was notable for its extremely fast compilation. Turbo Pascal, and the later but similar Turbo C, made Borland a leader in PC-based development tools.

C++Builder is a rapid application development (RAD) environment for developing software in the C++ programming language. Originally developed by Borland, as of 2009 it is owned by Embarcadero Technologies, a subsidiary of Idera. C++Builder can compile apps for Windows, iOS, macOS, and Android. It includes tools that allow drag-and-drop visual development, making programming easier by incorporating a WYSIWYG graphical user interface builder.

The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications. It is written in Object Pascal.

Component Library for Cross Platform (CLX), is a cross-platform visual component-based framework for developing Microsoft Windows and Linux applications. It was developed by Borland for use in its Kylix, Delphi, and C++ Builder software development environment.

Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods.

<span class="mw-page-title-main">Free Pascal</span> Free compiler and IDE for Pascal and ObjectPascal

Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, with exception clauses that allow static linking against its runtime libraries and packages for any purpose in combination with any other software license.

Borland Kylix is a compiler and integrated development environment (IDE) formerly sold by Borland, but later discontinued. It is a Linux software development environment based on Borland Delphi and Borland C++ Builder, which runs under Microsoft Windows. Continuing Delphi's classical Greek theme, Kylix is the name for an ancient Greek drinking cup. The closest supported equivalent to Kylix is the free Lazarus IDE package, designed to be code-compatible with Delphi. As of 2010 the project has been resurrected in the form of Delphi cross compiler for Mac and Linux, as shown in the Embarcadero's Delphi and C++ Builder roadmap. As of September 2011 with Kylix discontinued the framework for cross-platform development by Embarcadero is FireMonkey.

<span class="mw-page-title-main">Lazarus (software)</span> Free cross-platform integrated development environment for Free Pascal

Lazarus is a free, cross-platform, integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for programmers developing with the Object Pascal language, which is as close as possible to Delphi.

<span class="mw-page-title-main">Turbo C++</span> Compiler and IDE from Borland

Turbo C++ is a discontinued C++ compiler and integrated development environment originally from Borland. It was designed as a home and hobbyist counterpart for Borland C++. As the developer focused more on professional programming tools, later Turbo C++ products were made as scaled down versions of its professional compilers.

<span class="mw-page-title-main">Oxygene (programming language)</span> Object Pascal-based programming language

Oxygene is a programming language developed by RemObjects Software for Microsoft's Common Language Infrastructure, the Java Platform and Cocoa. Oxygene is based on Delphi's Object Pascal, but also has influences from C#, Eiffel, Java, F# and other languages.

Danny Thorpe was an American programmer noted mainly for his work on Delphi.

Turbo Delphi is a discontinued integrated development environment (IDE), created by CodeGear, which was targeted towards student, amateur, individual professionals, and hobbyist programmers. It used the Delphi programming language, which is a dialect of Object Pascal.

Embarcadero Technologies, Inc. is an American computer software company that develops, manufactures, licenses and supports products and services related to software through several product divisions. It was founded in 1993, went public in 2000 and private in 2007, and became a division of Idera, Inc. in 2015.

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 Xcode.

<span class="mw-page-title-main">Teechart</span>

TeeChart is a charting library for programmers, developed and managed by Steema Software of Girona, Catalonia, Spain. It is available as commercial and non-commercial software. TeeChart has been included in most Delphi and C++Builder products since 1997, and TeeChart Standard currently is part of Embarcadero RAD Studio 12 Athens. TeeChart Pro version is a commercial product that offers shareware releases for all of its formats, TeeChart. Lite for .NET is a free charting component for the Microsoft Visual Studio .NET community and TeeChart for PHP is an open-source library for PHP environments. The TeeChart Charting Library offers charts, maps and gauges in versions for Delphi VCL/FMX, ActiveX, C# for Microsoft Visual Studio .NET, Java and PHP. Full source code has always been available for all versions except the ActiveX version. TeeChart's user interface is translated into 38 languages.

<span class="mw-page-title-main">FireMonkey</span>

FireMonkey is a cross-platform GUI framework developed by Embarcadero Technologies for use in Delphi, C++Builder or Python, using Object Pascal, C++ or Python to build cross platform applications for Windows, macOS, iOS, and Android. A 3rd party library, FMX Linux, enables the building of FireMonkey applications on Linux.

Smart Pascal is a dialect of the Object Pascal programming language that is derived from Delphi Web Script, but is adapted for Smart Mobile Studio, a commercial development suite that generates JavaScript rather than machine code.

This page details the history of the programming language and software product Delphi.

References

  1. Error: Unable to display the reference properly. See the documentation for details.
  2. "Installation Notes - Operating System Requirements". Archived from the original on 2020-08-06. Retrieved 2020-09-05.
  3. William Buchanan (4 February 2003). Mastering Delphi Programming. Palgrave Macmillan. pp. 10–. ISBN   978-1-137-17356-0.[ permanent dead link ]
  4. "Performance Comparison from Delphi 2010 to XE6 (Part 2)". Riversoft AVG. 12 May 2014. Archived from the original on 26 July 2015. Retrieved 9 March 2016.
  5. "The Delphi Geek: Built For Speed". Archived from the original on 23 March 2016. Retrieved 9 March 2016.
  6. "Discussion on Hacker News about Delphi being alive". Hacker News. Archived from the original on 2 July 2016. Retrieved 9 March 2016.
  7. "Delphi: App Development Product Editions". Embarcadero. Archived from the original on 14 March 2021. Retrieved 13 March 2021. With download link for Delphi Feature Matrix
  8. "Recollections About the Development of Pascal" (PDF). Archived (PDF) from the original on 2016-05-12. Retrieved 2016-01-12.
  9. Lingfeng Wang; Kay CHen Tan (20 January 2006). Modern Industrial Automation Software Design. John Wiley & Sons. pp. 113–. ISBN   978-0-471-77627-7.
  10. "List of Delphi language features and version in which they were introduced/deprecated". Stack Overflow. Archived from the original on 28 February 2016. Retrieved 9 March 2016.
  11. Staff Writer. "Embarcadero Delphi named developer language of choice for South African schools". Archived from the original on 2022-03-31. Retrieved 2022-03-17.
  12. "RAD Studio November 2020 Roadmap PM Commentary". blogs.embarcadero.com. 17 November 2020. Archived from the original on 2020-11-28. Retrieved 2020-11-27.
  13. "Borland Enterprise Studio". Archived from the original on 2002-02-05. Retrieved 2002-02-05.
  14. "Kylix is here!". Archived from the original on 2019-09-04. Retrieved 2020-09-05.
  15. "Free Pascal Homepage". freepascal.org. Archived from the original on 1999-01-25. Retrieved 2016-04-27.

Further reading