Дейкстра: Величайшей победой Запада в холодной войне над СССР был переход на IBM — myth busted
Начнем с этой всем известной фразы. Итак, были отечественные крутые теплые ламповые (часто в буквальном смысле) наработки, уникальные, созданные талантами. А потом руководство завело бульдозер, который срыл все это подчистую, и засадил все безликими IBM. Так меня учили. Но по мере того, как мне попадались старые книги по программированию (а отчасти я сам свидетель той эпохи — о СССР я знаю не по рассказам), эта картина стала рушиться. У меня сейчас под рукой три книги, и мы используем их. Итак:
«Счетные» машины
Начнем с этой книжки, датированной 75 годом. В СССР компьютеров не было, были ЭВМ (электронно-вычислительные машины), но ЭВМ — это позднее сокращение, ранее машины были счетными. Например, знаменитая БЭСМ — это Большая Электронно-Счетная машина. Счетная — это для вычислений, и только для них. Про БЭСМ-4, к которой мы еще вернемся, вики правильно утверждает "Арифметика с фиксированной запятой — рудиментарная, для целей адресной арифметики". Кому нужен этот int, float наше все.
Но давайте откроем книжку и посмотрим, какие задачи предлагалось решать читателю:
Конечно, в основном Algol-60 и был предназначен для расчетов, однако возьмем, для сравнения, русский перевод книги (перевод сделан в 67 году, а сама книга, как видно, 62го года)
Вот о чем тут думают:
И какие примеры приводят:
А вот, кстати, 1C из 1962 года:
Так как бухгалтерия — это всегда int (центов, копеек), то зарплату инженерам, обслуживающим машины БЭСМ всегда считали тетеньки из бухгалтерии — на счетах и арифмометрах. В частности, потому что арифметика целых — рудиментарная (см. выше).
Ну и как успехи с расчетами?
Пусть БЭСМ были ориентированы на расчеты. Ну так сложилось. Давайте посмотрим, что из расчетов, произведенных в СССР, вошло в историю. Выборка тенденциозная, но тем не менее.
Давайте заглянем сюда: Chronology of computation of PI и попытаемся найти БЭСМ:
Может, попробуем «святой грааль» математики, гипотезу Римана и посмотрим расчет нетривиальных нулей зэта-функции?
и снова мимо… Я буду рад, если вы найдете пример, опровергающий эту статью.
Гениальные самоделкины.
Теперь посмотрим, как дело обстояло с софтом. В помощь нам эта замечательная книга 67 года:
Вот пример программирования (и, конечно же, это снова расчет):
Это 67 год… Может быть, еще не были распространены языки высокоуровневого программирования? Снова берем переводную книгу 62 года:
FORTRAN где-то у основания… Это 57 год, кстати. Названия большинства языков мне ни о чем не говорят кроме того, что шло их активное развитие. Возвращаемся к БЭСМ-4:
Вас может заинтересовать, что такое тут k, a, c, d и почему их с чем-то складывают. Поясню. Так как программу можно было расположить с произвольного адреса (k), то в данном случае при программировании в кодах вам еще предлагают поработать линкером адресов. И это 67 год.
Погуляв по википедии видно, что, если создание ЭВМ, пусть даже в небольшом количестве экземпляров, было в СССР промышленностью, создание софта было гениальной сельской самодеятельностью. Компилятор Васи Пупкина в таком то институте, компилятор Пети Пупкина в другом. Да, это было очень сложно, да, хвала им, но это НЕ промышленность. Гениальные самоделкины в гараже, создающие единичные экземпляры авто без сервиса, без поддержки, завязанные на единичные таланты — это не автомобильная промышленность.
Что касается компьютерной техники СССР вообще (hardware+software), то сравнение с автомобилями очень подходит. Да, в общем, автомобили в СССР были, и да, в общем, они ездили. Салон для суровых мужиков, но едет. Особенно по бездорожью.
Само же событие по переходу на IBM (на самом деле еще и на PDP для младших моделей) подобно закупке у итальянцев линии по производству ВАЗа. Сейчас ясно, что это сильно подстегнуло промышленность. Так и в отношении ЭВМ. На ЕС ЭВМ наконец стали считать зарплату (потому что там была двоично-десятичная арифметика) и работать с символами (потому что там были байты! а не 43-битные слова: для одно символа места слишком много, а упаковывать и распаковывать — замучаешься). Мы получили
И еще две вещи в конце. Мои выборки малы, поэтому если у вас есть другие данные, другие книги — опровергайте меня, я буду только рад!
И ни в коем случае я не хочу принизить роль индивидуальностей в те годы, которые на виснущем железе без отладчиков и терминалов отлаживали очень сложные программы, я сам краешком застал то время.