Сказка. Собрались как-то три автослесаря СРЕДНЕЙ квалификации и решили создать новый автомобиль. Надо сказать, особо ничем они не отличались от других автомобильных слесарей. Работали не в гараже, в достаточно большой автосервисной фирме. Опыт профессиональной деятельности – чуть менее трёх лет. Надоело, понимаешь, крутить болты-гайки-шланги-штанги, масла менять и решили покреативить. На удивление, руководитель автосервисного центра Коренной Леонтий Алексеевич на их инициативу ответил: «Ну, ребятушки, попробуйте. Нужен вам год на реализацию проекта – берите, нужны командировки – ездЕИте, зарплата на год также будет обеспечена». И что, думаете, завалили слесаря свой проект? Так нет, сделали-таки свою модель. Дизайн и устройство новые. Некий гибрид Порше-Мерседес-Лада-Запорожец. Эксплуатационные качества – нужные, вот только скорость небольшая – не на тот вид топлива сориентировались ребятишки в своём проекте, доверившись новым современным видам энергии. А в остальном – нормальная тачка получилась. Катались на ней, друзей возили, начальству показывали. О, как бывает.
Размышления о жизни программистов. И не только их жизни. Не понимаю, в чём заключается смысл работы, какова цель её выполнения для некоторых современных разработчиков софта. Деньги? Да нет, это вроде не цель, а средство. Удовольствие от процесса? Да нет, если результат труда не интересен его пользователю, заказчику работы. Творчество, креатив? Так зачастую и нет этого креатива. Когда элементарную работу программист выполнить не может. В чём же?… Не понимаю… При том, что знаю многих молодых программистов, которые фонтанируют идеями и инициативами. Приятно работать с такими.Быль. В 1982 году троим друзьям, молодых программистам ЦНИИТУ (Центрального научно-исследовательского проектно-технологического института организаций и техники управления) Минска стало скучно. Захотелось, понимаете, сотворить чего-то нового. Произвести революцию в век НТР и НТП (научно-технической революции и научно-технического прогресса, кто не в курсе). Работали они на микроЭВМ, языками программирования которых были Фортран, предназначенный для научно-технических расчётов и Мнемокод – близкий к машинным кодам одноадресный ассемблер. Хотя, на больших компьютерах ЕС ЭВМ в то время вовсю использовались многофункциональные языки программирования высокого уровня. Например, PL/1 – аналог нынешнего С++.
Смотрели трое друзей на программистов больших ЭВМ и завидовали количеству системных программ, языков программирования. А потом решили: не боги горшки обжигают. Решили, не много не мало, произвести революцию, создать свой язык программирования. Да такой, который включал бы в себя все возможности и достоинства существующих языков и систем программирования. Чтобы можно было программировать как на Ассемблере, как на Фортране, как на PL/1. И, к тому же, вААще, не писать программы построчного формирования выходных документов, а просто рисовать их, как будто на бумаге карандашом.
Назвали скромно. RPS – по первым буквам своих фамилий (Ромашко, Палюхович, Санковский). Разработали его представление, расписали, как будет выглядеть программирование на новом языке. Набрались наглости (храбрости) и пошли с соответствующим предложением к Керного Леониду Александровичу, руководителю отделения – наивысшего после директора ЦНИИТУ иерархического уровня. Совет экспертов и руководителей заслушал и вынес вердикт: почему бы и нет? Сам Керного сказал примерно так: “Так, говорите, за год всё сделаете? Ладно, валяйте. Дерзайте, ребята!”
И около двенадцати месяцев три лоботряса СРЕДНЕЙ квалификации занимались этим интересным проектом. Таким, какими в то время занимались большие коллективы программистов больших брэндовых фирм. Творили-креативили. Сделали. Транслятор выполнял все необходимые действия, переводил исходный текст в ассемблер, который затем переводился в исполняемый компьютером загрузочный модуль.
Одну ошибку допустили. Допустил конкретно Ваш покорный слуга. В начале работы над проектом задал вопрос зав.отделом эксплуатации микроЭВМ Бохану В. И.: “Валерий Иванович, как Вы считаете, какую платформу выбрать для реализации транслятора?” Получил ответ: “Не ломай-ка ты голову, езжай в Северодонецк. Там конкретно порекомендуют”. Есть такой город на востоке Украины. Через несколько дней я уже в СевДоне. Доверился авторитетной рекомендации местного НПО”Импульс”, головного в огромной стране разработчика системного программного обеспечения микроЭВМ. В качестве платформы реализации был взят макроязык МП25 – новая разроботка “Импульса”. Эта ошибка выбора и сказалась на быстродействии разрабатываемого нами продукта. Транслятор работал корректно, но медленно. Процесс трансляции длился 20-30 минут. Быстродействие тех компьютеров лучших характеристик не обеспечивало. А нормой считалось 1-3, максимум 5 минут на трансляцию. То есть, сама разработка была выполнена чётко, а инструмент её реализации подкачал. Опыта в выборе инструмента не хватило. Перерабатывать “великий RPS” под другую платформу уже не было ни времени, ни желания. Двое из троих разработчиков навострили лыжи в другие организации и вскоре уволились.
Для неспециалиста. Что такое «разработать новый язык программирования и транслятор к нему»? А это, как если бы несколько автослесарей, понимающих, что такое машина, каково устройство её двигателя и других важных узлов, создали в своей автомастерской, в своём гараже, новую марку автомобиля. Пусть даже несерийную и в одном экземпляре. Сделанный в нашей истории автомобиль выполнял все свои функции, ездил, сигналил, открывал стёкла и прочее. Но делал это слишком медленно. Потому, что конструкторы по неопытности заложили в него топливо, которое даже на автобане не позволяло развивать скорость более 30 км/час.
Вместо заключения. Четыре аспекта той работы и ТОГО ВРЕМЕНИ:
- Все необходимые ресурсы предприятия предоставлялись на инновационные разработки. Год работы – это дефицитное машинное время, командировочные расходы в города-центры разработки системного программного обеспечения, зарплата разработчиков, внимание руководителей, невыполненные плановые разработки, которые могли быть сделаны тремя уже сформированными специалистами.
- Инновационный, креативный потенциал молодых специалистов в целом и троих разработчиков в частности. Создать транслятор и по тому времени, и сегодня – работка, не пазлы конструктора Лего сложить. Хотя, думаю, сегодня проще, потому что имеется больше системных программных и аппаратных средств и нет тех ограничений по быстродействию и объёму занимаемой памяти.
- Активность молодёжи. Прицип «кто, если не я» был ещё в ходу. Сегодня не модный принцип. За деньги – да, и то не всегда. Надо сказать, хорошие зарплаты и в то время были ох как нужны программистам.
- Наличие соответствующей учебной и научно-технической литературы. И наличие моды на чтение. Полки книжных магазинов ломились от отечественной и переводной литературы по разным направлениям науки и хозяйства. Признаком хорошего тона считалось ориентироваться в новейших мировых разработках. В частности, трое молодых людей использовали в своей работе (только по проекту «транслятор») ряд книжек, которыми владели почти как художественной литературой:
- Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции. Т.2. Компиляция. — М.: Мир, 1978. - Донован Дж. Системное программирование. — М.:, Мир, 1975. - Браун П. Макропроцессоры и мобильность программного обеспечения. — М.: Мир, 1977. - Гаврилов M.A., Девятков B.B., Пупырев Е.И. Логическое проектирование дискретных автоматов. М.: Наука, 1977 - Баррон Д. Ассемблеры и загрузчики. — М.: Мир, 1974.
- Баррон Д. Введение в языки программирования. — М.: Мир, 1980. - Системная документация для микроЭВМ СМ1
… книжек, по которым был сконструирован автомобиль из рассказанной выше истории:
… ой, простите, не автомобиль, а транслятор.
Приложения. Две статьи из ведомственного издания «Вестник ЦНИИТУ» за 1982-83г.г. с описанием разработанного транслятора:
Скачать статьи в текстовом формате: Автоматизация вывода документов , Язык программирования высокого уровня
Скачать отсканированные оригинальные статьи: Автоматизация вывода документов- фотокопия , Язык программирования высокого уровня- фотокопия
Адам Палюхович
Комментарии
Интересная статья!