http://habrahabr.ru/company/nanosoft/blog/234221/
Один из сооснователей ЗАО Нанософт,
Дмитрий Попов, написал в facebook заметку из серии «САПР в России»… Понятно, что пристрастно, не претендуя на историческую точность. Но нам показалось, что интересно и вполне подойдет для Хабра под пятничное настроение: кто-то узнает что-то новое, кто-то – вспомнит, а кто-то поймет, что не Боги горшки обжигают. Делимся заметкой в режиме «как есть»…
От автора
Какое-то время назад меня попросили написать про САПР в России для одного независимого портала, но природная лень и то, что эта задача с низким приоритетом, привели к том, что за несколько месяцев не было написано ни одной строчки. То, что вы читаете, это совсем не изложение фактов, скорее это очень субъективные, с некоторой долей вымысла, воспоминания и размышления. Возможно с легким прохановским послевкусием.
Россия — родина слонов
Меньше всего мне бы хотелось, чтобы эти заметки воспринимались, как еще один аргумент в бессмысленном и глупом споре между теми, кто считает, что Россия настолько сурова, что она может закусить Европой, а на обед сожрать Америку и теми, кто считает, что у нас ничего хорошего не создано, все что делается — делается плохо и руки у нас растут не там, где у всего прогрессивного человечества. Этот спор имеет под собой не больше оснований, чем спор между “физиками” и “лириками” в СССР 60х годов прошлого века. А вы даже не знаете о существовании такого спора? Вот об этом я и говорю.
Начнем с “доисторических времен”, когда даже родители поколения “айфонов-айпадов-с-пеленок” сами были в пеленках и ползунках. Back to the USSR!
Если кто-то считает, что САПР в России появился благодаря Autodesk, которая начала продавать AutoCAD темным российским инженерам незадолго до развала Советского Союза, то это не так. Совсем не так. САПР, как и секс в СССР был, причем был очень серьезно. Но это был совсем не такой САПР, как мы его знаем и любим сейчас. В нем не было интерактивности, практически совсем. Что остается? Правильно, расчеты, автоматизированные расчеты. И основная идея была — оптимизации всего, начиная от эффективности использования вычислительных ресурсов и кончая оптимизацией конструкции проектируемого изделия.
Дипломники технических ВУЗов всей страны разрабатывали программы, которые теоритически должны были становиться компонентами больших САПР. Например автор этих строк написал в качестве диплома некое подобие APT, работающее на МИНСК 32 и и выдающее управляющую программу для станка с ЧПУ. О незабываемй стрекот перфоратора! Это был отнюдь не престижный столичный ВУЗ, а значит САПР занимались вполне себе массово, заканчивались 70-ые и СССР тогда еще даже не начинал разваливаться на глазах, как прокаженный на последней стадии заболевания.
Не всё способствовало этим занятиям, не было графических дисплеев, не то чтобы совсем, но практически. Ну их массово в то время не было нигде, но в СССР — особенно. И тут мы подходим к воспоминаниям о будущем. Так вот СССР находился в состоянии где-то 8-9 этапа международных санкций, по аналогии с сегодняшней ситуацией. Вся вычислительная техника и программное обеспечение попадали под так называемый запрет КОКОМ. То есть эти технологии не могли быть проданы легально в СССР. Легально. Если нельзя, но очень хочется, то для этого есть спецслужбы. Поэтому вся необходимая техника как раз в тех министерствах, где ее ни в коем случае, с точки зрения США, быть не должно – в Министерстве среднего машиностроения (ядерное вооружение), Министерстве авиационной промышленности (ракеты и самолеты) и далее по списку, была. Конечно по более высокой цене, но “ведь нам на всех нужна одна победа, одна на всех, мы за ценой не постоим”. На заметку — санкции реально бьют не по тем, на кого они рассчитаны, а в первую очередь по тем, кто ни к чему не причастен. Жертвы среди гражданского населения, так сказать. Но на войне, как на войне…
Поступление вычислительной техники из США окольными путями в СССР было засекречено, поэтому ее не было в ВУЗах, готовивших инженеров для несекретных отраслей народного хозяйства и они по старинке таскали колоды перфокарт в своих портфелях, занимали очередь для выполнения своих задач и были счастливы, когда удавалось договориться с операторами на допуск в ночную смену. Точно такая же ситуация была и с аспирантами. И с учеными… Хотите в такое будущее?
Но у всего в жизни есть две стороны, инь и янь. Полная янь положения САПР в СССР породила совершенно уникальное поколение разработчиков, правда дальнейшая его судьба была совсем не такая, как они хотели. Для многих действительность превзошла самые смелые мечты, а для других… Но ведь это жизнь, а не голливудский блокбастер, кто сказал, что всем хорошим должно быть в конце концов хорошо?
Вернемся на 30 лет назад. Вы можете себе представить, что отлаживаете программу с итерацией в одни сутки? А именно так и было. Вы можете себе представить, что программа должна занимать даже не мегабайты, а килобайты? Что программа должна сама решать, какой выбор из возможных вариантов делать, а не спрашивать подсказки от инженера, интерактивности то нет? Бывшие инженеры, а ныне программисты понимали, что без серьезной математической подготовки им просто нечего здесь делать. Помимо углубления в дискретную математику, они старались постоянно расширять свой математический кругозор в поисках святого грааля для решения всего. Вариационное исчисление, теория нечетких множеств, построение специфических алгебр для моделирования производственных процессов, теория искусственного интеллекта и еще много чего. Это я перечислил небольшую долю тех разделов математики, которые использовались в диссертациях по САПР моих друзей по кафедре одного московского ВУЗа. Эти люди были совсем непохожи на выпускников с дипломом по САПР сейчас. Они были принципиально другими. Некоторые из них напоминали Левшу из книги Лескова, они реально могли подковать блоху — смоделировать процесс резания металла при токарной обработке на ЭВМ Электроника 60 с 64 КБайт адресуемой памяти.
Постепенно появились графические дисплеи, эмулирующие команды терминалов Tektronix и на ЭВМ СМ4, цельнотянутом советском аналоге DEC PDP 11, стало возможо работать с интерактивной графикой. До конца СССР оставались считанные годы. И в это время появились первые PC, первые графические редакторы, Unix на PC для особо продвинутых и не успели мы портировать что-то свое, как откуда-то к нам попал AutoCAD.
Какова была наша реакция на первый AutoCAD для PC? Он выглядел забавно. Мы понимали, что нарисовать что-то один раз быстрее на кульмане, но вот если можно использовать стандартные элементы, то наверное AutoCAD будет полезен. Но это не САПР. Это совсем не САПР, как его понимали в то время. Где реальная помощь инженеру в расчетах, наиболее трудоемкой части его работы? Где поиск вариантов конструкции? Как вообще эта поделка может помочь при проектировании технологического процесса? Довольно неудобный электронный кульман. В общем реакция динозавров на появление первого млекопитающего.
Один из первых интерфейсов AutoCAD - меню справа, курсор управляется с командной строки...
Но AutoCAD был не безнадежен, у него имелся встроенный интерпретатор LISP. Ну да, среди нас только повернутые на проблематике искусственного интеллекта были знакомы с LISP, но этот язык исключительно прост синтаксически и его можно было освоить за пару дней. Как говорили, это язык для истинных адептов ИИ, потому что “искусственным интеллектом занимаются те, кому своего не хватает”. В первоначальной реализации от Autodesk LISP был чудовищно медленным, падучим. Было ясно, что ничего серьезного на нем написать невозможно. Но позже он стал именно тем оружием, которое позволило AutoCAD затоптать конкурентов в нише САПР для PC. И это оружие победы выковали для Autodesk два российских научных сотрудника по фамилии Петров и… Петров.
Петров в квадрате и Ричард Хендисайд
Осенью 89 года на территории Конференц-центра АЗЛК, тогда еще вполне себе живого завода, высадился десант Autodesk в сопровождении цирка дрессированных партнеров. Командовал этой операцией один из основателей Autodesk Ричард Хендисайд. Очередь из инженеров, студентов и аспирантов технических ВУЗов на эту выставку была длиннее, чем к мавзолею Ленина. Для тех, кто там побывал, это было первое знакомство с интерактивным САПР, пусть убогим, но реально существующим. Дисплеи 20”, плоттеры и дигитайзеры и все это работает не со шкафами СМ4 или ЕС ЭВМ, а с серой коробкой IBM PC, стоящей на стандартном советском столе-парте из ДСП. Оказывается для AutoCAD уже есть компании, которые пишут программы на LISP, расширяющие его функционал до уровня параметрического проектирования (Cyco Software), неужели LISP на что-то годится? На большинство неискушенных советских инженеров это производило впечатление не меньшее, чем блеск бус на папуаса. Но некоторые поняли, что в этом есть большие возможности, что можно начинать писать программы, которые будут использовать AutoCAD как интерактивный графический редактор, а расчетные программы, ранее требовавшие сложного ввода массивов исходных данных получат их непосредственно из чертежа и результат тоже будет на этом чертеже. Вот только LISP…
Одним из таких разработчиков был Петр Петров, работавший в слегка закрытом НИИ над созданием сквозной САПР для специфической отрасли машиностроения. У него был приятель, тоже по фамилии Петров, по имени — Юрий. И так получилось, что они до этого имели опыт в разработке компиляторов. В общем посмотрели они на этот LISP в AutoCAD и поняли, что для того, чтобы его использовать для более-менее серьезных приложений у него должна быть возможность преобразовывать исходный код в нечитаемый для всех вид (закрыть его), а лучше компилировать в непосредственно выполняемые команды. То есть сделать специализированный компилятор LISP для AutoCAD. Идея не лучше и не хуже большинства других, рождающихся за рюмкой чая на посиделках программистов и научных сотрудников. И может быть так она и осталась в виде прототипа, который существовал бы в недрах слегка закрытого НИИ, но все уже менялось в СССР. Появилось СП (совместное предприятие) Параллель, которое стало первым партнером Autodesk. Сотрудники Параллели переводили AutoCAD на русский язык и начали его внедрять.
Возможно, что такого распространения AutoCAD в России не получил бы, если бы не талант Ричарда Хендисайда собирать вокруг себя интересных людей. Он верил, что для того, чтобы хорошо продать товар недостаточно его продемонстрировать, работе с ним надо научить. А так как у самого Autodesk тогда было совсем мало ресурсов, то надо искать партнеров, чем больше, тем лучше, надо расширять круг тех, кто поможет приспособить AutoCAD к местным условиям. И он стал помогать местным разработчикам показывать свои программы на выставках. Для этого Autodesk предоставлял места на своих стендах небольшим фирмам, которые предлагали то, что помогало AutoCAD. Это были производители графической периферии и программного обеспечения, комплиментарного AutoCAD. В СССР это были программы, железо “Сделано в СССР” было совсем не передовым. В один из приездов Ричарда его познакомили с парой Петровых. У них на тот момент не было законченного решения для компиляции и выполнения LISP-программ для AutoCAD, но они гарантировали, если получат доступ к внутренним функциям AutoCAD, то смогут сделать это в очень ограниченные сроки. Даже если они не получат доступ, то тоже смогут, но это будет чуть дольше.
А дальше было вот что. Ричард обсудил эту идею с другими отцами-основателями и двое Петровых отправились в Сосалито, Калифорния доводить свое решение до релиза. Надо сказать, что они уже к этому времени взломали код AutoCAD и смогли подключать откомпилированные модули LISP напрямую, но об этом Ричарду не сказали. Все, что требовалось, это на самом деле была скорее отладка, чем доработка. В общем они сделали все за рекордный срок и в основном посвятили свою длительную командировку изучению жизни аборигенов Кремниевой долины.
Примерно такие виды изучали Петровы, гуляя по Сосалито
Возможно это был первый случай, когда Autodesk заплатил российским разработчикам за использование их программных компонентов в AutoCAD. Но самое интересное, что это был не последний контракт Петровых по продаже Autodesk компонентов для работе с AutoLISP. То, что было сделано, обеспечило защиту исходного кода сторонних разработчиков. Они теперь могли продавать свои программы, написанные на LISP не опасаясь, что результаты их труда можно будет легко скопировать. Число энтузиастов AutoCAD начало стремительно расти, стало зарождаться международное сообщество разработчиков AutoCAD. Благодаря компилятору LISP-программы выполнялись намного быстрее и с их помощью стало возможным совершать вполне серьезные вычисления. А два русских парня по фамилии Петров, каждый по своему преодолевали начало эпохи перемен. Тихая заводь, которой был СССР, превратилась в бурлящий водоворот 90-х, когда преподаватели кафедр, кандидаты технических наук по САПР торговали на рынках в свободные от посещений дни, открывали кооперативы по продаже персональных компьютеров, тушенки, сигарет и до последнего пытались получить хоть какое-то финансирование своих проектов от родного государства или зарубежных компаний, но в конце-концов просто уезжали из страны, пополняя русскую диаспору в Parametric Technologies, Microsoft, Apple…
Autodesk Петровых не забывал, контракт на техническую поддерку с ними по началу не был подписан, поэтому они еще несколько раз получали заказы на адаптацию своего кода под каждую следующую версию AutoCAD. Не удивлюсь, если окажется, что такой выгодный для Петровых контракт и слегка невыгодный — для Autodesk был сделан Ричардом Хендисайдом намеренно, поскольку в то время никто в СССР не имел ни малейшего понятия, сколько на самом деле стоит их квалификация. И чтобы те три копейки, полученные по первоначальному контракту не стали бусами для папуасов, взамен за которые был получен золотой слиток, Хендисайд подложил небольшую бомбу под финансовый департамент Autodesk, в результате чего временный творческий коллектив Петров+Петров получал все более серьезные контракты на доработку однажды проданного кода.
Это мои домыслы, но Ричард Хендисайд — это один из немногих бизнесменов, с кем меня сталкивала судьба, и который вызывал чувство безусловного уважения как человек, поэтому возможно, что все было именно так.
VisualLISP или Петров возвращается
Удивительным в этой истории с Петровым и Autodesk является то, что она не закончилась с появлением программного интерфейса к AutoCAD на языке С, AutoLISP выжил. Даже переход AutoCAD с DOS на Windows и использование большого числа инструментов, имеющихся в Windows, не превратил LISP в пережиток прошлого. Слишком много разработчиков и продвинутых пользователей AutoCAD “подсели” на LISP. Они научились обходить ограничения, присущие реализации AutoLISP, поняли преимущества, которые дает интерпретируемый язык, оценили его гибкость при абсолютном минимуме синтаксиса.
Принудительное расставание с ключевым отцом-основателем, архитектором экзотических программных интерфейсов AutoCAD: AutoLISP, Diesel и DCL, Джоном Уолкером не помогло избавить AutoCAD ото всех странных средств разработки, более того они в полулетаргическом состоянии дожили и до наших дней. Кстати, хорошо, что Уолкер не успел внедрить объектно-ориентированную среду для разработки приложений на основе языка с обратной польской записью Forth, вместо C++, как он собирался. Это стало бы кошмаром для разработчиков.
А тогда, во второй половине 90х среди основных пожеланий пользователей было требование современной среды разработки для AutoLISP. Напрасно Autodesk уговаривал сообщество разработчиков переходить на Visual Studio, грехи прошлого в виде тысяч строк, написанных на AutoLISP тянули назад. А Microsoft не торопился добавлять LISP в число поддерживаемых Visual Studio языков. Как пелось в популярной в те времена песенке: “I need a hero!” Нужен был былинный богатырь, который спасет всех — Autodesk от несвойственной им разработки по созданию современной среды программирования и отладки для языка, доставшегося им в наследство от эксцентричного Уолкера и пользователей-разработчиков, вынужденных использовать инструменты из прошлого компьютерного века для написания и отладки программ на LISP. Воистину “I need a hero!” И Россия откликнулась на этот зов.
Водоворот 90х разорвал творческий коллектив Петровых на компоненты. Петр Петров решил попытаться реализовать великую американскую мечту и отправился в США, чтобы стать еще одним из тех русских, которые создают превосходство американского САПР. На этот раз все было по-взрослому. Была открыта компания Basis Software Inc., которая занималась в основном чем вы думаете? Правильно, она разрабатывала современную среду визуального программирования на LISP — Vital-LISP! К слову это был не единственный проект, более того, это был на самом деле побочный результат, но… Они хотели сделать ту самую точку опоры, которая была нужна Архимеду, для того чтобы перевернуть Землю. К сожалению планка была поставлена слишком высоко, поэтому мы уже никогда не узнаем, что произошло бы с САПР, если бы Basis Software удалось реализовать задуманное.
Однако первый компонент был создан — визуальная среда программирования на LISP, но деньги стали заканчиваться, финансирование для продолжения проекта было неоткуда взять. И старый друг оказался лучше новых двух — Autodesk увидел в разработке от Basis Software решение всех своих проблем. Они купили Vital-LISP, переименовали его в VisualLISP и включили в AutoCAD. Огромное число пользователей по всему миру вновь почувствовало себя комфортно, не только AutoCAD идет в ногу с со временем, но и старичок AutoLISP нарядился по последней моде от Microsoft.
Да, Петя Петров опять сделал это, он опять продал свой LISP Autodesk. А вы говорите, что снаряды не падают два раза в одну воронку, или что в одну реку нельзя два раза войти. Все возможно, если за это возьмется Петр Петров!