HOME

TheInfoList



OR:

Delphi is a
general-purpose programming language In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application domains. Conversely, a domain-specific programming language is used within a specific area. For ex ...
and a software product that uses the Delphi dialect of the Object Pascal
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming l ...
and provides an
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(IDE) for rapid application development of desktop,
mobile Mobile may refer to: Places * Mobile, Alabama, a U.S. port city * Mobile County, Alabama * Mobile, Arizona, a small town near Phoenix, U.S. * Mobile, Newfoundland and Labrador Arts, entertainment, and media Music Groups and labels * Mobile ...
, web, and console software, currently developed and maintained by
Embarcadero Technologies 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, ...
. Delphi's compilers generate native code for Microsoft Windows,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
, iOS,
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
and
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
( x64). Delphi includes a code editor, a visual designer, an integrated debugger, a source code control component, and support for third-party
plugins Plug-in, plug in or plugin may refer to: * Plug-in (computing) is a software component that adds a specific feature to an existing computer program. ** Audio plug-in, adds audio signal processing features ** Photoshop plugin, a piece of software t ...
. The code editor features Code Insight (
code completion Autocomplete, or word completion, is a feature in which an application predicts the rest of a word a user is typing. In Android and iOS smartphones, this is called predictive text. In graphical user interfaces, users can typically press the tab ...
), 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. Delphi was originally developed by Borland as a rapid application development tool for Windows as the successor of
Turbo 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 ...
. Delphi added full
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
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.


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 A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross ...
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.
Database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spa ...
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 In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to ...
, 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" 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 Polymorphism, polymorphic, polymorph, polymorphous, or polymorphy may refer to: Computing * Polymorphism (computer science), the ability in programming to present the same programming interface for differing underlying forms * Ad hoc polymorphis ...
. Metaclasses are first class objects. Objects are actually references to the objects (as in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
), 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 In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
) 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 re-usable 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 In computer programming, a one-pass compiler is a compiler that passes through the parts of each compilation unit only once, immediately translating each part into its final machine code. This is in contrast to a multi-pass compiler which convert ...
. It can optionally compile to a single
executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data fil ...
which does not require DLLs. Delphi can also generate standard DLLs, ActiveX DLLs, COM automation servers and
Windows services In Windows NT operating systems, a Windows service is a computer program that operates in the background. It is similar in concept to a Unix daemon. A Windows service must conform to the interface rules and protocols of the Service Control Ma ...
. The Delphi IDEs since Delphi 2005 increasingly support refactoring features such as method extraction and the possibility to create
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally ...
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 Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially ...
as possible to allow existing code reuse, new features, new libraries, and improvements sometimes make newer releases less than 100% backwards compatible. Since 2016, there have been new releases of Delphi every six months, with new platforms being added approximately every second release.


Frameworks

Delphi offers two frameworks for visual application development, VCL and FireMonkey (FMX): * Visual Component Library (VCL) is the framework for developing pure Windows applications. VCL is a long-standing framework, included in the first release of Delphi and actively developed ever since then. * FireMonkey (later abbreviated FMX), was released in 2011, as part of Delphi XE2, together with an additional set of built-in compilers for non-Windows platforms. FireMonkey is a cross-platform framework for Windows, macOS, iOS, Android and Linux (x64). The GUI parts of FireMonkey are largely based on Direct3D and OpenGL. FireMonkey is not compatible with VCL; they are two separate frameworks. FireMonkey applications do, however, allow easy sharing of non-visual code units with VCL applications, enabling a lot of code to be ported or shared easily between the platforms.


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.


History


Uses in schools

Delphi is the medium used to teach programming in
South Africa South Africa, officially the Republic of South Africa (RSA), is the southernmost country in Africa. It is bounded to the south by of coastline that stretch along the South Atlantic and Indian Oceans; to the north by the neighbouring count ...
n schools as a subject of information technology (IT).


Roadmaps

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


Related software

* Borland Enterprise Studio, a precursor to RAD Studio, is a software development suite that includes support for multiple languages. Borland Enterprise Studio for Windows supports Delphi. * Borland Kylix: Similar to Delphi, but for Linux, released in 2001. This was the first attempt to add Linux support in the Delphi product family. Kylix used the new CLX cross-platform framework (based on QT), instead of Delphi's VCL. Kylix was discontinued after version 3. Today Linux support is integrated into the main Delphi product and uses the FireMonkey cross platform framework. *
InterBase InterBase is a relational database management system (RDBMS) currently developed and marketed by Embarcadero Technologies. InterBase is distinguished from other RDBMSs by its small footprint, close to zero administration requirements, and multi ...
is an embeddable SQL database that integrates natively to Delphi and C++Builder for client/server or embedded development. Its distinguishing features reduced administration requirements, commercial-grade data security, disaster recovery, and change synchronization. It is also accessible by all major languages and platforms in the market with database connection protocols like ODBC, ADO, ADO.NET and even with Java by JDBC/ODBC Bridge or Java type 4 connectors. * JBuilder was a tool for Java development based on Eclipse since version JBuilder 2007. * RadPHP (later replaced with HTML5 Builder) was an IDE for
PHP PHP is a General-purpose programming language, general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementati ...
that provided true RAD functionality. It has a form designer similar to that of Delphi or Visual Basic, and an integrated debugger based on the Apache web server. It also includes a VCL library ported to PHP. Unlike other IDEs it supports Web 2.0 features such as AJAX. Delphi for PHP was announced on March 20, 2007, renamed in October 2010 to RadPHP, and is based on Qadram Q studio. Embarcadero acquired Qadram in January 2011. * Delphi Prism (later known as Embarcadero Prism) derived from the Oxygene programming language (previously known as Chrome) from RemObjects. It ran in the Microsoft Visual Studio IDE rather than RAD Studio. It was licensed and re-branded by Embarcadero to replace Delphi.NET when that product was discontinued. * Free Pascal is an open-source Pascal
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
cross-compiler that supports most of Delphi's Object Pascal code. Free Pascal also has its own language extensions, multiple compiler anguage syntaxmodes, and supports 18+ operating systems and 9+ processor architectures. Lazarus is a cross-platform RAD IDE that uses the Free Pascal compiler.


Notable third-party libraries

* FastCode – Enhanced runtime libraries and memory manager. *
OpenWire (library) OpenWire is an open-source dataflow programming library that extends the functionality of Embarcadero Delphi and C++ Builder by providing pin type component properties. The properties can be connected to each other. The connections can be used to ...
– Data flow, events, and state synchronization component library. *
Project Jedi Project JEDI is an open source project created in 1997, which started with the goal to translate C header files to Object Pascal and share the results with fellow Delphi programmers. The name decided on was Project JEDI (the "Joint Endeavour of D ...
(Joint Endeavor of Delphi Innovators) – A collaborative open-source effort by the Delphi developer community to provide translations of Windows API interfaces, additional components and controls, and algorithms and data structures. * Teechart – Charting library.


References


Further reading

*


External links

* {{GUI builders Articles with example Pascal code CodeGear software Integrated development environments Pascal (programming language) Pascal (programming language) compilers Pascal (programming language) software User interface builders