Лекция 1. От языка Pascal к системе Delphi.

 

1. Организационные вопросы (10 минут)

· Представиться, сказать, о чем этот курс. Пустить листик (познакомиться).

· Расчасовка (22+32)+экзамен. Лабораторные (следующая неделя).

· Предупредить насчет экзамена: программирование – штука практическая. (можно немного рассказать про порядок лабов)

· Предупредить насчет того, что они должны знать по паскалю

- основные понятия / массивы / записи / процедуры и функции /……

- можно провести мини-опрос.

· Литература («а тем, кто не знает, читать…»)

2. Вступление (15 минут)

· Общая идея: физик должен уметь программировать.

· Паскаль безнадежно устарел: многое надо писать вручную, привести пример со вводом матрицы и построением графика

· Среда Windows: преимущества (не надо писать интерфейс + единообразие программ)

3. Программирование в среде Delphi (30 минут)

· Написание программы не «по командам», а «от интерфейса». Концепция визуального программирования. Быстрая разработка приложения.

- пример с TApplication

· Форма. Компоненты, объекты и события. {подробнее про ООП потом}. Примеры объектов. Свойства объектов. События. Программирование реакции на события.

· Summary – схема программирования:

- создание интерфейса

- задание свойств объектов

- программирование реакции на события

 

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

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

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

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

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

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

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

Выполняя огромный объем черновой работы за программиста и имея потрясающую библиотеку классов для работы с 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 для того, чтобы не отстать от конкурентов в бешеной гонке клиент/серверных баз данных, или даже для того, чтобы возглавить эту гонку. Я не знаю.

 

 

Предисловие