Краткая, неполная и вымышленная история языков программирования

Original author: James Iry
  • Translation
1801 — Иосиф Мария Жаккард с помощью перфокарт вышивает «hello world» на ткани. Хабровчане тех времен недовольны отсутствием хвостовой рекурсии, многопоточности и заглавных букв.

1842 — Ада Лавлейс пишет первую программу. Её успехам препятствует маленькая проблемка — компьютера для исполнения этой программы ещё не изобрели. Через полтора века архитекторы корпоративных приложений переймут технику Ады по написанию неисполняемых программ и назовут этот метод UML.

1936 — Алан Тьюринг изобретает все языки, которые теоретически могут существовать, но не успевает запатентовать их — британская разведка делает из него суперагента.

1936 — Алонзо Черч тоже изобретает все возможные языки, только лучше. Его лямбда-исчисление непопулярно, потому что непохоже на С. Критиков не смущает, что язык С еще не изобрели.

1940-е — Различные «компьютеры» «программируют», паяя провода и замыкая контакты. Вот на что готовы инженеры, чтобы не ввязываться в дебаты «пробелы или табуляция».

1957 — Джон Бакус и IBM изобретают Фортран. По поводу IBM и Фортрана не шутят. Компилятор Фортрана выдает ошибку, если на программисте нет галстука.

1958 — Джон МакКарти и Пол Грэм придумывают ЛИСП. Популярности ЛИСПа мешает истощение мировых запасов круглых скобок. /* к счастью, запасы фигурных и угловых скобок практически неисчерпаемы */ Тем не менее, ЛИСП (в наше время известный как Лисп, иногда Arc) — общепризнанный стандарт в области «фундаментальных концепций информационных технологий, таких как рекурсия и снисхождение»

1959 — Проиграв пари Л. Рону Хаббарду, кучка садистов во главе с Грейс Хоппер создают Квинтэссенцию Отвратительно Болезненного Отсутствия Логики (КОБОЛ). Много лет спустя, наивно рассчитывая отомстить адмиралу, на конференциях по Руби проводят оскорбительные для женщин презентации.

1964 — Джон Кемни и Томас Курц пишут БЕЙСИК, неструктурированный язык для людей, не разбирающихся в программировании.

1965 — Кемни и Курц ИДУТ НА 1964

1970 — Гай Стил и Джеральд Зюсман создают Схему. В результате их усилий появляется "Всемогущая Лямбда", а затем «Всемогущая Лямбда, Универсальная Мультиварка». На основе этой книги запускают длинную, но абсолютно непопулярную серию ночных телемагазинов. Долгое время лямбды прозябают в неизвестности. Лямбды вновь становятся популярными после того, как их не включают в Яву.

1970 — Никлас Вирт создает процедурный язык Паскаль. Многие недовольны отличным от С синтаксисом оператора присваивания. Критиков не смущает, что язык С еще не изобрели.

1972 — Деннис Ричи изобретает пистолет, стреляющий в обе стороны одновременно. Не удовлетворенный числом смертей и увечий, приносимых этим устройством, он создает язык С и Юникс.

1972 — Ален Колмеро изобретает логический язык Пролог. Задача-максимум ученого — наделить компьютер интеллектом двухлетнего ребенка. Он блестяще справляется с задачей, написав программу, отвечающую «Нет!» на любой запрос.

1973 — Робин Милнер пишет МЛ, язык на основе теории типов M&M. МЛ порождает СМЛ, обладающий формально описанной семантикой. При попытке формализации описания семантики формальной семантики Милнер гибнет от взрыва мозга. В число языков семейства МЛ входят OCaml, F# и Visual Basic.

1980 — Алан Кей пишет Smalltalk и придумывает термин «объектно-ориентированный». На просьбу объяснить он отвечает «Программы в ООП — просто объекты». На вопрос, из чего состоят объекты, он отвечает «из объектов» и объясняет «все состоит из объектов, в том числе и объекты. И стоит на четырех слонах.»

1983 — Бьёрн Страуструп берет язык С, лепит поверх него все, что приходит на ум, и называет это С++. Чтобы программы скомпилировались за разумное время, их приходится отправлять в будущее искусственному интеллекту Скайнет. Зачем это нужно Скайнету, неясно. На все вопросы голос из будущего отвечает с австрийским акцентом «не волнуйся, детка». Есть мнение, что Скайнет — всего лишь возгордившееся переполнение буфера.

1986 — Брэд Кокс и Том Лав придумывают Objective-C. По их словам, он «сочетает безопасность С с невероятной скоростью Smalltalk». Современные историки относят это высказывание на счет косноязычия авторов.

1987 — Ларри Волл засыпает на клавиатуре. Проснувшись, он принимает строку на мониторе за программу на языке, который Господь предначертал написать своему пророку Ларри. Так появляется Перл.

1990 — Комиссия в составе Саймона Пейтон-Джонса, Пола Худака, Филиппа Водлера, Эштона Катчера и Общества по защите прав животных проектирует Хаскелл — чисто функциональный язык с ленивыми вычислениями. Многих сбивают с толку монады, необходимые в программах со сторонними эффектами. Водлер объясняет: «Монада — всего лишь моноид из категории эндофункторов, что может быть проще?»

1991 — Голландский программист Гвидо ван Россум отправляется в Аргентину. Перенеся загадочную операцию, он возвращается с шрамом на черепе, пишет Питон, толпы поклонников провозглашают его Пожизненным Диктатором, и он заявляет, что «есть только один способ». Польша нервничает.

1995 — Юкихиро Мацумото по прозвищу Безумный Матц пишет Руби, чтобы спасти Австралию от превращения в выжженную пустыню под властью банд дикарей на мотоциклах и Тины Тёрнер. Впоследствии истинный автор языка Девид Хайнемир Хансон дает языку новое имя — Ruby on Rails. [Упоминание о Мацумото не соответствует действительности. В следующем издании статьи его нужно исключить — DHH]

1995 — Брендан Эйк собирает ошибки всех известных языков, добавляет несколько новых и объединяет все в LiveScript. Через некоторое время язык переименовывают в JavaScript, чтобы воспользоваться популярностью языка Java. Через некоторое время язык переименовывают в ECMAScript, чтобы воспользоваться популярностью кожных заболеваний.

1996 — Джеймс Гослинг придумывает Яву. Ява — довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Sun громко провозглашает Java самым инновационным языком.

2001 — Андерс Хейлсберг придумывает C#. C# — довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Microsoft громко провозглашает C# самым инновационным языком.

2003 — Нетрезвый Мартин Одерский видит рекламу, в которой шоколад смешивают с ореховым маслом. Ему приходит в голову идея Скалы — языка, объединяющего объектно-ориентированный и функциональный подходы. Сторонники обоих подходов в возмущении объявляют о крестовом походе.
_________
Благодарю за помощь в переводе Юрия Куприянова и Ивана Игнатьева.

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 21

    0
    Хорошо написано!
    Про Перл и Руби понравилось особенно :)
      +2
      Мне тоже понравилось, оттого и перевел :)
      +2
      Улыбнуло, особенно про UML :-)
        +6
        ПоХаПэ забыли=) Думаю, про него можно написать тоже изрядную долю лулзов.
          +1
          В стиле автора можно было бы написать:

          1995 — Rasmus Lerdorf buids a home out of plywood and duct tape. When he decides to blog about it, he invents PHP.

          1995 — Расмус Лердорф строит себе дом из фанеры, скрепляя ее клейкой лентой. Решив сделать об этом сайт, он по привычке создает PHP.
          0
          Спасибо, день начался хорошо!
            +2
            Про ПЕРл круто написали :) И ECMAscript понравился )
              +3
              О, вы вот еще что упустили — про становление функционального программирования:

              1924 г. — Впервые понятие комбинатора и основанная на нём теория были сформулированны М.И.Шейнфинкелем в работе Schonfinkel (1924) ещё до появления лямбда-исчисления. Вскоре после этого аналогичные результаты были получены Карри, независимо от Шейнфинкеля и Чёрча. Когда Карри ознакомился с работами Шейнфинкеля, он предпринял попытку с ним связаться, но к этому времени Шейнфинкель оказался в психиатрической лечебнице.

              Отсюда: Введение в функциональное программирование
                +1
                … и еще — про 2003 г. и Scala: абсолютно то же самое можно написать про 2001г., про Камила Скальски и его Nemerle. Попытка оказалась настолько удачной, что ключевые фичи языка были спи%%ены позаимствованны фирмой Microsoft в ее новом языке F#.net.
                  +1
                  Какие, например?
                  Макросов там нет, а в остальном он на OCaml больше похож.
                    +1
                    В синтаксисе он да, на ML-семейство похож. Макросов нет — решили, видимо, не травмировать нежную психику девелоперов :)
                    А на Nemerle — кортежи, анонимные функции; типы функций и кортежей обозначаются в REPL или подсказках так же. Я после Nemerle на F# пересел, можно сказать, с минимумом напрягов.
                      +1
                      Всё это было задолго до Nemerle в том же OCaml.
                      Похож на Nemerle — да, позаимствовали оттуда — очень вряд ли. А вот синтаксис указания типа и типов кортежа как раз наоборот, в Nemerle взяли из OCaml, о чём написано в документации.
                        +1
                        Ну если учесть, что MS тщательно обходят Nemerle вниманием, но предложили тому же Скальски работу в MS Research как раз над выводом типов в функциональных языках для платформы .net, у меня появился вывод, что что-то позаимствуют :) Надеюсь, ошибался.
                  +1
                  Похоже, многие не заметили — это ПЕРЕВОД!

                  Советовать что-то добавить не надо. Или обращайтесь к автору — ссылка есть.
                    +1
                    Не сразу въехал про ИДУТ НА, при переводе потерялся исходный смысл фразы, но приобрелся ещё более тонкий новый смысл))
                      +1
                      Да, забыл добавить. Спасибо! Посмеялся от души :)
                      0
                      Хаха! Веселое пятничное утро!
                      • UFO just landed and posted this here
                          0
                          Порадовали :)
                            0
                            Java — 1995г.
                              0
                              Блин вот уж где применимо это «патсталом» и «ржунимагу», так это для описания этого поста :) Просто великолепно! Срочно в избранное!

                              Only users with full accounts can post comments. Log in, please.