Программирование на языке Delphi. ПредисловиеИсточник: RSDNru А.Н. Вальвачев, К.А. Сурков, Д.А. Сурков, Ю.М. Четырько
ОглавлениеПрограммисты всегда старались сделать свою жизнь более легкой, изобретая и совершенствуя технологии программирования, и на этом поприще им удалось одержать ряд действительно крупных побед. Попытаемся проследить развитие технологий программирования, чтобы читатель понял, почему авторы взялись за написание книги по языку Delphi фирмы Borland. Краткий экскурс в историюЯзыки программированияПожалуй, наиболее важной вехой в истории программирования, сравнимой по значимости разве что с изобретением письменности, можно считать переход от машинных кодов (тарабарщины типа 0110110101111...) к понятным простому смертному языкам программирования (типа ALGOL, FORTRAN, PL/1, Pascal), а также к широкому использованию методов структурного программирования. Программы стали модульными, состоящими из подпрограмм. Появились библиотеки готовых подпрограмм, облегчающие многие задачи, но все равно программистам хватало трудностей, особенно при разработке пользовательского интерфейса. Объектно-ориентированное программированиеКачественным шагом в развитии методов структурного программирования стало изобретение объектно-ориентированного программирования (языков SmallTalk, C++, Turbo Pascal и др.). Программы стали строиться не из чудовищных по размеру процедур и функций, перерабатывающих громоздкие структуры данных, а из сравнительно простых кирпичиков-объектов, в которых были упрятаны данные и подпрограммы их обработки. Гибкость объектов позволила очень просто приспосабливать их для собственных целей, прилагая для этого минимум усилий. Программисты обзавелись готовыми библиотеками объектов, но, как и раньше, создание пользовательского интерфейса требовало уйму времени и сил, особенно когда программа должна была работать под управлением популярной операционной системы Windows и иметь графический пользовательский интерфейс. Визуальное программированиеС изобретением визуального программирования, первой ласточкой которого была среда разработки Visual Basic, создание графического пользовательского интерфейса стало под силу даже новичку. В среде Visual Basic можно было быстро создать приложение для операционной системы Windows, в котором были все присущие графическому пользовательскому интерфейсу элементы: окна, меню, кнопки, поля ввода и т.д. Все эти элементы превратились в строительные блоки программы - компоненты - объекты, имеющие визуальное представление на стадии проектирования и во время работы. Проектирование пользовательского интерфейса упростилось на порядок, однако, для профессиональных программистов язык Basic оказался явно слабоват. Отсутствие в нем контроля типов данных и механизма их расширения оказалось камнем преткновения на пути создания серьезных программ. Создание нестандартных компонентов в среде Visual Basic было крайне затруднено (для этого приходилось прибегать к другим средствам разработки, в частности, к языку C++). В общем, среда Visual Basic отлично подходила для создания прототипов приложений, но не для разработки коммерческих программных продуктов. Среда программирования DelphiМечта программистов о среде программирования, в которой бы простота и удобство сочетались с мощью и гибкостью, стала реальностью с появлением среды Delphi. Она обеспечивала визуальное проектирование пользовательского интерфейса, имела развитый объектно-ориентированный язык Object Pascal (позже переименованный в Delphi) и уникальные по своей простоте и мощи средства доступа к базам данных. Язык Delphi по возможностям значительно превзошел язык Basic и даже в чем-то язык C++, но при этом он оказался весьма надежным и легким в изучении (особенно в сравнении с языком C++). В результате, среда Delphi позволила программистам легко создавать собственные компоненты и строить из них профессиональные программы. Среда оказалась настолько удачной, что по запросам любителей C++ была позже создана среда C++Builder - клон среды Delphi на основе языка C++ (с расширенным синтаксисом). Среда Delphi стала, по сути, лучшим средством программирования для операционной системы Windows, но программистов ждало разочарование, если возникало желание перенести программу в другую операционную систему, в частности, в операционную систему Unix. Технология JavaПрактически одновременно со средой программирования Delphi на свет появилась технология Java, включавшая три составляющих: одноименный язык программирования, очень похожий на язык C++, но более простой и безопасный; универсальный байт-код, в который компилировались программы на языке Java; интерпретатор (виртуальную машину) для выполнения байт-кода в любой операционной системе. Благодаря автоматическому управлению памятью - так называемой "сборке мусора" - резко повысилась надежность программ и скорость их разработки. Поначалу на технологию Java возлагались большие надежды. Программные библиотеки для языка Java стали единым стандартом, поэтому написанные на нем программы оказались по-настоящему переносимыми. Однажды написанная и компилированная в байт-код программа могла работать на любой платформе без ограничений (единственное требование - наличие на этой платформе виртуальной машины Java). Безграничная переносимость Java-программ родила идею сетевого компьютера и сетевых вычислений, суть которой в том, что все программы хранятся в байт-коде на серверах сети Интернет. Когда подключенный к сети пользователь запускает программу, то она сначала загружается к нему на компьютер, а затем интерпретируется. Охваченные этой идеей крупные фирмы ринулись осваивать новый рынок Java-приложений. Для языка Java появились средства визуального программирования, такие как JBuilder и Visual Age for Java. Казалось бы, бери и используй их для разработки пользовательского интерфейса и серверных программ. Но практически пропускная способность сети Интернет в лучшем случае обеспечивала оперативную загрузку на клиентские компьютеры лишь небольших по размеру программ. Кроме того, созданный на языке Java пользовательский интерфейс хронически отставал от возможностей операционной системы Windows и раздражал своей медлительностью. Поэтому технологию Java стали применять главным образом для разработки серверных приложений. Однако и здесь цена переносимости программ оказалась очень высокой - представленные в байт-коде программы работали на порядок медленнее аналогичных программ, компилированных напрямую в команды процессора. Применение динамической компиляции, при которой программа перед выполнением преобразуется из байт-кода в команды процессора и попутно оптимизируется, улучшило положение дел, но скорость работы Java-приложений так и не смогла приблизиться к скорости работы традиционных приложений. Иными словами, переносимость программ шла в ущерб их производительности и удобству. Многие начали задумываться над целесообразностью такой переносимости программ вообще. Тем временем назревала революция в области серверных платформ - небывалыми темпами росла популярность операционной системы Linux. Среда программирования KylixВ связи со стремительным распространением операционной системы Linux возникла необходимость в эффективных средствах создания для нее программ. Таким средством стала среда Kylix (произносится "киликс") - первая среда визуального программирования для операционной системы Linux. Среда Kylix явилась полным аналогом среды Delphi и была совместима с ней по языку программирования и библиотекам компонентов. Программу, созданную в среде Delphi, можно было без изменений компилировать в среде Kylix, и наоборот. Эта возможность достигалась за счет новой библиотеки компонентов, которая взаимодействовала с операционной системой не напрямую, а через промежуточный программный слой, скрывающий разницу в работе компонентов в той или иной операционной системе. Программисты получили возможность создавать программы сразу для двух самых популярных операционных систем: Windows и Linux. Фактически вместо принципа абсолютной переносимости программ была предложена идея разумной переносимости. Постепенно пришло понимание того, что в эпоху Интернет способность программ к взаимодействию в сети не менее (а порой более!) важна, чем возможность их переноса на различные платформы. Такая способность была обеспечена за счет стандартизации протоколов обмена данными в сети Интернет и форматов этих данных. Развитие протоколов и стандартов Интернет привело к рождению технологии Web-сервисов, которая ставила своей задачей максимально упростить создание программ, взаимодействующих по принципу клиент-сервер в глобальной сети. Поддержка технологии Web-сервисов была изящно встроена в системы Delphi и Kylix, в результате разработчики программ получили в руки еще один очень важный инструмент. Технология .NETНесмотря на трудности и уроки Java-технологии, программисты не желали отказываться от идеи создания полностью переносимых программ. Вместе с тем их совершенно не устраивала необходимость платить производительностью и удобством программ за переносимость. Работы по разрешению этого противоречия привели к появлению на свет технологии под названием .NET (произносится "дот-нет"). Технология .NET по сути явилась новой платформой, надстроенной над другими операционными системами, и этим походила на технологию Java. Однако у технологии .NET имелся ряд существенных концептуальных отличий. В частности, платформа .NET хотя и имела свой собственный новый язык программирования C# (произносится "си-шарп"), но не была привязана только к нему, позволяя писать программы на других языках. Кроме того, программы для платформы .NET компилировались не в байт-код, а в универсальный промежуточный язык, который сохранял семантику программы и был близок к ее исходному тексту (байт-код, напротив, близок к командам процессора). Программы на промежуточном языке вообще не интерпретировались, а всегда компилировались в команды процессора при запуске программы или при ее первоначальной установке на компьютер пользователя. Выполняемый код получался очень эффективным и оказывался сравнимым по быстродействию с выполняемым кодом, полученным прямой компиляцией с языка высокого уровня в команды процессора. Немаловажно и то, что на платформе .NET стало возможным использование любых (а не только стандартных) библиотек подпрограмм и компонентов, а также всех функций операционной системы. Все это обеспечило создание быстрых и удобных программ. Поначалу технология .NET была доступна только для семейства операционных систем Windows, но со временем этот недостаток был устранен, и на свет появилась платформа Mono - клон технологии .NET для операционных систем Linux и Unix. ... и опять среда Delphi Платформы .NET и Mono имеют большое будущее, поэтому фирма Borland адаптировала для них язык и среду программирования Delphi. В итоге, разработчики получили уникальную возможность - применять один и тот же язык Delphi для создания профессиональных программ для любых операционных систем и платформ: Windows, Linux, .NET, Mono. Этим, кстати, язык Delphi выгодно отличается от модного ныне языка C#, который применяется лишь для программирования на платформах .NET и Mono. У языка Delphi есть еще одно очень важное преимущество перед остальными коммерчески успешными языками - он великолепно подходит для обучения программированию. Поэтому авторы рекомендуют его в качестве первого языка для всех учеников и студентов, собирающихся стать профессиональными программистами. Что вы найдете в этой книгеУважаемый читатель, мы смеем утверждать, что в этой книге есть именно то, что нужно человеку, чтобы научиться писать программы на языке Delphi и стать профессионалом в этой области. Почерпнутые из книги знания понадобятся вам независимо от того, для какой платформы (Windows, Linux, .NET или Mono) вы будете программировать. В этой книге вы найдете:
При написании этой книги авторы использовали материалы своих предыдущих книг по системам программирования Delphi и C++Builder. По сравнению с предыдущими книгами существенной переработке подверглась терминология. Описание языка Delphi расширено и теперь охватывает такие аспекты, как динамические массивы и их физическое представление в памяти, перегрузку процедур и функций, новые форматы кодирования символов строк и многое другое. Новый набор стандартных подпрограмм рассмотрен самым подробным образом. Объектно-ориентированное программирование объясняется на более понятном сквозном примере. Отдельная глава посвящена расширению возможностей объектно-ориентированного программирования с использованием технологии интерфейсов. Глава, посвященная созданию динамически подключаемых библиотек, охватывает дополнительно вопросы создания динамически подключаемых пакетов компонентов. Если вы посмотрите оглавление, то получите более полное представление об обширной тематике этой книги. Книга может использоваться как для самообучения, так и для чтения лекций и организации лабораторных занятий, поскольку методика подачи материала проверена на тысячах студентов и доказала свою эффективность. Возможные трудности освоенияОсновная проблема в освоении среды Delphi - это ее гигантский объем. Новичок просто теряется в этом море поистине безграничных возможностей. Еще одна сложность - это понимание объектно-ориентированного программирования. Практика показывает, что многие осваивают эту тему только после второго-третьего прочтения и глубокого анализа примеров. Но паниковать не стоит. Читайте книгу не спеша, выполняйте на компьютере все примеры, и успех обязательно придет. |