Почему Delphi «умирает» или «программист – не читатель, программист – писатель»
Здравствуйте, уважаемые хабражители! С наступившим Новым годом! Желаю вам удачного кодинга, безбажного кода, понимающих руководителей, понятливых подчиненных и терпения при разборе кода, написанного предшественником.
Хочу поделиться некоторыми мыслями по поводу уменьшения популярности горячо любимого мною языка программирования — Delphi. Итак, не будем тянуть кота за яйца, а возьмем быка за рога.
В эпоху, когда родился Delphi, персональный компьютер начинал внедряться везде, где только могла привидеться выгода от его внедрения. Но одного компьютера не достаточно для извлечения выгоды. Есть еще пользователь оператор, который работает как посредник между бизнес-данными и информационной системой, и собственно сама информационная система — программы которые хранят, обрабатывают и выдают эти самые данные.
- железную составляющую
- софтовую составляющую
- обучение операторов
- разработку информационной системы
Объектный Delphi, выросший из процедурного Pascal-я, имеет очень низкий порог вхождения, обеспечивает минимальную зависимость от сторонних библиотек и предоставляет доступ к данным, хранящихся в различных СУБД.
Если при проектировании системы взаимосвязь между железом и Delphi слабо прослеживается, то следующие три условия профита связаны с Delphi очень сильно.
Софтовая составляющая, иными словами операционная система. Delphi позволяет писать программы, работающие в MS Windows, которая набирала популярность бешеными темпами — поставить пиратскую Windows не проблема. Как оно там… J3QQ4…
Обучение операторов Если оператор знает основы работы в Windows, то можно обойтись простой инструкцией, на которой указано, какую кнопку для чего нажимать.
Разработка информационной системы Низкий порог вхождения действительно за полгода позволял студенту или группе студентов написать ИС, соответствующую скромным требованиям заказчика.
- Delphi становился все популярнее, внедряется поддержка новых СУБД
- количество проектов реализованных с помощью Delphi становится все больше
- количество Delphi-программистов увеличивается
- начинается глобальный (не только в СССР-России, но и в США) кризис обучения технических кадров
- требования к информационным системам усложняются в соответствии с развитием технологии
- разработчики Delphi ошибаются в направлении развитии технологии (dotnet был еще не актуален)
- заказчики не могут отличить хорошего Delphi-программиста от плохого — отсутствуют центры сертификации
- количество проектов, написанных недопрограммистами увеличивается
- увеличивается число проектов, требующих поддержку (изменения в коде/логике)
- заказчики все чаще и чаще слышат, что «проще переписать, чем исправить/доделать»
- причем это говорят как плохие программисты, не разобравшиеся в коде
- так хорошие, у которых волосы шевелятся от увиденного быдлокода
- разработчики Delphi не успевают за новыми технологиями, хотя это не критично, но.
- все больше и больше народу/заказчиков/руководителей начинают думать что «Delphi — это плохо»
- конкуренты Delphi не спят, а выкатывают все больше и больше «вкусных»
тортовтехнологии - хорошему программисту без разницы на чем писать, они «уходят» на другой язык, хороших Delphi-программистов становится все меньше и меньше
- Delphi застывает в развитии, приносит убытки, хозяева меняются один за другим
- появляются слухи о
кончинезакрытии разработки языка - заказчики для новых проектов стараются выбрать другой язык, ибо надоело переписывать с нуля одно и тоже, без надежды что это все будет работать в будущем, и что у кода проекта будет поддержка
- ВУЗы прогибаются под рынок, Delphi начинают исключать из программ обучения студентов
- Delphi все реже упоминается в технических кругах, многие
считаютобзывают его «умершим»
- низкий порог вхождения
- отсутствие сертификационных центров
- ошибки менеджмента
- отсутствие «рекламы» в СМИ, вернее присутствие антирекламы
- отсутствие поддержки крупных вендоров, в отличии от конкурентов
Если эти причины в совокупности проявляются у другого языка/технологии, то можно говорить о том, что у него так же есть/будут проблемы. Возьмем к примеру Silverlight. У него тоже низкий порог вхождения, но зато по остальным пунктам у них все тип-топ. Надеюсь никто не будет спорить, что MS это не крупный вендор или вендор не поддерживающий свое детище всеми мыслимыми и немыслимыми способами.
Конечно для Delphi все не так плохо. Сейчас у языка есть адекватный хозяин, язык не шатко, не валко развивается. Но вот доверие заказчиков/руководителей вернуть тяжело. Правде те, кто все же остался верен языку, более осторожны. Например, при наборе в команду более тщательно пытаются выявить уровень подготовки, не гонятся за новыми релизами языка. Delphi 7.0 многих устраивает (как и Windows XP 🙂 Говорят, Гислер с Total Commander-ом до сих пор на второй версии сидит.
Для примера, попробую описать текущее состояние дел в моем городе. Небольшая кучка контор, которые знают о друг-друге если не всё, то давно. Все, без исключения, кормятся из бездонной государственной казны — тендеров для создания электронного правительства проводится множество. В рамках этого, проекты разрабатываются в основном на C# и Java. Зоопарк СУБД прилагается: IBM DB2, MS SQL, Oracle, FireBird. В команде: один-два гуру-работяги, 3-4 студента или свежеиспеченных выпускников, два-три мертвого груза. При чем это не всегда разные люди. Команда это от 2 до 10 человек на 2-4 проектах. В среднем из пяти проектов: один — новый, два — доработка старого, два непонятное что-то с чем-то, как правило делопроизводство (SAP, DocsVision) или пуско-наладочно-железячные работы.
Так вот, почти всегда новый проект пишется либо на C#, либо на Java. Доработка старого — это почти всегда мелкая доделка/переделка/ремонт написанного на Delphi.
Смотришь на все это и грустно становится на сердце. Но прочтешь обещания разработчиков Delphi и воспрянешь духом. А чтобы помочь им в их нелегком деле, убедил свою контору закупить пару лицензии, да начать один проект на свеженькой редакции Delphi.
Имхо, не может такой замечательный язык просто так пропасть. Обязательно найдутся энтузиасты своего дела. Столько замечательных программ написано на нем. Хочется верить, что еще больше будет написано.
Я же в свою очередь, призываю фанатов Delphi не сидеть сложа руки, а пробовать популяризовывать его в своих кругах. Поможем немного менеджерам Embarcadero исправить их ошибки и поддержим наш любимый язык.
TIOBE: Delphi умирает
Авторы TIOBE обновили рейтинг популярности языков программирования за март, сообщает Dice Insights.

Особое внимание в свежем списке авторы уделили Delphi, который максимально приблизился к выходу из топ-20. Этот язык бессменно присутствовал первой двадцатке с момента создания рейтинга в июне 2001 года и был одним из ведущих по популярности в начале нулевых. Но после ряда неудач и бажных релизов (а последняя крупная версия увидела свет в 2018 году) Delphi стал сдавать позиции и в этом марте замыкает список, опустившись за год на 1 строчку.
Уверенное восхождение продолжает Swift, который прибавил 4 пункта и теперь находится на 13 месте. R передвинулся с 14-го на 11-е, PL/SQL — с 22-го на 16-е.
Самое эпичное падение внутри топ-20 пережил Objective-C: он скатился с 10 места на 19-е. Минус 4 позиции у MATLAB и Perl — 15 и 17 места соответственно.
Delphi
Delphi — это язык программирования, основанный на Pascal. Изначально он создавался для разработки приложений для ОС Windows, потом стал применяться и для других целей. Сейчас он не слишком популярен, а сфера его использования довольно узкая, но язык все еще нужен.

«IT-специалист с нуля» наш лучший курс для старта в IT
Синтаксис Delphi похож на Pascal, ведь этот язык — по сути, диалект «паскаля». Отличие Delphi в том, что он объектно-ориентированный, то есть сущности в нем представлены как объекты с методами и свойствами.
Более раннее название Delphi — Object Pascal. Также Delphi называется среда разработки для языка. Сейчас ее полное название — Embarcadero Delphi, хотя за время существования она сменила несколько имен.
Название читается как «делфи» или «дельфи» с ударением на первый слог.
Для чего используется Delphi
Изначально язык создавался для разработки компьютерных приложений. Сейчас сфера его применения шире и одновременно уже. Им пользуются крупные проекты с многолетней историей для поддержки своего ПО, он задействован в ряде специфических сфер — например, системы контроля и учета доступа, электронные очереди, внутренние корпоративные программы. Также Delphi используется при работе с базами данных. Часто его используют для поддержки legacy-кода — такого, который был написан давно и считается морально устаревшим.
Профессия / 8 месяцев
IT-специалист с нуля
Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

Delphi можно встретить в сфере инди-геймдева. Например, на нем написан популярный движок GameMaker для создания простых игр.
Еще один вариант применения языка — обучение. Pascal, на котором он основан, создавался в том числе как учебный язык, и отсюда выросли его особенности: четкость и понятность кода, строгость синтаксиса. Это было нужно, чтобы не запутывать начинающих, а в итоге привело к тому, что язык стало легче расширять. Сейчас от обучения на Pascal и Delphi понемногу отходят, но эта практика до сих пор сохранилась, например в вузах.
Особенности Delphi
Объектно-ориентированный подход. Delphi создан для разработки в парадигме ООП. В нем реализованы все основные принципы объектно-ориентированного программирования: наследование, полиморфизм, инкапсуляция, есть объекты и классы как особый тип данных. При этом он позволяет писать не только в объектно-ориентированном подходе — просто ориентирован на него.
Четкость и структурированность. Язык создан очень ясным и однозначным. У него строгий синтаксис, а значительная часть вещей задается явно и вручную. Изначально это было сделано для обучения, но позже позволило избежать сильного усложнения языка, когда он расширился. Синтаксис устроен так, чтобы не допускать неоднозначности. Многие вещи, которые теоретически позволены в других, менее «жестких» языках, в Delphi считаются ошибкой.
Строгая типизация. Типы в Delphi присваиваются строго, явно и статически. Это означает, что при создании переменной разработчик сразу указывает ее тип, и он не меняется в дальнейшем. При попытке присвоить этой переменной значение другого типа программа не компилируется и выдает ошибку. Такой подход делает язык менее гибким, но защищает от неожиданных ошибок. То есть если разработчик присвоит переменной что-то не то, он поймет это еще на этапе компиляции, а не после отправки работающей с виду программы на деплой.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить
Ручное управление памятью. Большинство современных языков, на которых пишут десктопные или мобильные приложения, работают с памятью автоматически. Специальные процессы выделяют часть оперативной памяти для решения задач программы, а сборщики мусора позже очищают неиспользуемую память. Разработчику не нужно управлять этим процессом. Но в Delphi все не так.
В Delphi разработчик и выделяет, и очищает память вручную, отдельными командами. Автоматической работы с оперативной памятью по умолчанию не предусмотрено. Кажется, будто это делает написание кода сложнее, но на практике это позволяет сделать приложение более быстрым и менее требовательным к ресурсам компьютера. Правда, от разработчика требуется определенный уровень квалификации, иначе можно ошибиться и допустить утечку памяти.
Консервативность. Язык меняется медленно, и его основные принципы остаются неизменными. Программирование на Delphi сейчас строится примерно по тем же особенностям, что раньше. Консервативный подход поддерживается и строгой типизацией, и общей «жесткостью» синтаксиса. Сейчас, когда языки постоянно меняются, эта особенность — и плюс, и минус. Минус — потому что языку тяжело успевать за новыми тенденциями. Плюс — потому что программы на Delphi остаются предсказуемыми. Поэтому язык нередко используют там, где важно, чтобы система оставалась стабильной долгое время.
Что означает «Delphi умер»
От разработчиков на форумах и в «живом» общении можно услышать расхожую фразу «Delphi умер». Имеется в виду, что язык сейчас непопулярен. Популярность у него действительно низкая по сравнению с более современными языками, но разработчики на Delphi все еще нужны, в том числе большим компаниям.
А вот в медиапространстве язык действительно почти не появляется. Поэтому «смерть» Delphi часто связывают с недостатком пиара. Ведь на практике он используется, просто о нем практически не говорят. Более того: связь с Pascal, имеющим славу «учебного» языка из далекого прошлого, нередко приводит к тому, что молодые разработчики сторонятся этой технологии как устаревшей или «несерьезной».
Преимущества Delphi
«Защита от дурака». Этот полушуточный термин означает, что язык спроектирован так, чтобы в нем нельзя было принимать очевидно неправильные решения. Например, присваивать переменным данные другого типа, пропускать точку с запятой, использовать присваивание в условном операторе и так далее. Во многих таких «неочевидных» моментах компиляторы других языков не воспримут ошибку — она выявится позже, уже при работе кода, и его понадобится долго отлаживать. Delphi в этом смысле безопаснее: ошибку видно сразу, на нее «ругается» компилятор.
Эффективность. При создании Delphi пожертвовал частью эффективности своей работы ради понятности и очевидности действий. Поэтому он менее эффективен, чем, скажем, C++. Но благодаря ручному управлению памятью и другим особенностям при грамотном подходе язык способен быть серьезно эффективнее, чем те, где этот процесс автоматизирован. Правда, это накладывает определенные ограничения на разработчика и несколько усложняет процесс обучения. Delphi легче учить, чем C++, но само обучение должно быть глубже.
Надежность. Сейчас язык применяют там, где от программы нужны надежность и стабильность. Он довольно консервативный и жесткий, защищен от ошибок разработчика, и это дает ему определенные преимущества. При грамотном подходе на нем можно создать стабильную систему.
Недостатки Delphi
Несовременность. Из-за своих особенностей Delphi считается многими «морально устаревшим». Популярность языков программирования строится не только на возможности применения в новых условиях, но и на пиаре и предпочтениях разработчиков. Поэтому от него нередко отворачиваются: изучать его считается «немодным», а сам язык — несовременным.
Малая популярность. По причине выше, а еще из-за своеобразного подхода Delphi не слишком популярен на рынке, особенно если сравнивать с такими языками, как JavaScript или Python. Вакансии на этом языке все равно есть и будут существовать еще долго, но новичку может быть сложно войти в эту сферу. Кроме того, многих отталкивают особенности языка, например ручное управление памятью и малое количество современных фреймворков.
Узкая сфера использования. Delphi сейчас применяют мало где, и в основном это компании, где работа ПО ориентирована на стабильность. Чаще всего речь о legacy-коде в области работы с базами данных. Часто и сами компании, работающие с Delphi, имеют довольно специфический уклон: внутреннее ПО страховых и банков, СКУД, научно-производственные центры, рынки ценных бумаг, бюджетные учреждения и так далее. Такие узкие ниши часто бывают заняты профессионалами, которые входили в программирование еще 10–20 лет назад, и соревноваться с ними за вакансию, будучи новичком, — непростая задача.
Стоит ли изучать Delphi сейчас
Это зависит от того, с чем вы хотите работать. Если ваша цель — глубже изучить программирование как концепт, Delphi не будет лишним. Если вы хотите занять узкую нишу — Delphi опять же подойдет, но будьте готовы к тому, что на ранних этапах найти работу будет не так просто, как с более популярными языками. Это проблема многих узких ниш.
Если вы хотите получить работу как можно скорее или интересуетесь максимально современными технологиями, Delphi не подойдет. Но в целом это хороший вариант для первого языка именно благодаря жесткости и консервативности. За счет этих особенностей в нем легче не запутаться на начальных этапах.
В целом наш совет — попробовать разные технологии и уже по собственному опыту решить, что вам нравится больше. С основами ознакомиться несложно, особенно сейчас, когда в интернете много образовательных материалов, в том числе бесплатных.
IT-специалист с нуля
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

Статьи по теме:
Язык программирования Delphi: особенности и перспективы развития
Язык программирования Delphi был крайне популярен примерно в начале 2010-х годов, но сегодня можно встретить мнение, что он уже неактуален и вообще мертв. Конечно, это в корне неверно, ведь, например, Skype написан именно на Delphi, а его используют десятки миллионов людей.
Однако нужно понимать, каковы перспективы этого языка, и насколько он может вписаться в современные реалии. В нашей статье мы расскажем, как устроен язык Делфи, в каких сферах он применяется, и что нужно, чтобы начать его изучать.
История создания языка программирования Delphi
Самым быстрым компилятором в мире изначально обладал Pascal, по крайне мере так уверяли его разработчики. С ним же создавалась и специальная технология для написания платформенно-независимых программ, и именно она активно применялась в языке программирования Java .
Только вот его IDE нормально работала лишь с операционкой DOS (тут следует сделать оговорку о том, что к существовавшей тогда среде разработки понятие IDE, возможно, не очень то и применимо).
Потом появилась платформа Windows, и для неё, разумеется, нужно было ПО, а, следовательно, и подходящая среда для его разработки. В 80-е – 90-е годы оптимальным решением для ПК с Windows стал компилятор IDE Turbo Pascal (производитель — Borland). Слово «Turbo» в названии означало, что этот встроенный компилятор давал высокую скорость компиляции и коды хорошего качества. В среде Turbo Pascal предусматривалась отладка кода, имелось много полезных примеров. Поэтому в то время именно Turbo Pascal был признан стандартом для языка Pascal.
Между тем, графика развивалась в Windows довольно стремительно, а в IDE Turbo Pascal всё ещё применялся интерфейс типа DOS. В какой-то момент стало понятно, что без визуализации в современном программировании не обойтись.
Разработчикам приходилось даже для самых простых программ писать громоздкие коды, с огромными блоками для окон, меню, шрифтов. Нужно было специально освобождать память, продумывать «прорисовку» кнопок и т.д. При этом графический интерфейс Windows был довольно мощным, в обновлениях нуждалась операционная система . Это существенно помогло бы разработчикам.
Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!
Скачивайте и используйте уже сегодня:

Павел Симонов
Исполнительный директор Geekbrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Получить подборку бесплатно
Уже скачали 23660
И в 90-х годах начались работы (сразу несколько проектов) по созданию нового и языка программирования и среды разработки для Windows. Так появился Visual Basic.
Что касается Pascal, то к середине 90-х он уже, можно сказать, «поник». Специалисты компании Borland предприняли усилия по его доработке, но в процессе выяснилось, что менять и доделывать нужно столько, что в итоге получится уже практически другой язык. Для него разработали собственный IDE с графическим интерфейсом. Этот язык вместе с получившейся новой средой программирования назвали Delphi.
Откуда именно такое название? Дельфы – древнегреческий город, с которым в мифологии связано имя покровителя искусств и бога мудрости Аполлона. Легенды гласят, что именно в Дельфах находилось его главное святилище, где каждый желающий узнать свою судьбу получал пророчества от жриц-севилл, служащих Аполлону.
Название Delphi в процессе мозгового штурма предложил Денни Торп. Он считал, что по имени продукта сразу должна быть видна его исключительность, уникальные возможности для обработки баз данных. И Delphi подходит для этого идеально. А руководитель исследовательской группы разработчиков Чак Язджевски подчеркнул, что Delphi еще и перекликается с известным в данной области именем Oracle. Получается словосочетание «Дельфийский Оракул», которое говорит само за себя (по крайней мере, для тех, кто понимает, о чем идет речь).
С конца 1993 года языком программирования Borland Delphi пользуются и российские разработчики, оценившие по достоинству его возможности.
Отличительные черты языка Delphi
Формальное начало любой программы, написанной на Delphi, располагается отдельно от прочих участков когда, а именно – в единственном (во всем проекте) исходном файле с расширением dpr. Прочие файлы исходных текстов готового продукта делаются с расширением pas.
В других языках типа С для описания входа чаще всего задействуются глобальные функции либо статические методы с именем main (и добавлением списка параметров). В исходном тексте программы эти функции могут размещаться где угодно.
В Delphi регистр не влияет на прочтение переменных, идентификаторов типов и ключевых слов. К примеру, идентификаторы SomeVar и somevar будут восприниматься как эквивалентные. На заре компьютерной эры, зависящие от регистров идентификаторы, давали возможность выполнять программную компиляцию быстрее. И еще позволяли применять очень короткие имена, разница между которыми часто была лишь в регистре.
Для вас подарок! В свободном доступе до 29.10 —>
Скачайте ТОП-10
бесплатных нейросетей
для программирования
Помогут писать код быстрее на 25%
Чтобы получить подарок, заполните информацию в открывшемся окне
В современном программировании не приветствуется(и даже осуждается) использование большого числа идентификаторов, отличающихся лишь регистрами, или имеющих лаконичные имена. Тем не менее все «потомки» языка С (а это и С++, и Java, и С#) – регистро-зависимы. Из-за этого выполнять объявления и применять различные идентификаторы тут нужно предельно внимательно. Но зато здесь есть возможность задействовать трудночитаемый стиль для создания кода.
Преимущества языка программирования Delphi
Среда разработки Dеlрhi конструктивно проста, но при этом имеет не меньшие возможности, чем С++. По скорости работы программы, сделанные на Dеlрhi, не уступают тем, что пишутся на С++. Лишь при большом объеме математических подсчетов будет видна разница, да и то совершенно незначительная (благодаря высоким возможностям компилятора С++ по оптимизации программ).
Однако для выполнения хорошей оптимизации нужно время, и это затягивает процесс написания программ. Тут, конечно, выигрывает компилятор языка программирования Dеlрhi, благодаря которому добавлять изменения и проверять результаты можно практически мгновенно. В языке С++ ждать, пока компилятор закончит свою работу, приходится очень долго (а это потеря рабочего времени).
По сути, составляющие среды программирования Dеlрhi – это специализированные внутренние компоненты, функционирование которых задается объектно-ориентированной архитектурой библиотеки визуальных компонентов (Visual Component Library, VCL).
Чем среда разработки существенно отличается от конкурирующих аналогов – так это скоростью разработки приложений. Причем, не самых простых, имеющих, во-первых, сложный пользовательский интерфейс. А во-вторых — с сильными взаимосвязями между элементами программы, располагающимися в её разных окнах.
Набор инструментария для обработки баз данных в языке программирования Dеlрhi тоже очень широкий. Какого именно вида эти базы данных – значения не имеет, приложение может работать и с промышленным сервером, и с локальными БД MS SQL Server либо Oracle.
Дарим скидку от 60%
на обучение «Инженер-программист» до 29 октября
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

В целом в среде разработки Dеlрhi всё выстроено просто и логично. Основные конструктивные составляющие программы четко обозначены. Поэтому код воспринимается легко, чего нельзя сказать о языке программирования Visuаl Bаsiс. Там если код занимает несколько страниц, то разобраться в нем довольно трудно.
Сферы использования языка Delphi
Пожалуй, наиболее активно Delphi используется для написания прикладных программ. Чаще всего это следующие сферы:
- Веб-сервисы и приложения для мобильных устройств. Да, для этих целей Delphi всё ещё используется, потому что данная среда разработки является кроссплатформенной. Плюс пишутся программы под разные операционные системы, а именно — для iOS, Android, Linux, Windows. Программист пишет код, далее он компилируется в промежуточный, а потом уже трансформируется в компилятор, подходящий для той или иной платформы.
- Государственные предприятия и организации. На сегодняшний день это тоже места активного применения Delphi. Переход на новые технологии, в том числе и языки программирования, руководством подобных учреждений, как правило, не всегда приветствуется. По сути, если где-то на заводе используется написанная на Delphi утилита, то переписывать её заново на Python нецелесообразно, потому что на общий результат производства она особо не влияет.
- Enterprise-сектор. Среда разработки Delphi используется банками и крупными корпорациями. Собственно, они выбрали для себя Delphi давно, так совпало, что язык был особенно популярен, когда развитие подобных организаций набирало обороты. И теперь они тоже продолжают им пользоваться.
На сегодняшний день разработчики, владеющие Delphi – весьма востребованные специалисты. К примеру, на jooble.org по запросу «Delphi-программист» вываливается свыше 38 000 вакансий.
Зарплата варьируется от 40 000 руб. (без наличия опыта), далее — от 120 000 руб. (с опытом от года). Но это не самая верхняя возможная граница, её назвать попросту невозможно.
Вообще, в сравнении с другими языками программирования, Delphi развивался относительно медленно. Кроме того, в нем нет большого набора встроенных ресурсов, то есть, собственных библиотек, фреймворков. Поэтому специалистов со знанием данного языка не так уж много. Для нового поколения Delphi вообще довольно сложен, его не каждый осилит. Но сточки зрения конкуренции – это даже плюс, работодатель скорее обратит внимания на соискателей, владеющих Delphi, потому что такой навык есть не у каждого программиста.
Версии языка программирования Delphi
Delphi 1. Появился чуть раньше Windows 95. Именно на Delphi 1.0 создавались первые приложения для Windows (3.1). Функционал языка включал в себя и оптимизирующий компилятор, и визуальную среду разработки, и мощный инструментарий для обработки баз данных. Язык Pascal претерпел значительную трансформацию и заново родился уже как Object Pascal.
Только до 2.11
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:

ТОП-100 площадок для поиска работы от GeekBrains

20 профессий 2023 года, с доходом от 150 000 рублей

Чек-лист «Как успешно пройти собеседование»
Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне
Анкета
Delphi 2. Следующая версия появилась через год и, имея весь прежний функционал, подходила уже для 32-разрядного применения в Windows (95/NT). И снова это был первый язык, в котором был 32-битный компилятор, возможность обработки баз данных и визуализированная среда разработки с поддержанием OLE. А Delphi 2.01 (с обновлениями) поддерживал и ActiveX.
Delphi 3. Данная версия имела более обширный инструментарий, позволяющий при разработке приложений задействовать COM и ActiveX. Тут еще добавился variant (нетипизированный тип данных), и было уделено особое внимание возможности написания кодов для сетевых приложений.
Delphi 4. Тоже ознаменовал собой некий значимый этап в развитии языка. Тут появились ценные доработки, которые упрощали функционирование приложений. К примеру, обновилась среда, в ней появились динамические подсказки и т.п. Порядок работы с компонентами улучшился (VCL), использование MIDAS, DCOM, CORBA упростилось и ускорилось. Object Pascal здесь усовершенствовался во всех отношениях, обрел признаки современного ООП, начали использоваться новые типы данных (и 64-битные – тоже).
Delphi 5. Программисты так активно поработали над Delphi 4, что в итоге там стали одна за другой «всплывать» ошибки. Пришлось выпустить три пакета обновлений (пиратские версии назывались Delphi 4.1, 4.2 и 4.3). Ну а лучшим, полным и нормально доработанным вариантом языка Delphi 4 стал Delphi 5.
Delphi 6. Появление шестой версии языка программирования Delphi Borland обозначила как начало новой кросс-платформенной эпохи. Одновременно вышла ещё и версия для ОС Linux (Kylix 1.0). У разработчиков появилась возможность указывать тип приложения, то есть, делать его универсальным либо только для Windows.
Популярные статьи





И теперь в библиотеку VCL была включена библиотека CLX, которая подходила и для Windows, и для Linux. Это еще не всё. В Delphi 6 появились собственные инструменты для работы с Интернетом, не вступающие в противоречие с ActiveX, притом применимые как для VCL, так и для CLX. Именно после выхода данной версии язык Object Pascal был официально переименован в Delphi.
Delphi 7. Улучшенный вариант Delphi 6. Тут усовершенствована библиотека CLX, добавлена корреспондирующая версия среды разработки специально под операционку Linux — Kylix. Более того, команда разработчиков позаботилась и о совместимости новой версии Delphi с Microsoft .NET. Специально для этого кое-что поменялось и в VCL, и в самом языке (а значит, и в компиляторе).
Delphi 8. Это первая версия Delphi, в которой всё внимание уделено интеграции с платформой Microsoft.NET. Интерфейс среды поменялся, разработчики сделали его похожим на все продукты Microsoft, который приобрел значительную долю Borland. Разумеется, поддержка была остановлена Kylix.
Delphi 2005. Не прошло и года, как появилась следующая после Delphi 8 версия языка. В ней разработчики предусмотрели возможность снова использовать классический стиль IDE для создания приложений под Windows. Но когда требуется сделать приложение для платформы NET, то с использованием версии Delphi 2005 можно задействовать и Delphi, и С#. Из новшеств – к языку программирования Delphi был добавлен оператор for…in, подключены встраиваемые процедуры и функции.
Delphi 2006. Последняя версия от Borland. Одновременно появился еще и облегченный вариант под названием Turbo Delphi.
Delphi 2007. Разработка CodeGear. Из нового – тут появилась поддержка интерфейса Aero для Windows Vista.
Delphi 2009. Автор продукта — Embarcodero. Добавлена поддержка Unicode в VCL и RTL, обращения к функциям Windows API здесь идут через аналоги в Unicode. Кроме того, версия дополнена обобщенными типами и анонимными методами.
Delphi 2010. Версия позволяет работать с Windows 7, появился инструментарий для работы с касаниями и жестами. А элементы dbExpress получили официальную поддержку от Firebird.
Delphi XE (или Delphi 2011). Добавилась возможность задействовать облачные вычисления.
Синтаксис языка программирования Delphi
Система типов данных
В языке программирования Delphi она имеет строгий, статический вид.
Вот перечень данных, которые тут поддерживаются:
- Целые числа, знаковые и беззнаковые данные следующих типов: Byte, Shortint, Word, Smallint, Cardinal,Integer, UInt64, Int64.
- Перечисления, которые задет сам пользователь.
- Вещественные типы Single, Double, Extended. Только нужно иметь в виду, что в случае с Win64 Extended, x86-32 – это Double. Для режима целочисленной эмуляции применяется тип Real48, а для вещественного фиксирования точности – тип Currency.
- Строки данных. Тип string. Он автоматически распределяется в памяти, считает ссылки и имеет парадигму Copy-On-Write. В поздних версиях языка задействованы двухбайтные символы, а в Unicode включены совместимые. Для строк, имеющих ширину символа один байт, используется AnsiString. Именно с помощью таких строк в служебном поле отображаются данные о кодировке. Ранние версии компиляторов Windows содержат тип WideString, в полной мере совмещаемый с BSTR в Component Object Model. Предусмотрено и использование фиксированных по длине строк (ограничение — не более 225 однобайтных символов). Примитивные строковые символы тоже можно применять в стилях языка C: PChar и PWideChar
- Массивы данных. Подразумеваются массивы, включающие в себя элементы типа-перечисления. Ограничения по размеру – не более 256 элементов.
- Множества, включающие в себя элементы типа-перечисления.
- Записи. Структурный тип (обозначается как value), не имеющий поддержки наследования. В версии Delphi 2006 (и в последующих) есть уже поддержка инкапсуляции, методов и свойств. Добавлена перезагрузка операторов. А в Delphi 10.3 Rio включены конструкторы для создания записей.
- Классы и обобщенные классы (обозначаются как generics). Относятся к неявно-ссылочным типам. Поддерживают: наследование, инкапсуляцию, полиморфизм (и для виртуальных конструкторов – тоже), атрибутику, обобщенные параметры (и для всего класса, и для отдельных методов). Возможна также диспетчеризация методов с учётом индекса. С помощью класса можно отобразить один, либо несколько интерфейсов, можно даже реализовать интерфейс через свойство или поле. Опция множественного наследования тут не предусмотрена.
- Указатели методов и функций (в том числе анонимных).
- Типы-метаклассы с указателями типов объектов (сами объекты не указываются). По большей части необходимы для создания виртуальных конструкторов и автоматической сериализации.
- Интерфейсы. В Windows-компиляторе – это СОМ-совместимые, унаследованные от общего предка компиляторы. Множественное наследование в языке программирования Delphi не предусмотрено.
- Деспинтерфейсы. Необходимы для работы с интерфейсами IDispatch, требующими режима позднего связывания.
- Вариантные типы. Обозначаются как [en] Variant и OleVariant (с динамической типизацией).
- Старые объекты, оставленные в языке для того, чтобы сохранять совместимость с Turbo Pascal. Такие объекты могут располагаться в стеке либо статически (чего не предусмотрено для классов).
Операторы языка программирования Delphi
Вот список используемых операторов (перечислены через пробел): := + — * / div mod not and or with xor shl shr ^ = <> >= @ in is as.
Арифметические операторы: + — * / div mod. Это сложение вычитание, умножение, деление (с вещественным результатом), деление нацело, выведение остатка.
За деление отвечают операторы (div mod) и /. Они отличаются по типу возвращаемого деления. Последний работает с целочисленными, с вещественными операндами и всегда выдает результат вещественного типа. С помощью оператора + выполняется конкатенация строк при работе со встроенными строковыми типами.
Бинарные/логические операторы: not and or xor. Это: инверсия (то есть, отрицание), «и», «или», исключающее «или». По типу первого операнда определяется, бинарная это операция или логическая.
Битовые операторы целочисленных типов – это операторы сдвига shl и shr. Смысл в них тот же, что и в командах процессоров Intel x86 (с такими же названиями).
Операторы множества – это: + — * in. Обозначают сложение, вычитание, пересечение и вхождение множеств, позволяют работать с типом множеств. Последний тип – булевый, а первые три выдают по итогу тип множеств.
Операторы приведения типов: () as is. Это безусловное (небезопасное), безопасное приведение (для объектных и интерфейсных типов) и ещё – оператор определяющий принадлежность к типу (выдает булевое значение). Для безусловного приведения предусмотрен функциональный стиль: слева – идентификатор типа, справа – выражение, которое будет к нему приведено (в скобках). Это используется с порядковыми, вещественными, структурными, ссылочными и строковыми типами. Действительное приведение для ссылочных и неявно-ссылочных типов не предусмотрено, просто те же самые данные интерпретируются.
Операторы as и is работают с экземплярами класса и интерфейсами (типами с возможным полиморфным поведением). As отвечает за безопасное приведение типа (исключает неверную интерпретацию), а is проверяет, есть ли поддержка (экземпляра класса, интерфейса в целом или интерфейса отдельного класса). Но если оператор as сделает неудачное приведение типа, то он будет исключен (в языке С#, к слову говоря, такого не происходит).
Операторы ссылок ^ @ — работают с указателями.
Оператор ^ выполняет разыменование указателя, а оператор @возвращает переменной её прежний адрес. Ещё работает «умная» арифметика указателей, когда при сложении и вычитании типированных указателей размеры типов (на которые они указывают) тоже принимаются в расчет.
Оператор присваивания :=. В языке программирования Delphi он выдает не выражение, а операцию, что не позволяет присваиваниям «нанизываться».
Классы в Delphi
Классами в Object Pascal считают особые типы данных, которыми описываются объекты. По сути, объект с типом определенного класса — это и есть экземпляр (instance) данного класса либо является переменной заданного типа.
Класс – это тип, внутри которого имеются поля, свойства и методы. В полях класса, как и в полях записи, собираются сведения об объекте. Процедуры и функции, предназначенные для работы с полями, называют методами. А между полями и методами располагаются свойства.
Объектно-ориентированная часть Delphi
Опция инкапсуляция
С её помощью методы и данные сводятся в единый объект, детали которого не видны пользователю. Это что-то вроде «черного ящика». Его содержимого пользователь не видит и взаимодействует лишь через интерфейс.
| 1 2 3 4 5 6 7 8 |
TMyClass = class private FMyField: Integer; procedure SetMyField(const Value: Integer); function GetMyField: Integer; public property MyField: Integer read GetMyField write SetMyField; end; |
Функция наследования
Она дает возможность сохранять для объекта свойства и функции родителей, то есть, делает его копию, с которой можно дальше работать, вносить улучшения и т.д.
Пример базового класса:
| 1 2 3 4 5 6 7 8 |
TAncestor = class private protected public // Виртуальная процедура procedure VirtualProcedure; virtual; abstract; procedure StaticProcedure; end; |
| 1 2 3 4 5 6 7 8 |
TDescendant = class(TAncestor) private protected public // Перекрытие виртуальной процедуры procedure VirtualProcedure; override; procedure StaticProcedure; end; |
Полиморфизм
Ещё одна особенность языка программирования Delphi. Это возможность даже при различной реализации сводить воедино данные разных объектов (но имеющие общую спецификацию).
Есть класс движущий объект:
| 1 2 3 4 |
TVehicle = class X, Y, Speed: Double; procedure Move; virtual; end |
| 1 2 3 |
TMoto = class(TVehicle) procedure Move; override; end; |
| 1 2 3 4 |
TAirCraft = class(TVehicle) Z: Double; procedure Move; override; end; |
Возможности Delphi в визуальном программировании
Delphi — это среда взаимодействия с объектно-ориентированным структурным языком Object Pascal. Кроме того, процесс разработки тут визуализируется. То есть, пока пишется программа, можно видеть, как и что будет выглядеть и реализовываться. Это значительно ускоряет проработку пользовательского интерфейса для приложений Windows.
Программировать для Windows было намного сложнее, пока не было возможности визуализации разработок. Потому что положение элементов в окне программы выставлялось почти наугад, и конечно же ошибок из-за этого было много.
Привлекает мир кодирования и создания программ? На курсе программиста с нуля до Junior вы освоите основы, познакомитесь с языками и инструментами разработки, и станете готовы к созданию своих первых проектов в IT-индустрии.
На языке программирования тоже сказывается то, что в среде Delphi имеется визуализация. К примеру, есть средства, делающие некоторые свойства классов доступными еще на стадии написания программы, а не только когда ею начнут пользоваться. Но, пожалуй, самое крутое, что тут имеется – это библиотека классов Visual Component Library (VCL). Именно благодаря ей удается обходить все «опасные» точки Windows, разрабатывать приложения и не обращать внимания на обратные вызовы, системные сообщения, дескрипты и указатели.
Можно и не пользоваться VCL, а напрямую применять для создания Windows-приложений его же функционал (если нужно). Но вообще такая необходимость возникает редко, поэтому начинающим разработчикам вполне достаточно VCL.
Причины спада популярности Delphi
Язык Delphi до 2012-2013 годов на платформе Win32 был вне конкуренции, именно он считался самым удобным и востребованным среди прочих. Но постепенно для него стало меньше возможностей использования аналогичных технологий, и вот почему:
- Возросла необходимость в мобильных и веб-разработках. Первые были языку ещё «по силам», но вторые – уже нет.
- В процессе разработки изменения не добавлялись. Какие-то из технологий можно было взять только в сторонних библиотеках.
- Цены. В 2021 стоимость Delphi Professional составила 118 799 руб. В то время как на Visual Studio Professional в Microsoft Store выставлена цена 33 968 руб. Бесплатной версии с неплохим функционалом (что необходимо небольшим фирмам и разработчикам-одиночкам) до июля 2018 года у Delphi и вовсе не было.
Впрочем, спад популярности языка программирования Delphi – это скорее проблема для Штатов и стран Западной Европы. Там на него и раньше не было такого уж высокого проса. Что касается Восточной Европы и территории СНГ, то он и востребован, и конкуренцию отлично выдерживает. На нем пишут приложения для рабочих групп, корпоративных клиентов, там, где требуется высокая производительность программного обеспечения. Согласно индексу TIOBE, популярность языка даже выросла на 1,4% с апреля 2020 по апрель 2021 года.
Топ-5 книг для изучения Delphi
- «Delphi на примерах». Автор – Виктор Пестриков
Книга для новичков. Работа с Turbo Pascal и Object Pascal здесь тоже затронута. Большой упор сделан на приложения, рассчитанные на применения в высшей математике. Знакомство и с процессом разработки, и с использованием уже готовых программ идет постепенно. В учебник включены примеры готовых приложений, пояснения к ним, есть задания для выполнения (в конце раздела – ответы к ним).