Информация об изменениях в платформе и прикладных решениях на нашем официальном телеграм канале. Подписывайтесь!

Почему программисты любят Delphi?

Девять из десяти программистов предпочитают Delphi, а десятый ее просто не видел. Скажете, шутка? Тогда зайдите в ближайший книжный магазин, где продается компьютерная литература, откройте газету с объявлениями о приеме программистов на работу или просто поговорите с ними и вы сами придете к такому выводу.

Полумиллионная армия легальных пользователей за время, пока вы читаете эту статью, увеличится еще на три-четыре человека. Прибавьте сюда число пиратских копий, которых, как минимум, на порядок больше, и вы получите поистине впечатляющие масштабы всенародной любви. Что же происходит?

За что программисты любят Delphi? Спросите любого, набор ответов будет примерно одинаковым:

  • это объектно-ориентированное программирование;
  • это компилятор;
  • это скорость;
  • это визуальное проектирование;
  • это базы данных;
  • это великолепные компоненты;
  • это Паскаль;
  • это не продукт Microsoft.

Продолжение в том же духе было бы весьма скучным и не стоящим израсходованной бумаги, типографской краски и вашего внимания. Действительно, по своим характеристикам Delphi опережает конкурентов, однако способны ли только сухие цифры технических показателей заставить сердца программистов биться сильнее? Мне кажется, что за всем этим должна скрываться другая, более прозрачная, но от этого не менее весомая, настоящая причина успеха. Какая? Прежде чем ответить на этот вопрос необходимо определить, что вообще люди находят в программировании. Для большинства программистов программирование является и не работой, и не хобби. Для них это, в первую очередь, приключение. Возможность реализовать себя, ответить на брошенный вызов, выдержать испытание и одержать победу. Почему люди не программируют на старых языках? Потому что в них нет больше вызова. Однажды полностью освоив язык программирования, соответствующую среду разработки программист теряет к ней всякий интерес и начинает искать что-либо новое, неизведанное.

Посмотрите на Delphi: здесь каждый может найти себе задачу по силам, получить свой вызов, независимо от уровня начальной подготовки. Кто только делает первые шаги в программировании, имеет прекрасную возможность изучить основные концепции, при этом с самых первых минут создавая реальные работающие программы. Для новичка в объектно-ориентированном программировании - строгий и ясный объектный язык - Object Pascal. Здесь есть также много нового для программиста, разрабатывающего базы данных. А тот, кто считает себя настоящим профессионалом, компьютерным гуру, хорошо знающим как работает Windows "изнутри", наверняка найдет захватывающим и нетривиальным занятием создание новых, оригинальных компонентов.

Может ли вышесказанное быть той искомой причиной? Думаю, что нет. По крайней мере не на все сто процентов. Ведь сколько программистов перешли на Delphi после C++ или Paradox'а, где имели не меньше возможностей для самореализации. Наверное, стоит поискать еще.

На передовой

Настоящие программисты предпочитают быть рядом или в самой гуще сражения - на передовой. Рано или поздно их начинает возмущать то, что другие программисты стараются воздвигнуть щит между ними и системой. Хотя Delphi и позволяет не вступать в непосредственную битву с Borland Database Engine'ом или Windows API, имея на руках исходные тексты всех библиотек, программист чувствует себя, по крайней мере, очень близко к подлинному сражению. За исключением ядра компилятора, написанного на ассемблере, все остальное (оболочка, библиотеки, примеры) сделано на самой Delphi. В этом есть много замечательного - использовать тот же компилятор, который применяли программисты Borland'а. Это все равно, что выходить на баскетбольную площадку в форме Майкла Джордана под 23-м номером или держать в руках клюшку Уэйна Грецки. Стать Великим Номером Один, скользить по льду, оставляя за спиной поверженных защитников, и поражать ворота. Это связывает вас с игрой, заставляет проникнуться ее духом, и вызов содержится в самой игре.

Выполняя огромный объем черновой работы за программиста и имея потрясающую библиотеку классов для работы с Windows и базами данных, Delphi, тем не менее, оставляет ощущение скорее тонких перчаток, нежели толстых, неуклюжих рукавиц, сковывающих действия разработчика и изолирующих его от внешнего мира. В случае необходимости всегда можно обратиться непосредственно к той или иной функции API или даже написать фрагмент кода на ассемблере.

Впрочем, еще ни одна среда программирования не становилась популярной только из-за того, что позволяла программисту выполнить напрямую несколько машинных инструкций. Если тайная причина успеха Delphi и существует, то искать ее следует в другом месте. Инструменты

Казалось бы, чего проще: логически разбить все компоненты на группы и поместить каждую группу на отдельной закладке. Однако те, кто работал с Visual Basic'ом, смогут оценить, насколько огромный шаг вперед представляет собой Component Palette по сравнению с тамошними Toolbox'ами. Больше не надо проводить по полдня, до боли в глазах всматриваясь в груду пиктограммок, пытаясь отыскать среди них необходимую. Или еще одно новшество: идея располагать названия свойств и событий на закладках Object Inspector'а в алфавитном порядке. Мелочь, а экономит не меньше чем полчаса каждый день. Воистину: все гениальное просто.

Только вот и удобное расположение пиктограммок на Component Palette и алфавитный порядок свойств на закладках Object Inspector'а - это детали. Детали могут, конечно, подпортить (иногда даже существенно) общую картину, могут улучшить, но отнюдь не они ее создают.

Быть может, язык?

Для большинства программистов приверженность конкретному языку программирования представляет собой почти что религиозный вопрос. Возможно поэтому, дискуссии о том, какой язык лучше относятся к той категории вещей, которые имеют начало, но не имеют конца. Бесконечные флэймы на эту тему в Сети - тому бесспорное доказательство. Когда компания Borland объявила о своем намерении использовать в Delphi Паскаль, многие даже самые ярые сторонники посчитали такой шаг весьма смелым и рискованным. Эта, скептически настроенная часть, разделилась на два лагеря. Одни, неудовлетворенные имевшимися на то время возможностями, считали, что в основу должен быть положен C++. Другие же утверждали, что Microsoft следует побивать (раннее кодовое название проекта Delphi было Visual Basic Killer) ее же оружием и, мол, именно поэтому в качестве базового языка надо использовать разновидность Basic'а. К счастью, руководство Borland'а имело свое мнение. Очередное воплощение Паскаля получилось весьма удачным. Как показывает практика, синтаксис языка без проблем усваивается как программистами, использовавшими до этого C++, так и приверженцами Basic'а, а его возможности включают большинство достижений современной технологии программирования: исключения, RTTI и т.п. Уже ближе. Но вряд ли эта причина будет самой главной. Во всяком случае, я не думаю, чтобы сотни тысяч программистов поспешили выложить свои кровные только за очередную версию Borland Pascal'я.

Возможно, окружение

Мое одно из самых ярких первых впечатлений от Delphi - это "живые" управляющие элементы. Достаточно вставить, к примеру, таблицу в форму и подключить к ней базу данных, как на экране появится реальная информация в том виде, как она будет выглядеть в конечном приложении. По моим подсчетам это экономит мне еще от одного до двух часов ежедневно. Ведь скорость работы программиста напрямую зависит от того, как редко он отвлекается. Пусть даже это минутный перерыв, чтобы просто запустить программу и удостовериться, что в таблице установлен правильный порядок столбцов. Или возьмем Local InterBase, входящий в редакцию Delphi клиент/сервер. Возможность создавать настоящие приложения с архитектурой клиент/сервер на обычном настольном компьютере - прекрасный шанс для большинства небольших компаний и независимых разработчиков. Вероятно, так много людей покупают Delphi для того, чтобы не отстать от конкурентов в бешеной гонке клиент/серверных баз данных, или даже для того, чтобы возглавить эту гонку. Я не знаю.

Это привычка

На днях я разговаривал с одним приятелем, который задался целью выбрать для себя наилучшее средство визуального программирования. Он спросил, что я думаю о Delphi. Я ответил, что лучше на сегодня пожалуй ничего найти невозможно, и на естественный вопрос "Почему?" я начал объяснять, что это объектно-ориентированное программирование, это молниеносный компилятор, позволяющий получать настоящие .EXE модули, это мощные средства для работы с базами данных, это набор готовых компонентов, это... это... это... Единственное, что я забыл сказать ему, - что, возможно, Delphi самая затягивающая среда из всех остальных. Вот оно! Delphi каким-то образом способна вырабатывать привыкание у людей. Быть может, Delphi настолько популярна потому, что действует как наркотик? Или она сама есть наркотик?!

Я так до сих пор и не знаю, почему Delphi пользуется таким успехом у программистов. Временами мне кажется, что ответ на этот вопрос находится прямо перед моими глазами и мы буквально смотрим друг на друга. Ведь должна же быть, в конце концов, какая-то причина. А вы так не думаете?

Андрей Киреев