Ретро? Некро? Ах да, Турбо!

:

Многие люди, пишущие о Turbo Pascal, начинают со своих воспоминаний о том, как он появился и каким шагом вперед он стал по сравнению с существующими на тот момент компиляторами. Мне было бы сложно последовать их примеру, хотя бы потому, что Turbo Pascal 1.0 ровно на два года старше меня, и в сознательном возрасте я застала уже версию 7.0, плавно переходящую в Delphi.

Придется подойти к этому вопросу с диаметрально противоположной стороны и рассказать о том, как Turbo Pascal и его эволюция воспринимаются человеком, воспитанным на значительно более поздних средах разработки и обращающимся к TP с исследовательскими целями (а именно — для проекта progopedia.com).

Итак, год 1983, Turbo Pascal 1.0
Turbo Pascal 1.0
Turbo Pascal 1.0

1. Первое, что бросается в глаза — минимализм процесса установки


«Инсталлируется» TP 1.0 (и следующие версии до 4.0 включительно), в отличие от современных сред разработки, простым копированием на жесткий диск. Рабочим каталогом является тот же каталог, в котором хранится сам компилятор. В версиях 1.0 — 3.0 нет возможности подключения библиотек, так что установка занимает ровно одно действие. Существует возможность дополнительной настройки параметров экрана и команд редактора, но ее использование не обязательно для работы.

Начиная с версии 4.0, появляется возможность изменения рабочего каталога и задания каталогов, содержащих подключаемые библиотеки. Кстати, все версии TP созданы для DOS, и имена файлов и каталогов поддерживают исключительно в формате «8.3» — факт, известный теоретически, но на практике ставший для меня новостью.

Начиная с версии 5.5, появляется утилита install.exe, позволяющая заменить копирование файлов дистрибутива на автоматизированный процесс инсталляции с попутной настройкой рабочих каталогов. В версии 7.0 возможность установки копированием исчезает.

2. Минимализм самого дистрибутива


Дистрибутив TP 1.0 занимает 131 кб и помещается на одну пятидюймовую дискету (если, конечно, она у вас есть). Ничего лишнего в нем нет; руководство пользователя прилагается в виде отдельной (бумажной) книги,
а в дистрибутив входит только файл error.doc, состоящий из очень короткого раздела «Getting Started», FAQ и исправлений к бумажному руководству. Кстати, здесь не работает еще один стереотип современности: .doc — это не файл MS Word, а текстовый файл с некоторым документом, точно так же как .hlp — не специализированный файл справки в соответствующем формате, а текстовый файл с некоторой справкой.

С каждой следующей версией TP дистрибутив растет как в размере, так и в числе и разнообразии входящих в него файлов.

Версия Дата выпуска Размер, кб Количество файлов Количество примеров Размер и формат скомпилированной программы Hello, World!, байт
1.0 20 ноя 1983 131 10 1 8805 (com)
2.0 17 апр 1984 164 18 5 10078 (com)
3.0 17 сен 1986 335 31 14 11412 (com)
4.0 02 ноя 1987 980 69 24 1968 (exe)
5.5 02 мая 1989 1 680 119 54 1840 (exe)
6.0 04 окт 1990 2 880 172 84 1934 (exe)
7.0 09 мар 1993 23 383 532 - 2208 (exe)

Начиная с версии 5.5, структура дистрибутива TP изменилась: теперь он содержит ограниченный набор необходимых файлов (сам компилятор) и несколько архивов с необязательными дополнениями: описание среды и языка, утилиты, набор примеров и т.д. (в таблице приводятся размеры дистрибутива после разархивации всех дополнений и удаления исходных архивов, для TP 7.0 — после установки).

3. Минимализм среды разработки как таковой


Среда TP 1.0 (а также TP 2.0 и TP 3.0) огранизована как текстовое меню, команды которого выбираются нажатием «горячих» клавиш.
Turbo Pascal 2.0
Turbo Pascal 2.0

Turbo Pascal 3.0
Turbo Pascal 3.0

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

Так, например, нельзя отредактировать два файла подряд, не выходя из оболочки (не говоря уже об одновременном редактировании нескольких файлов подряд) — рабочий файл, заданный первым, остается рабочим до конца сессии (впрочем, для проектов, состоящих из одного файла, смена рабочего файла — это роскошь, а не необходимость).

Да и сам редактор непривычен — все команды подаются нажатием нескольких клавиш (аналогично «горячим» клавишам большинства современных редакторов), но основаны на командах редактора WordStar, которые сильно расходятся с современными «умолчательными» значениями. Так, например, войти в режим редактирования просто — находясь в основном меню, нажать E и задать имя рабочего файла — а вот выйти из него уже сложнее. Я перепробовала много команд из современного «стандарта», но до комбинации Ctrl-K-D так и не догадалась, пришлось лезть в руководство пользователя.

Кстати, Borland объявил «антикварным софтом» и выложил в свободный доступ ( http://community.borland.com/museum/) только сам TP 1.0 (а также 3.0 и 5.5), а не руководство к нему, которое в свое время поставлялось в бумажном виде при покупке дистрибутива и служило своеобразной защитой от несанкционированного копирования. Поэтому в электронном виде нашлось руководство только к версии 3.0 (которая, впрочем, не слишком отличается от 1.0).

До версии 3.0 внешний вид и возможности среды разработки почти не меняются, зато потом…

Turbo Pascal 4.0
Turbo Pascal 4.0

TP 4.0 впервые представляет интерфейс в виде полноэкранного редактора с выпадающими меню в верхней части экрана и окном вывода и списком «горячих» клавиш в нижней части. Появляется возможность навигации в меню без «горячих» клавиш, с помощью клавиш управления курсором.

Turbo Pascal 5.5
Turbo Pascal 5.5

В Turbo Pascal 5.5 появляется привычный интерфейс в синих тонах, использующийся в остальных более поздних продуктах Turbo. В TP 6.0 он дополняется поддержкой мыши. Подсветка синтаксиса языка, без которой сложно представить себе современную среду разработки, появляется только в Turbo Pascal 7.0.

Turbo Pascal 7.0
Turbo Pascal 7.0

Еще одно отличие ранних версий TP от современных сред — ограниченные возможности отладки. При компиляции TP 1.0 сообщает о наличии первой ошибки (и о ее природе, если не экономить на памяти и подключить тексты ошибок) и отправляет в редактор на эту строку. Все. За одну компиляцию исправляется ровно одна ошибка, не говоря уже о невозможности отладки откомпилированной программы. Возможность пошаговой отладки появляется только в версии 5.5.

4. Минимализм создаваемых проектов


А вот что мне в TP 1.0 действительно понравилось (в отличие от опять же Visual-сред) — это минимализм создаваемых проектов, сохраняющийся до последней версии. Один проект = один файл с исходным кодом + (опционально) один исполняемый файл .com (с версии 4.0 — .exe). Лично меня раздражает количество каталогов и файлов, создаваемых той же Visual Studio для простенького консольного приложения (для «Hello, World!» на C++ — 22 файла и 3 каталога).

Выводы


Морали в этой басне, в общем, нет:
Спасибо тем, кто изобрел велосипед.