Введение

Delphi — это язык программирования общего назначения и программный продукт, использующий диалект Delphi языка программирования Object Pascal и предоставляющий интегрированную среду разработки (IDE) для быстрой разработки приложений для настольных компьютеров, мобильных устройств, веб-приложений и консольных программ, в настоящее время разрабатываемый и поддерживаемый Embarcadero Technologies. Компиляторы Delphi генерируют нативный код для Microsoft Windows, macOS, iOS, Android и Linux (x64). Delphi включает в себя редактор кода, визуальный дизайнер, интегрированный отладчик, компонент контроля исходного кода и поддержку сторонних плагинов. Редактор кода оснащен функциями Code Insight (автодополнение кода), Error Insight (проверка ошибок в реальном времени) и рефакторинг. Визуальный дизайнер форм предлагает возможность использования либо Visual Component Library (VCL) для разработки исключительно для Windows, либо фреймворка FireMonkey (FMX) для кроссплатформенной разработки. Поддержка баз данных является ключевой особенностью и обеспечивается FireDAC (компоненты доступа к базам данных). Delphi известен своей высокой скоростью компиляции, нативным кодом и производительностью разработчиков. Изначально Delphi был разработан компанией Borland как инструмент быстрой разработки приложений для Windows, пришедший на смену Turbo Pascal. Delphi добавил полноценное объектно-ориентированное программирование к существующему языку, и язык расширился, включив поддержку обобщенных типов, анонимных методов, замыканий и нативной поддержки Component Object Model (COM). Delphi и его аналог на C++, C++Builder, совместимы и продаются совместно под названием RAD Studio. Доступны версии Professional, Enterprise и Architect, при этом более продвинутые версии предлагают больше функций по более высокой цене. Также существует бесплатная Community Edition, включающая большинство функций Professional, но предназначенная для пользователей и компаний с небольшим доходом.

Особенности

Delphi поддерживает быструю разработку приложений (RAD). Ключевыми особенностями являются визуальный дизайнер и два фреймворка приложений: VCL для Windows и FireMonkey (FMX) для кросс-платформенной разработки. Delphi использует язык программирования Object Pascal, основанный на Pascal и созданный Андерсом Хельсбергом для Borland (ныне IDERA) как преемник Turbo Pascal. Он поддерживает нативную кросс-компиляцию для множества платформ, включая Windows, Linux, iOS и Android. Для улучшения поддержки разработки под Microsoft Windows и взаимодействия с кодом, разработанным другими инструментами, Delphi поддерживает независимые интерфейсы Component Object Model (COM) с реализациями классов, использующими подсчет ссылок, а также множество компонентов сторонних разработчиков. Реализации интерфейсов могут быть делегированы полям или свойствам классов. Обработчики сообщений реализуются путем пометки метода класса целочисленной константой, соответствующей обрабатываемому сообщению. Подключение к базам данных широко поддерживается благодаря компонентам VCL, обеспечивающим работу с базами данных и доступ к ним. В более поздних версиях добавлены обновленные и расширенные подпрограммы времени выполнения, некоторые из которых предоставлены сообществом FastCode.

Характеристики

Delphi использует строго типизированный язык программирования высокого уровня, предназначенный для простоты использования и первоначально основанный на более раннем языке Object Pascal. Pascal был изначально разработан как язык общего назначения, "подходящий для выражения фундаментальных конструкций, известных на тот момент, в краткой и логичной форме", и "его реализация должна была быть эффективной и конкурентоспособной с существующими компиляторами FORTRAN", но без средств низкоуровневого программирования или доступа к аппаратному обеспечению. Turbo Pascal и его потомки, включая Delphi, поддерживают доступ к аппаратному обеспечению и низкоуровневое программирование, с возможностью включения кода, написанного на языке ассемблера и других языках. Объектно-ориентированные возможности Delphi основаны исключительно на полиморфизме классов и интерфейсов. Метаклассы являются объектами первого класса. Объекты – это ссылки на объекты (как в Java), которые Delphi неявно разыменовывает, поэтому обычно нет необходимости вручную выделять память для указателей на объекты или использовать подобные приемы, необходимые в некоторых других языках. Существуют специализированные строковые типы с подсчетом ссылок, а также строки, завершающиеся нулевым символом. Строки можно конкатенировать с помощью оператора '+', а не функций. Для специализированных строковых типов Delphi управляет памятью без вмешательства программиста. Начиная с Borland Developer Studio 2006, существуют функции для обнаружения утечек памяти. Delphi включает в себя интегрированную IDE. Все продукты Delphi поставляются с библиотекой времени выполнения (RTL) и библиотекой визуальных компонентов (VCL), включая большую часть исходного кода. Доступны сторонние компоненты (иногда с полным исходным кодом) и инструменты для расширения функциональности IDE или для других задач, связанных с разработкой в Delphi, некоторые из которых бесплатны. IDE включает в себя графический интерфейс для локализации и перевода созданных программ, которые могут быть переданы переводчику; также существуют сторонние инструменты с более широкими возможностями для этой цели. Фреймворк VCL обеспечивает высокий уровень обратной совместимости исходного кода между версиями, что упрощает обновление существующего кода на более новую версию Delphi. Сторонним библиотекам обычно требуются обновления от поставщика, но, если предоставляется исходный код, может быть достаточно перекомпиляции с новой версией. VCL одним из первых реализовал внедрение зависимостей или инверсию управления; он использует многократно используемую модель компонентов, расширяемую разработчиком. С помощью классных помощников можно добавлять новую функциональность в основные классы RTL и VCL, не изменяя исходный код RTL или VCL. Компилятор оптимизирующий и является однопроходным. Он может опционально компилироваться в единый исполняемый файл, не требующий DLL. Delphi также может генерировать стандартные DLL, ActiveX DLL, COM-серверы автоматизации и службы Windows. Начиная с Delphi 2005, IDE Delphi все больше поддерживает функции рефакторинга, такие как извлечение методов и возможность создавать UML-модели из исходного кода или изменять исходный код путем внесения изменений в модель. У Delphi есть сообщества в сети, в которых также активно участвуют ее сотрудники.

Совместимость с другими технологиями

Дельфи – один из языков программирования, в котором обратная совместимость приближается к 100%. Хотя при каждом новом выпуске Delphi делается попытка сохранить максимальную обратную совместимость, чтобы обеспечить возможность повторного использования существующего кода, новые функции, библиотеки и улучшения иногда приводят к тому, что новые версии оказываются менее чем на 100% обратно совместимыми. С 2016 года новые релизы Delphi выходят каждые шесть месяцев, а новые платформы добавляются примерно каждые два релиза.

Совместимость

Delphi и его аналог на C++, C++Builder, взаимосовместимы. Они используют множество общих основных компонентов, в частности, IDE, фреймворки VCL и FMX, и значительную часть библиотеки времени выполнения. Кроме того, их можно использовать совместно в одном проекте. Например, C++Builder 6 и более поздних версий позволяют объединять исходный код, написанный на Delphi и C++, в одном проекте, а пакеты, скомпилированные с помощью C++Builder, можно использовать в Delphi. В 2007 году продукты были объединены и выпущены как RAD Studio – единая платформа для Delphi и C++Builder, которую можно приобрести с одним или обоими продуктами. Начиная с версии Rio, появилась также возможность взаимодействия с Python.

Использование в школах

Delphi — это среда, используемая для обучения программированию в южноафриканских школах в качестве предмета информационных технологий (ИТ).

Дорожные карты

Embarcadero публикует "дорожные карты", описывающие их планы дальнейшей разработки. Последняя из них была опубликована в ноябре 2020 года. Версия 10.5, указанная в дорожной карте за ноябрь 2020 года, была переименована в 11.0.

Связанное программное обеспечение

Borland Enterprise Studio, предшественник RAD Studio, — это пакет разработки программного обеспечения с поддержкой нескольких языков программирования. Borland Enterprise Studio для Windows поддерживает Delphi. Borland Kylix: продукт, аналогичный Delphi, но предназначенный для Linux, выпущенный в 2001 году. Это была первая попытка добавить поддержку Linux в продуктовую линейку Delphi. Kylix использовал новый кроссплатформенный фреймворк CLX (на основе QT) вместо VCL Delphi. Поддержка Kylix была прекращена после выпуска версии 3. Сегодня поддержка Linux интегрирована в основной продукт Delphi и использует кроссплатформенный фреймворк FireMonkey. InterBase — это встраиваемая SQL-база данных, которая нативно интегрируется с Delphi и C++Builder для разработки клиент-серверных или встраиваемых приложений. Её отличительные особенности — сниженные требования к администрированию, безопасность данных коммерческого уровня, аварийное восстановление и синхронизация изменений. Она также доступна для всех основных языков и платформ с использованием протоколов подключения к базам данных, таких как ODBC, ADO, ADO.NET и даже Java через JDBC/ODBC Bridge или Java type 4 коннекторы. JBuilder — это инструмент для разработки на Java, основанный на Eclipse, начиная с версии JBuilder 2007. RadPHP (позже замененный на HTML5 Builder) — это IDE для PHP, предоставляющая полноценную RAD-функциональность. Он имеет дизайнер форм, аналогичный Delphi или Visual Basic, и встроенный отладчик на основе веб-сервера Apache. Также включает в себя библиотеку VCL, портированную на PHP. В отличие от других IDE, он поддерживает функции Web 2.0, такие как AJAX. Delphi for PHP была анонсирована 20 марта 2007 года, переименована в RadPHP в октябре 2010 года и основана на Qadram Q Studio. Компания Embarcadero приобрела Qadram в январе 2011 года. Delphi Prism (позже известная как Embarcadero Prism) произошла от языка программирования Oxygene (ранее известного как Chrome) от RemObjects. Она работала в IDE Microsoft Visual Studio, а не в RAD Studio. Embarcadero лицензировала и перебрендировала её для замены Delphi.NET после прекращения поддержки этого продукта. Free Pascal — это кроссплатформенный компилятор с открытым исходным кодом, поддерживающий большую часть кода Object Pascal, написанного для Delphi. Free Pascal также имеет собственные расширения языка, несколько режимов компиляции и поддерживает более 18 операционных систем и более 9 процессорных архитектур. Lazarus — это кроссплатформенная RAD IDE, использующая компилятор Free Pascal.

Известные библиотеки третьих сторон

FastCode – Улучшенные библиотеки времени выполнения и менеджер памяти. OpenWire (библиотека) – Библиотека компонентов для потоковой передачи данных, событий и синхронизации состояний. Teechart – Библиотека построения графиков.