Уже несколько лет я использую для программирования язык Форт. С первой же
встречи с ним я был очарован и покорен его простотой, элегантностью и
логичностью. И Форт пока ни разу не давал мне повода для разочарований. К
сожалению, в нашей стране Форт знают и используют лишь считанные энтузиасты,
чему в большой мере способствует отсутствие сколько-нибудь доступной
литературы и программного обеспечения. Можно сказать много грустных слов о
тенденциозности современной околотехнической литературы, о переориентации
отечественных программистов и разработчиков с исследовательских и
новаторских на чисто коммерческие работы, о складывающемся монополизме отнюдь
не лучших (зато более хватких) производителей компьютеров и программного
обеспечения и т.д. И все же, несмотря на эти признаки нарастающего вырождения
в нашем, да и мировом компьютерном деле, я надеюсь, что подъем наступит, и мы
будем его свидетелями и реализаторами.
Впрочем, когда я говорю о недоступности литературы по Форту, я несколько
преувеличиваю. Несколько книг все же изданы, и среди них -- несколько очень
хороших. Я выделил бы такие:
Баранов С.Н., Ноздрунов Н.Р. Язык Форт и его реализации. -
Л.: Машиностроение. Ленингр. отд-ние, 1988.
Таунсенд К., Фохт Д. Проектирование и программная
реализация экспертных систем на персональных ЭВМ. - М.:
Финансы и статистика, 1990.
Броуди Л. Начальный курс программирования на языке Форт. -
М.: Финансы и статистика, 1990.
Последняя из этих книг, на мой взгляд -- прекрасный учебник по Форту
(оригинальное название ее -- "Starting FORTH", т.е. "Начала Форта"). Именно
знакомство с ней побудило меня искать и вторую книгу того же автора, Лео
Броуди, служащую логическим продолжением первой: "Thinking FORTH" (я перевел
это название как "Способ мышления -- Форт", хотя игру слов на русский язык
точно перевести, кажется, невозможно). Мне не удалось найти ее перевода, и
поэтому я обратился к копии оригинала. Впоследствии выяснилось, что в
С.-Петербурге перевод этой книги имеется, издание же его (которое должно было
последовать вслед за "Начальным курсом...") пока не состоялось из-за известных
финансовых затруднений.
Мне кажется, книг, подобных "Thinking FORTH", в нашей стране не видели. По
крайней мере, столь подробного и приближенного к подлинной практике описания
процесса создания программного обеспечения -- и при этом без традиционного
наукообразия -- мне раньше читать не доводилось. Даже если предположить, что
лишь один я столь мало эрудирован, это все равно нисколько не может умалить
интересность книги для любого увлеченного программиста -- и необязательно
только фортиста. Я просто не мог держать эту книгу только для себя -- и
рискнул выполнить собственный ее перевод для тех, кому английский оригинал
недоступен.
Я не литератор и не профессиональный переводчик, поэтому приношу извинения за
порою встречающиеся англицизмы и коряво построенные русские фразы. Будем
считать этот вариант черновым и ознакомительным, я надеюсь только, что
правильно передал смысл текста.
Перевод готовился мною намеренно в самом простом формате -- в виде
компьютерных ASCII-файлов. Это позволяет читать и распечатывать текст
практически на любых компьютерах и принтерах (расчитывать на хорошо
обеспеченных читателей пока не приходится). Платой за это служит исключение из
текста многочисленных остроумных авторских иллюстраций и рисунков, которые
слишком затруднительно было бы отображать алфавитно-цифровыми символами. Все
же я постарался сохранить все существенные для понимания сути картинки.
Я старался держать перевод как можно ближе к тексту оригинала, однако все же
позволил себе сделать несколько, на мой взгляд, существенных, правок и
ремарок. В наибольшей степени это касается употребления термина "блок" вместо
использовавшегося Броуди термина "экран" -- это сделано в соответствии с
рекомендациями из "Начального курса...", который вышел значительно позже
имеющегося у меня оригинала "Thinking FORTH" (от 1984 года). Кроме того, с
целью улучшения восприятия в книге переведены на русский язык имена слов,
использующихся для иллюстраций и примеров. Кстати, следует иметь в виду, что
лишь некоторые реальные Форт-системы (будучи рожденными вне России) допускают
использование русских букв в именах определений (заметим, что для классических
языков программирования о такой возможности даже речи нет). Пример
Форт-системы, в которой можно использовать для имен любые символы -- FORTH-83
V4.0 Undirect (&-C, piton DS @1992) для компьютеров класса PDP-11 (RT-11: ДВК,
СМ, БК, УКНЦ и т.д.).
Надеюсь, что эта книга поможет Вам лучше понять суть работы
программиста-практика, расширить свой кругозор и очистить мышление. Броуди
высказывает множество интересных и порою спорных мыслей, поднимает темы,
которые весьма актуальны и сегодня -- особенно в связи с "непрограммистскими"
тенденциями в программировании, переусложненностью современных систем и
борьбой за сохранение контроля над такими системами. Интересно проследить
точки соприкосновения и различия между модным сегодня объектно-ориентированным
программированием (по-моему, способом улучшения понимания системы человеком
путем внесения огромной избыточности в исполняющую систему или компилятор) и
Форт-методом (достижения того же путем исключения избыточности и достижения
простоты). Форт дает совершенно иное решение "вечных" проблем
программирования, позволяет избавиться от страха перед большими системами и
задачами. Мне кажется, распространению Форта мешают лишь два фактора:
воспитываемая сызмальства "классическая" методология мышления у
программистов (мешающая в равной степени и внедрению объектно-ориентированной
технологии) и
направленность Форта на создание "конечных" продуктов и систем, особенно
-- специализированных, и
Если вторая проблема вполне преодолима, то первая будет еще многие годы тянуть
назад всю компьютерную науку (как она и тянет ее уже не первое десятилетие).
Постарайтесь освободиться от консервативного скепсиса; не обязательно целиком
принимать Форт или какие-то размышления Броуди, достаточно хотя бы усомниться
в незыблемости устоявшихся и непреложности модных течений в искусстве
программирования. Наградой послужит уже то, что Ваше мышление будет
подготовлено к восприятию перемен, которые, несомненно, принесет нам XXI век.