Является ли Delphi панацеей?

Источник: az-design

  • Почему именно Delphi?
  • Безграничные возможности
  • Масштабируемость
  • Что ожидает вас впереди
  • Резюме

       Каждые два-три года появляется новая панацея - средство или технология, с помощью которых, как утверждают их сторонники, можно обеспечить создание в рекордно короткие сроки программ, не содержащих никаких ошибок. В свое время такими панацеями были СУБД клиент/сервер, CASE-технология, объектно-ориентированное программирование. Сегодня многие обратились к языку Java как к очередному средству, призванному спасти нас от всех напастей.
       Однако здравый смысл подсказывает, что панацеи нет - невозможно создать средство разработки, которое одинакового хорошо справлялось бы со всем многообразием задач программирования. Если некая система позволяет быстро создавать приложения - возникает вопрос в эффективности генерируемого ею выполняемого кода. Если система обладает хорошими возможностями визуального проектирования интерфейса, то часто оказывается, что она недостаточно хороша в низкоуровневом программировании. Системы, ориентированные на архитектуру клиент/сервер, часто "отказываются" работать с базами данных таких "примитивных" СУБД, как Paradox и т.д.
       Я не буду утомлять вас заверениями, что Delphi  является универсальным средством для решения всех проблем программирования. Однако не могу не отметить, что эта система сделала колоссальный шаг вперед по сравнению с остальными средствами визуального проектирования приложений. Delphi была первой системой ускоренной разработки приложений (RAD - Rapid Application Development), в которой удачно соединились средства визуального проектирования и оптимизирующий компилятор. Добавьте к этому обширную библиотеку компонентов, полную поддержку Internet и многоуровневую архитектуру баз данных и вы поймете, почему я считаю Delphi самой мощной системой разработки среди всех известных систем аналогичного назначения для Windows. Если Delphi и не является панацеей, то она очень сильно приблизилась к тому, чтобы именоваться таким образом.
       Тем не менее, несмотря на все свои достоинства, Delphi не сможет создать абсолютно безошибочную программу, если проект этой программы не был достаточно хорошо продуман. Delphi не может проектировать приложения за вас или решать, что нужно пользователям вашей программы. Более того, Delphi также не сможет думать за вас или привести к установлению мира на всей планете. Delphi - это просто инструмент, который сделает только то, что вы от него потребуете. 
       Почему именно Delphi?
       Часто, рекомендуя использовать Delphi для разработки приложений клиент/сервер людям, незнакомым с этой системой, мне приходится слышать вопрос: "А почему именно Delphi?" В конце концов, на рынке имеется немало хороших средств разработки, позволяющих создавать приложения для архитектуры клиент/сервер PowerBuilder, Visual Basic и другие подобные системы охватывают достаточно большие секторы рынка средств разработки баз данных. Почему же нужно отказываться от этих средств в пользу Delphi?

На заметку
       Хотя лично я не придерживаюсь мнения, согласно которому лучшие продукты пользуются большим спросом, однако многие считают именно так. Для сторонников количественного подхода скажу, что объем продаж Delphi постоянно превосходит совокупный объем продаж таких систем, как Visual Basic и PowerBuilder. Например, в первый же год выпуска Delphi количество проданных копий системы превысило количество проданных копий Visual Basic и PowerBuilder, вместе взятых.

       На мой взгляд, на то есть масса причин. Как я уже говорил, в Delphi удачно сочетаются средства визуального проектирования приложений и оптимизирующий компилятор, чего, к сожалению, нельзя сказать о других системах RAD. Наличие в системе компилятора или генерирование ею выполняемого машинного кода еще не означает, что получаемый код является оптимальным. Такие системы, как PowerBuilder и Visual Basic, изначально создавались на основе концепции генерации псевдокода. При выполнении приложений, созданных с помощью этих систем, полученный псевдокод интерпретировался. С выходом Delphi как компания Microsoft, так и компания Powersoft попытались внедрить в свои продукты полноценные компиляторы. По-видимому, производители внезапно "прозрели" и "поняли", что компиляция приложений в машинный код - это стоящее дело. Однако проблема заключается в том, что ни язык Visual Basic, ни язык PowerScript не предназначались для компиляции, поэтому преобразование их в машинный код оказалось достаточно трудной задачей. Что касается оптимизации получаемого кода, то о ней можно вообще не говорить.
       Если сравнивать вышеупомянутые языки с языком Object Pascal, используемом в системе Delphi, то различие видно сразу. Object Pascal всегда был компилируемым языком, и при его разработке были соблюдены все требования, выполнение которых обязательно при компиляции и оптимизации. Итог вышесказанного таков: Delphi является единственным полноценным средством промышленной разработки систем клиент/сервер. Сравнение Delphi с Visual Basic или PowerBuilder подобно сравнению современного компилятора с языка C++ с компилятором Clipper времен господства DOS. Только успех Delphi подвиг многих производителей средств разработки приложений клиент/сервер добавить в свои продукты технологию генерации машинного кода. Однако, пока они только начинают двигаться в этом направлении, развитие системы Delphi идет семимильными шагами.
       Хочу отметить, что в случае Delphi слова "оптимизирующий компилятор" не означают "медленный компилятор". В последней версии продукта представлен лучший компилятор с языка Pascal компании Borland, которая уже на протяжении многих лет удерживает пальму первенства в этой области. Компиляторы с Pascal этой компании снискали заслуженную славу за генерацию выполняемого кода, который экономно использует ресурсы компьютера и одновременно обладает высокой производительностью. Компилятор Object Pascal, используемый в Delphi, не является исключением. Более того, генератор кода Delphi - это тот самый генератор кода, который применяется компанией Borland в ее компиляторах с языка C++. Таким образом, используя Delphi, вы получаете скорость программ, написанных на языке C++, не имея головной боли, связанной с этим языком программирования.
       Однако современных разработчиков волнует не только эффективность выполняемого кода. Им нужно средство, которое было бы, с одной стороны, достаточно мощным и гибким, чтобы выполнить любую стоящую перед ними задачу, и, с другой стороны, достаточно простым и удобным в работе. Разработчики хотят иметь систему, построенную на принципах объектно-ориентированного программирования, и вместе с тем, позволяющую применять, в случае необходимости, ассемблер. Им нужна система, которая генерировала бы не только выполняемые файлы в формате ЕХЕ, но и могла создавать файлы DLL и драйверов устройств. Наконец, им нужна среда для быстрой разработки баз данных, которая не вынуждала бы их каждый раз при программировании спускаться до ядра СУБД.
       Все это и даже больше предоставляет Delphi. Это стало возможным благодаря подходу, который применила компания Borland при создании этой системы, - собрать все лучшее, что есть в средствах разработки для Windows, и объединить в одном продукте. В состав Delphi входит обширная библиотека компонентов, с помощью которой можно избежать ручного написания программ, что широко распространено в других средствах разработки. С другой стороны, программист в любой момент может прибегнуть к низкоуровневым ассемблерным процедурам. Можно создавать приложения в визуальном режиме, просто помещая нужные компоненты на форму и, вместе с тем, сохраняя доступ ко всем функциям программного интерфейса Windows, системным сообщениям и процессам. Работая в Delphi, программист может с помощью нажатия одной клавиши создать выполняемый файл в формате ЕХЕ, однако, при необходимости, можно компилировать и файлы DLL, драйверов устройств, а также консольных приложений. Наконец, несмотря на то, что Delphi является системой разработки, ориентированной на создание баз данных, вы можете с ее помощью разрабатывать любые приложения Windows, начиная от редакторов и заканчивая хранителями экранов. Даже сама система Delphi разрабатывается с использованием системы Delphi!
       Добавьте ко всему этому мощные средства отладки и вы поймете, почему Delphi является системой, равных которой практически нет.
       Итак, существует множество достоинств, благодаря которым можно выделить Delphi из ряда других средств разработки:
       - обширная библиотека классов;
       - быстрый оптимизирующий компилятор, генерирующий машинный код;
       - встроенный отладчик, равных которому нет;
       - простой в освоении механизм доступа к базам данных;
       - мощная и удобная в работе среда разработки.
       Другие средства в каждой из перечисленных областей остались далеко позади. Не знаю, какое мнение сложилось у вас, но для меня проблемы выбора не существует.

Безграничные возможности
       Несмотря на приводящиеся в средствах информации длинные перечни возможностей Delphi, у некоторых программистов может возникнуть сомнение - все ли тут в порядке? Не скрывается ли за этой словесной пеленой нечто такое, чего нельзя сделать в Delphi?
       Такие опасения беспочвенны. В отличие от других средств RAD, система Delphi полнофункциональна - в распоряжении пользователя имеется столько возможностей наращивания ее мощи, что он никогда не столкнется с задачей, которая окажется Delphi не "по зубам". Разрабатываете ли вы приложения баз данных или компоненты ActiveX, Delphi снова и снова оказывается на высоте.
       Вот лишь краткий список возможностей Delphi, которые делают ее такой гибкой:
       - прямой доступ к программному интерфейсу Windows;
       - встроенный ассемблер и поддержка программирования в машинных кодах;
       - возможность создания пользовательских компонентов VCL и ActiveX;
       - поддержка формата DLL и других выполняемых файлов Windows;
       - возможность многоуровневой разработки приложений;
       - полная объектная ориентированность
       - в программах можно создавать объекты, берущие начало как от библиотечных классов, так и от созданных программистом.
       Хочу отметить, что далеко не все инструментальные средства, обладающие поддержкой объектно-ориентированного программирования (ООП), могут похвастаться такими возможностями. Многие из систем разработки лишь имитируют объектную ориентацию, но сами по своей природе не являются продуктами, построенными на принципах ООП. С другой стороны, если какой-то продукт действительно реализован на принципах ООП, но при этом чудовищно медлителен, то его вряд ли можно считать полноценным инструментальным средством. Система разработки, претендующая на название истинно объектно-ориентированной системы, должна соответствовать четырем основным критериям.
       Наследование (inheritance). Новые объектные типы данных должны обладать возможностью наследовать свойства и методы имеющихся объектных типов.
       Полиморфизм (polymorphism). В системе должен быть реализован механизм вызова методов объекта без жесткой связи с объектным типом данных, в котором содержится программный код, образующий эти методы. Например, метод Show может выполнять абсолютно разные задачи, когда он вызывается для объекта кнопки или сетки, однако механизм его вызова должен быть тем же самым. Кроме того, если оба объекта имеют общего предка, то вызов метода Show предка через ссылку на экземпляр объекта сетки или кнопки должен приводить к отображению соответствующего элемента управления.
       Инкапсуляция (encapsulation). Данные и код программы должны образовывать единую сущность, называемую объектом. Другими словами, объекты программы должны обладать возможностью хранить элементы данных и процедуры (называемые методами ). Процедурные элементы объекта должны иметь автоматический доступ ко всем элементам данных объекта.
       Преобладающая методология. Самый важный принцип. Истинно объектно-ориентированное средство разработки должно иметь ООП в качестве преобладающей методологии создания программного кода, а не в качестве дополнительной возможности, добавленной задним числом. Когда ООП является преобладающей методологией, работа средства разработки должна быть высокопродуктивной. Если же производительность системы оставляет желать лучшего, возникает подозрение относительно принципов, положенных в ее основу.
       Delphi полностью соответствует этим критериям, как и все традиционные средства ООП, такие как системы программирования на C++. Достаточно вспомнить тот малоизвестный факт, что компилятор с языка Pascal компании Borland был полностью объектно-ориентированным задолго до появления объектно-ориентированных компиляторов с языка С как компании Microsoft, так и компании Borland. Технология ООП в Delphi - это не "довесок", а краеугольный камень, на котором зиждется вся среда разработки. Добавив средства визуального проектирования приложений, компания Borland лишь избавила пользователей от утомительной работы, которая часто ассоциируется с ООП.
       Выгодно отличает Delphi от большинства других средств RAD, имеющихся сегодня на рынке, тот факт, что до того, как система стала средством визуального проектирования, она уже была истинным ООП-средством генерации выполняемого кода. Как я уже упоминал, Delphi является прямым потомком компиляторов Turbo Pascal компании Borland. Уже в конце 80-х годов компиляторы с языка Pascal, созданные этой компанией, были построены на принципах ООП и генерировали машинный код. В Delphi эта технология была поднята на новый уровень - к истинному средству RAD. Сравните теперь подходы, используемые в Visual Basic и PowerBuilder. Оба эти продукта возникли как интерпретирующие средства визуального проектирования. Только теперь сделаны попытки добавить в них технологию ООП и генерацию машинного кода. Из-за такого различия в концепциях продуктов полученные результаты разительно отличаются. Одна среда разработки с самого начала создавалась для достижения максимальной гибкости и скорости работы. Другие же предназначались прежде всего для захвата рынка, а уже потом - для превосходства в технологии. Только время покажет, какой подход оказался правильным. Для того чтобы впихнуть тяжеловесный башмак интерпретатора в изящный отпечаток (только в отпечаток - обладательница туфелек уже ушла далеко вперед!) туфельки системы, построенной на принципах ООП и генерации машинного кода, надо обладать недюжинными способностями.

Масштабируемость
       Одной из важнейших характеристик средства разработки систем клиент/сервер является его масштабируемость (scalability), т.е. возможность работы как с простейшими, так и сложными базами данных. Если какое-то средство хорошо показывает себя в работе с таблицами dBASE, дайте ему таблицу Sybase и посмотрите на результат. Часто он оказывается плачевным. Многоуровневая архитектура баз данных Delphi делает данную систему масштабируемой в такой степени, что с ней не может потягаться никакое другое средство из имеющихся на рынке. Среди возможностей, благодаря которым обеспечивается такая масштабируемость, можно выделить следующие.
       - Поддержка как таблиц, размещенных на локальном компьютере, так и хранящихся на удаленном сервере баз данных.
       - Поддержка гетерогенных запросов и доступа к различным СУБД из одного приложения.
       - Независящий от платформы доступ к базам данных с помощью использования механизма Borland Database Engine (BDE), позволяющего приложениям переключаться с одной СУБД на другую.
       - Быстрые и эффективные драйверы BDE для всех основных платформ клиент/сервер.
       - Компоненты DataSet с виртуальными методами, позволяющие разработчикам создавать собственные драйверы баз данных, независящие от BDE.
       - Поддержка компактных и не требующих настройки клиентных приложений.
       - Полная поддержка ODBC.
       Короче говоря, Delphi  - это швейцарский армейский нож в мире средств разработки систем клиент/сервер. Используете ли вы таблицы, хранящиеся на рабочей станции, или расположенные на SQL-сервере, Delphi предоставит вам все, что нужно для создания базы данных, причем в самые короткие сроки и без лишней головной боли.

Что ожидает вас впереди
       Ниже приведен краткий обзор материала, изложенного в последующих главах книги. Эти сведения помогут вам быстро найти информацию, которая интересует вас больше всего.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=22655