Глава 1

ОСНОВНЫЕ ОТЛИЧИЯ РАЗЛИЧНЫХ ВЕРСИЙ DELPHI

За сравнительно небольшой срок корпорация Borland выпустила 6 основных версий и несколько модификаций Delphi. В этой вводной главе мы рассмотрим основные черты существующих версий Delphi, сделав главный упор на более подробном анализе последней, 6-й версии, т. к. именно на этой версии базируется рассматриваемый в книге материал. Назначение главы - дать вам представление о той версии, с которой вы работаете, если, разумеется, это не 6-я версия Delphi. С другой стороны, она - удобное место утолить естественное любопытство тех из вас, кто уже имеет опыт работы с одной из ранних версий и хочет узнать особенности новейшей.

Сразу же отмечу, что возможности версий строятся по нарастанию: все, что может младшая по номеру версия, может и старшая, но не наоборот. И еще одно замечание: если вы новичок, лучше вначале пропустить эту главу и вернуться к ней позже, после того как вам станут понятными используемые в ней без какого-либо пояснения специальные термины.

1.1. ВЕРСИЯ 1

Первая версия появилась в мае 1995 г., когда еще не существовала Windows 95 (но тем не менее существовала Windows NT). Это единственная версия, работающая под управлением 16-разрядной Windows 3.1 (3.11). В ней впервые была опробована новая модель объектов, позаимствованная из различных объектно-ориентированных языков, и главным образом, из языка C++. Эта модель оказалась настолько революционной, что существовавшие в то время в поздних версиях Turbo Pascal объекты стали не нужны (их возможности полностью поглотила новая модель), а сама новая модель получила название классов.

Классы активно используют динамическую память, в связи с чем несколько изменилась нотация языка, а сам язык был назван Object Pascal. По сравнению с Turbo Pascal в него были внесены существенные дополнения и изменения, в том числе (здесь и далее перечисляются лишь наиболее важные, с моей точки зрения, изменения): 

Библиотека компонентов 1-й версии с самого начала показала основную направленность вновь разработанной системы: программирование баз данных. С этой целью первая и все последующие версии Delphi снабжаются специальным инструментом доступа к данным -BDE (Borland Database Engine - машина баз данных корпорации Borland), а также сервером баз данных InterBase (этот сервер производится филиалом Borland - компанией InterBase Software Corporation) и соответствующими средствами конфигурации сервера, его контроля и связи с ним.

Палитра компонентов первой версии состоит из 9 страниц и содержит 79 компонентов. В качестве дополнительных утилит поставлялись система генерации отчетов ReportSmith v.2.5 и входящая в ее состав автономно запускаемая утилита ReportSmith Run Time Viewer, утилита доступа к данным DatabaseDesktop v.5.1 и утилита конфигурации BDE - Database Engine Configuration v.2.5. Кроме того, утилиты WinSighte и WinSpecter предназначались для упрощения отладки разрабатываемых программ в среде 16-разрядных ОС Windows 3-х.

1.2. ВЕРСИЯ 2

Вторая и все последующие версии Delphi предназначены для работы под управлением 32-разрядных ОС Windows 95/98/2000/NT (Windows 32). В нее были внесены многочисленные изменения, связанные с переходом на качественно новую ОС, в том числе:

Начиная с версии 2, Delphi поставляется в нескольких комплектациях, отличающихся набором инструментальных средств и компонентов. Это соответствует более гибкой ценовой политике: минимальная по возможностям комплектация стоит 200-300 долларов, в то время как цена наиболее мощной комплектации может достигать нескольких тысяч. Во 2-й версии таких комплектов было 3: Desktop, Professional и Client/Server Suite. Далее описываются возможности наиболее мощной комплектации Client/Server Suite.

Среда разработки обогатилась Репозиторием Объектов и множеством полезных программ-экспертов (Wizards).

К утилитам добавлена весьма эффективная программа SQL Explorer v.1.02, существенно облегчающая операции с базами данных, и программа переноса данных Data Migration Expert, упрощающая переход к архитектуре клиент-сервер. Утилиты ReportSmith и DatabaseDesktop представлены более совершенными версиями 3.0 и 7.1 соответственно. Утилита Database Engine Configuration предыдущей версии переименована в BDE Configuration v.3.0. Введена утилита Image Editor v.2.0, служащая для создания различного рода изображений (произвольных рисунков, пиктограмм и курсоров), которые можно включать в файл ресурсов и использовать в работающей программе, и утилита SQL Monitor v.1.0, позволяющая просматривать SQL-запросы в процессе выполнения программы.

На 12 страницах галереи компонентов расположены 114 стандартных компонентов. В том числе на странице QReport размещены удобные компоненты для создания отчетов по хранящимся в базах данным. Эти компоненты оказались значительно эффективнее специальной утилиты ReportSmith, в связи с чем эта утилита не входит в поставку версии 3 и выше.

1.3. ВЕРСИЯ 3

Мне довелось довольно долго работать с вышедшей в июне 1997 г. версией 3, и у меня сложилось мнение, что это одна из наиболее надежных версий Delphi.

Основные новшества этой версии:

Третья версия поставлялась в 4 комплектациях: Standard, Professional, Client/Server Suite и Enterprise.

Состав утилит комплектации Client/Server Suite не изменился по сравнению с предыдущей версией, но изменились названия некоторых из них: BDE Configuration в этой и последующих версиях называется BDE Administrator, a Data Migration Expert - Data Migration Wizard. Ha 13 страницах галереи компонентов размещены 148 стандартных компонента. В модификации 3.5 введены дополнительные компоненты для реализации многозвенных баз данных.

1.4. ВЕРСИЯ 4

Появившаяся в июле 1998 г. 4-я версия Delphi быстро завоевала широкую популярность как своими расширенными языковыми возможностями, так и специальной поддержкой многозвенных баз данных и распределенных вычислений.

К основным нововведениям этой версии относятся:

На 14 страницах палитры компонентов размещены 182 стандартных компонента. В поставке Client/Server Suite утилита Data Migration Wizard получила название Data Pump.

1.5. ВЕРСИЯ 5

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

Для этого, во-первых, в Delphi 5 включена поддержка технологии ADO (ActiveX Data Objects - объекты данных, построенные как объекты ActiveX), которая усиленно развивается корпорацией Microsoft.

Во-вторых, сотрудники Borland и его подразделения InterBase Software Corporation разработали серию компонентов облегченного доступа к данным, хранящимся в таблицах сервера InterBase v.5.5 и выше (страница InterBase палитры компонентов). Эти компоненты также не требуют BDE и, таким образом, создают “облегченное” клиентское место.

Менее значительные изменения, внесенные в версию 5:

  1. для улучшения координации коллективной работы над одним проектом введен новый инструмент - список To-Do;
  2. программист теперь может при желании использовать несколько вариантов настройки основных окон Delphi - например, для режима кодирования на экране могут не присутствовать отладочные окна, которые, наоборот, могут понадобиться в отладочном режиме; нужный вариант настройки легко выбирается новыми интерфейсными элементами в главном окне Delphi;
  3. введены фильтрующие свойства в окне Инспектора Объектов, упрощающие выбор нужного свойства;
  4. опции Инспектора Объектов теперь могут снабжаться небольшими пиктограммами, облегчающими правильный выбор нужной опции (например, радом с названием каждого цвета показывается небольшой прямоугольник, заполненный этим цветом, рядом с названием курсора - его вид и т. п.);
  5. существенно усилены возможности встроенного отладчика: точки отладочного останова можно группировать и сделать доступной или недоступной сразу группу точек; с каждой точкой останова можно связать одно или несколько действий, которые будут выполняться при достижении этой точки; с помощью команды Run | Attach to process можно отлаживать процесс, запущенный в другом экземпляре ИСР (эта возможность существенно упрощает отладку многозвенных приложений); с помощью выбора Run | Run Until Return в главном меню можно продолжить пошаговую отладку после завершения текущей подпрограммы и т. д.;
  6. введены дополнительные возможности в Менеджер Проекта, упрощающий координацию многих разработчиков в рамках единого проекта;
  7. создан механизм Менеджера Трансляций, облегчающий разработку многоязычных программ в рамках единого проекта;
  8. внесены изменения в кодовый редактор, позволяющий настраивать используемые в нем “горячие” клавиши;
  9. несколько переработана встроенная справочная служба;

1.6. ВЕРСИЯ 6

Версия 6 вышла в мае 2001 г., т. е. почти через 2 года после выхода 5-й версии. Эту задержку можно объяснить тем, что параллельно с работой над новой версией Delphi шла разработка варианта Delphi для ОС Linux - эта система программирования вышла в феврале 2001 г. и получила название Kylix. В результате 6-я версия Delphi имеет уникальную особенность: она способна создавать так называемые'межплатформенные приложения, т. е. программы, которые одинаково успешно могут работать как под управлением Windows 32, так и под Linux.

Напомню читателю предысторию, связанную с этой ОС. Еще в самом начале 70-х годов в Bell Laboratories была создана переносимая система UNIX. Переносимость системы, т. е. ее способность миграции на различные аппаратные платформы, обеспечивалась тем, что практически вся она была написана на специально для этой цели разработанном языке С. Более того, почти весь компилятор этого языка был также написан на С! В результате для переноса ОС на новую аппаратную среду нужно было закодировать лишь сравнительно небольшой машинно-зависимый участок С, после чего транслировался исходный код компилятора, а затем и системы в целом. Таким образом, ОС UNIX принципиально существовала в исходных текстах, доступных широкому кругу программистов. Это обстоятельство использовали многие фирмы, создав собственные версии UNIX-подобных ОС, но уже не предоставляя пользователям исходные коды (например, ОС Solaris фирмы Sun).

В 1991 г. финский программист Линус Торвальдс решил создать полностью открытую UNIX-подобную ОС Linux. Полная открытость системы означает, что ее исходный код всегда доступен любому желающему. Для реализации своего замысла Л. Торвальдс привлек широкий круг программистов, опубликовав предварительный исходный код Linux в Интернет и пригласив всех желающих дополнять его своими разработками, но с обязательным условием: публикацией исходного кода этих разработок. Таким образом, эта ОС изначально разрабатывалась (и продолжает разрабатываться!) как полностью открытая и бесплатная система, которую может получить любой желающий [Как показала практика, бесплатность Linux относительна: некоторые фирмы за относительно небольшую плату (часто ненамного превышающую стоимость носителей информации) не только поставляют весьма громоздкие тексты этой ОС, но и обеспечивают покупателей информационной поддержкой по ее установке и эксплуатации.]. Не нужно быть провидцем, чтобы понять, как много потребителей (по некоторым оценкам, сегодня этой ОС пользуются около 8 млн. человек) решились отказаться от услуг Microsoft, вечной политикой которой была полная закрытость исходных текстов своих ОС, в пользу Linux, обеспечивающей, по утверждениям специалистов, не меньшую надежность, чем Windows NT, при приблизительно одинаковых возможностях [ Последнее не совсем точно. Тщательно отлаженные механизмы Windows Plug&Play, СОМ, Ас-tiveX, ADO, MTS и т. п. в сочетании с мощными возможностями Office, SQL Server, Internet Information Server и других подобных программ дают конечному пользователю гораздо больше возможностей, но... за плату и без исходных текстов.]. (Надежность Linux объясняется тем, что большая часть ее пользователей - программисты, которые не только выявляют ошибки, но и устраняют их. В этом смысле говорят, что Linux - самая тщательно отлаженная ОС в мире.)

До появления Kylix единственными средствами программирования для Linux были системы на языках C/C++, Basic, Fortran. Kylix, а следом за ней - Delphi 6, открывают богатейшие возможности VCL (вариант которой под Linux/Windows называется CLX - Borland Component Library for Cross-Platform Application) для разработки прикладных программ для Linux, что позволяет говорить об этой ОС как о потенциальном и весьма опасном конкуренте Windows.

Две другие особенности Delphi 6 также достойны особого упоминания: в ней сделаны дальнейшие шаги для поддержки Web-программирования (архитектура websnap) и разработаны драйверы и компоненты для максимально быстрой связи клиентских мест с некоторыми популярными промышленными серверами баз данных без BDE (компоненты страницы dbExpress).

Архитектура WebSnap продолжает и развивает ранее существовавшую в версиях 4 и 5 технологию Web Broker для создания Web-приложений. В ее основе лежит использование протокола SOAP (Simple Object Access Protocol - простой протокол доступа к объекту). В сочетании с бесплатно распространяемым Web-сервером Apache эта технология позволяет отказаться от дорогостоящих средств Windows NT Server и Internet Information Server в пользу связки Linux + Apache.

Технология dbExpress поддерживает непосредственный доступ к таким популярным серверам БД, как MySQL, Oracle, DB2. Если учесть, что сервер MySQL шведской компании ТсХ распространяется бесплатно для домашнего применения на платформе Linux и за очень небольшую плату - для неограниченного количества подключений и примерно на тех же условиях распространяются серверы Oracle и DB2 (но без исходных кодов), становится очевидным, что популярная до недавнего времени дорогостоящая связка Windows NT Server + Microsoft SQL Server испытывает сильнейшее конкурентное давление. 

Таким образом, основной идей Delphi 6 является обеспечение перехода от дорогих патентованных решений корпорации Microsoft к бесплатным (или почти бесплатным) решениям на базе Linux.

На 27 страницах палитры компонентов размещены 387 компонентов (в режиме CLX - 211 компонентов на 21 странице).