Языки программирования как зеркало IT-столпотворения. Часть I
История языков программирования поневоле заставляет вспомнить историю вавилонского столпотворения из Писания, когда царь Нимрод бросил вызов Всевышнему, решив построить башню «вышиною до небес». Только на этот раз на кону стоит строительство башни «искусственного интеллекта», и IT-историки, как энтузиасты, так и профессионалы, пока не достигли консенсуса в вопросе — кто же был Нимродом в данном случае.
Одни считают им Чарлза Бэббиджа (или Карла Цузе, или Джона Неймана, или любого другого конструктора первых вычислительных машин). Другие — Джорджа Буля, теоретика математической логики, построенной на трех основных операциях: И, ИЛИ и НЕ (булевой алгебры). Третьи — теоретика «искусственного интеллекта» Алана Тьюринга. Четвертые склоняются в пользу Лейбница с его идеей создать на базе двоичной системы универсальный язык для объяснения явлений мира и использования во всех науках. Пятые копают глубже и указывают, что двоичными системами счисления, которая используется почти всеми современными компьютерами, пользовались еще в допотопные времена. Словом, даже в вопросе выбора кого-либо на роль IT-Нимрода возводится небольшая вавилонская башенка с заведомо известным результатом. Ведь таких людей в истории общения человека и бездушного «железа» было много, и каждый говорил с ним на своем языке.
Поучительна в этом плане история с изобретением «машины для сравнения идей», придуманной в 1832 году коллежским советником из МВД Семеном Корсаковым. Чиновник МВД николаевских времен в чине статского полковника, да еще с «Анной на шее» (орденом Св. Анны 2-й степени) скорее мог бы быть гоголевским персонажем. Но именно такой чиновник на трех страницах введения к своему изобретению четыре раза употребляет слово «интеллект», в те времена редкое и сугубо научное. Например, в словарях его современников Пушкина и Гоголя это слово начисто отсутствует. Да и сейчас не всегда можно встретить полковника полиции, столь свободно оперирующего этим понятием.
Главная мысль Корсакова состояла в том, что «письмо, как и любые другие графические средства, обращается к нашему разуму только через глаза, оно недоступно воздействию механических средств. Если же, напротив, мы выразим те же самые идеи посредством знаков, которые будут обладать реальной материальной основой, длиной, шириной и толщиной, то такие знаки будут не только восприниматься многими из наших чувств, но, что имеет гораздо большее значение, дадут нам возможность использовать специфические физические свойства каждого отдельного знака и сделать так, чтобы эти знаки служили для разрешения чисто интеллектуальных задач».
Задавал интеллектуальную задачу на понятном механическому средству языке Корсаков предельно простым способом. Это была система деревянных штырей, которые, проходя сквозь фестоны по краям перфокарт, в конечном итоге упирались в перфокарту с записанными на ней искомыми данными, и машина останавливалась. А на картах могли быть записаны данные персон, интересующих МВД, или, например, симптомы болезней и рекомендованные докторами лекарства от них. И эти же данные были продублированы в двоичной системе (есть дырка в краешке карты в определенном месте — нет там дырки), Всего непринципиально разных конструкций такой «интеллектуальной машины» Корсаков предложил пять (любой желающий может подробнее познакомится с ними, оригинал описания Корсаковым своего изобретения свободно доступен в интернете).
А штырь, похоже, действительно был хронологически первым средством общения человека с вычислительной машиной. Во всяком случае иного средства внешнего программирования в «суммирующей машине» Паскаля, изобретенной им в 1642 году, не было. Число, к которому надо было прибавить или отнять от него, фиксировалось штифтом, далее следовало повернуть зубчатое колесо по часовой стрелке, затем вводилось следующее число, и суммирование шло автоматически. Все остальное «программирование» было намертво зашито в форму деталей и передач устройства. Кстати, Паскаль в 1649 году получил на свой арифмометр «королевскую привилегию», то есть патент по современной терминологии. Правда, богатства «суммирующая машина» ему не принесла, слишком сложной и дорогой она была в изготовлении.
В XVIII веке Лейбниц усовершенствовал арифмометр Паскаля с помощью ступенчатых валиков, что позволяло не только складывать и вычитать, как в арифмометре Паскаля, а производить все четыре арифметических действия. Следом за ним немецкий инженер Иоганн Мюллер «научил» арифмометр своей конструкции вычислять и даже печатать на бумаге арифметическую прогрессию. Говоря современным языком, «софт» в арифмометрах Паскаля, Лейбница, Мюллера был запрограммирован в их конструкции, а их «программистами» выступали либо сами изобретатели, собственноручно вытачивавшие шестеренки, рычаги, валики нужной конфигурации, либо нанятые ими мастера.
Гибкий, как выражаются историки техники, а лучше сказать — внешний софт для управления механизмами появился не в вычислительных машинах, а в обычном ткацком станке. В 1804 году лионский ткач Жозеф Жаккар продемонстрировал изобретенный им педальный станок, который сам ткал узорчатый шелк, а мастер лишь менял на входе в него перфокарты, регулировавшие порядок подачи разноцветных нитей пряжи. Точнее это была перфолента (перфокарты у Жаккара были соединены в цепочку), которая задавала алгоритм рисунка на ткани. Наполеон в 1805 году во время визита в Лион видел этот станок в работе, но королевская (точнее уже императорская на тот момент) привилегия на изобретение была дарована не Жаккару, городу Лиону.
То ли император не понял, что перед ним сам изобретатель станка с программным управлением, а не дежурный ткач, то ли сделал это специально. Если верно последнее, то никто иной, а сам Бонапарт был предтечей современного патентного права на программное обеспечение. Но об этом будет сказано ниже, а возвращаясь в Лион, надо сказать, что пилюлю Жаккару подсластили персональной пенсией в 3 тысячи франков в год (сумма по тем временам приличная, но не ахти какая большая) с выплатой роялти за каждый проданный его станок. Правда, с 1812 года, когда число его станков с «программным обеспечением» перевалило за 10 тысяч, роялти Жаккару платить перестали. А он прожил после этого еще 22 года и умер в почтенном возрасте 82 лет.
Семен Корсаков, подавая описание своей «машины для сравнения идей» на рассмотрение Императорской Санкт-Петербургской академии наук, тоже фактически подавал заявку на изобретение. Во всяком случае в сопроводительном письме на имя и.о. президента академии Николая Фусса он писал: «Я надеюсь, милостивый государь, что Академия сумеет оценить побуждение, заставляющее меня добровольно отказаться от преимуществ исключительной привилегии, которой я имел бы право требовать на использование способа, до сих пор неизвестного».
Специально созданная комиссия академиков оценила изобретение Корсакова как бесперспективное, закончив свой отзыв словами: «Г-н Корсаков потратил слишком много разума на то, чтобы научить других обходиться без разума». В отзыве академиков явно намерено термин «интеллект» заменен на общеупотребительное слово «разум», и эта фраза в отзыве не делает им чести, в научной переписке подобное всегда считалось моветоном.
В 1887 году американский инженер Герман Холлерит подал патентную заявку с довольно необычным для патентного права названием «Искусство компоновки статистики» («Art of compiling statistics»), а в январе 1889 года получил патент США №395781 на свой электромеханический вариант «машины для сравнения идей» Семена Корсакова с теми же перфокартами и штырями (их роль выполняли электромагнитные реле), один в один, в чем любой может убедиться (об этом изобретении мы писали в нашем предыдущем материале). Все остальные новации Холлерита принципиально вторичны, они лишь отражают технологический прогресс в области электромеханики.
О Семене Корсакове Холлерит не знал, он делал свою машину по заказу Бюро переписи населения для всеобщей переписи 1890 года на деньги, выделенные на это благое дело мультимиллионером Карнеги. Но в отличие от Корсакова благодушием он не страдал, а использовал свое изобретение по полной. Для начала опубликовал его в виде статьи в «Ежеквартальном отчете Горной школы Колумбийского университета (1889 г.). А в следующем 1890 году защитил в виде диссертации на соискание степени доктора (кандидата по-нашему) наук в том же Колумбийском университете. А потом основал Tabulating Machine Company, которая продавала и сдавала в аренду его машины для переписи населения (в числе прочих его купила и Российская империя для переписи 1897 года). А в итоге в результате череды слияний и поглощений его компания вошла в Computing-Tabulating-Recording Company, ныне известную как IBM.
Дальнейшее развитие счетно-перфорационной техники шло уже по ее собственной траектории. А попытки пробудить интеллект в бездушной машине с помощью цифрового эсперанто, состоящего из двух слов (Да и НЕТ) продолжались еще долго. Люди старшего поколения помнят стопки перфокарт и перфоленты для первых ЭВМ. Но раньше, в первой половине XIX века Чарльзом Бэббиджем была предпринята еще одна попытка построить супер-арифмометр, тоже механический, из шестеренок и рычагов, как и арифмометры Паскаля, Лейбница, Мюллера, но более мощный, способный решать по известному методу разностей дифференциальные уравнения и табулировать многочлены.
Практической же целью «Разностной машины» («Difference engine») Бэббиджа было вычисление и распечатка тригонометрических, логарифмических таблиц, сложных процентов и прочих полезных во многих областях данных. Его работа довольно щедро финансировалась правительством, и по ходу дела Бэббидж решил заодно построить более продвинутую «Аналитическую машину» («Analytical Engine»).
Между тем, расходы на строительство машин Бэббиджа росли, а конечного результата все не было. В 1842 и 1843 гг. профессор Бэббидж как минимум три раза встречался с премьер-министром Великобритании Робертом Пилем, разговоры между ними, по воспоминаниям Бэббиджа, были неприятными, а в конечном итоге сэр Роберт Пиль публично заявил: «Что нам делать, чтобы избавиться от мистера Бэббиджа и его счетной машины? Наверняка, если бы это было завершено, то было бы бесполезно с точки зрения науки». На этом бюджетный денежный поток Бэббиджу был перекрыт.
Правда, сэр Роберт Пиль ошибался. Как раз с точки зрения науки Бэббидж разработал вполне современный компьютер, программируемый перфокартами, обладавший всей «полнотой по Тьюрингу». Наверное, Бэббидж мог бы даже построить его, если бы продолжалось финансирование проекта. Но серийно производить механические «аналитические движки», работающие на паровой тяге, было бы слишком долго и дорого. Проект Бэббиджа, как известно, угас, не дойдя до финиша, его реинкарнация стала возможной только в эпоху электричества. А помимо «железа», эта машина Бэббиджа оставила в IT-истории еще свой «софт» и первого программиста, точнее программистку современного типа.
О молодой поклоннице идей Бэббиджа Аде Лавлейс (в девичестве Байрон) написано много, все-таки дочь лорда Байрона! Да и компьютерное хобби баронессы Кинг, графини Лавлейс выглядит более чем экзотическим. Задним числом многие современные историки IT-технологий писали и сейчас пишут, что она была недостаточно образована, чтобы быть компетентной в таких делах (домашнее образование для девочек и никаких университетов), что она была всего лишь чересчур восторженной ассистенткой профессора Бэббиджа. Но у ее современников, в том числе ученых, похоже, было иное мнение.
Иначе как объяснить то, что ее «Заметки» были опубликованы в виде монографии в издательстве Taylor Scientific Memoirs, где публиковали свои труды члены Лондонского Королевского общества (то есть академики того времени), и потом переведены на французский и опубликованы в академическом журнале Bibliothèque universelle de Genève. Там среди прочего «малообразованная светская барыня» Ада Лавлейс писала: «Аналитическая машина» не имеет ничего общего с простыми «калькуляторными машинами». … Позволяя механизму объединять общие символы в последовательности неограниченного разнообразия и протяженности, устанавливается объединяющая связь между операциями материи и абстрактными мыслительными процессами самой абстрактной отрасли математической науки. Разработан новый, обширный и мощный язык для будущего использования анализа».
Что касается «нового языка», то она написала на нем всего одну конкретную программу (вычисление чисел Бернулли) , которую уже в наше время перекодировали в Фортран и в 1978 году загрузили в Дубне в БЭСМ-6. Там оказалась только одна ошибка, если бы «аналитический движок» Бэббиджа работал, графиня сама бы легко ее обнаружила и поправила. В ее честь один из современных языков программирования назван «Ада». Да и вообще, в начальный период программирования роль женщин была значительнее, чем может показаться.
В 1943 году в США к программированию первого электронного компьютера ENIAC были привлечены жены теоретиков проекта Джона фон Неймана и Германа Гольдстайна, а также супруга Эдварда Теллера, будущего «отца водородной бомбы». Подпускать посторонних к гостайне было нежелательно, а их жены имели математическое образование. В 1946 году в «группу жен» привлекли еще шесть женщин-математиков, проверенных ФБР.
В создании ПО для советского аналога ENIAC сначала участвовала только одна женщина — Екатерина Ющенко, да и та дочь «врагов народа», в 1937 году исключенная за это с первого курса Киевского университета, доучившаяся до диплома в Самаркандском университете и устроившаяся на работу взрывником в узбекской шахте. Но когда в 1946 году потребовались специалисты для создания машинного языка, Ющенко возглавила в Киеве группу из 12 женщин-программистов первой советской ЭВМ, стала доктором наук, членом-корреспондентом АН УСССР, лауреатом правительственных премий и соавтором первого в нашей стране учебника по программированию. А потом с ней повторилась история с Адой Лавлейс, только в виде фарса. Если та затерялась в истории в грандиозной тени своего отца поэта Байрона, то гордость советской IT-науки к тому времени уже покойная Екатерина Ющенко оказалась в карикатурной тени «украинки» Катерины Ющенко — гражданки США Кэтрин Клер Ющенко, второй жены президента Виктора Ющенко. Две Катерины Ющенко для новейшей истории Украины были бы чересчур тяжким грузом. Почти забыта сейчас и Кэтлин Бут, которая была разработчиком и дизайнером первого языка ассемблера — автокода для ранних, еще ламповых компьютеров.
О современных программах и попытках их патентования мы поговорим в следующем материале.
В нашем Телеграм-канале мы разыгрываем бесплатную регистрацию товарного знакаи другие призы. Проходите по ссылке и принимайте участие!
Дарим скидку 4000 рублей при первом обращении на любую услугу onlinepatent.ru
Промокод: LOVEHABR