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

в 13:52, , рубрики: перевод, переводы, Песочница, юмор, языки программирования, метки: , ,

Представляю вашему вниманию вольный перевод юмористической статьи James Iry «A Brief, Incomplete, and Mostly Wrong History of Programming Languages» — статья старая, и если кто-либо укажет на уже существующий перевод — буду очень благодарен, ибо сам не нашел.

1801 — Жозе́ф Мари Жаккар инструктирет ткацкий станок нанести «Hello World» на гобелен, используя перфокарты. Программисты того времени разочарованы отсутствием хвостовой оптимизации, параллельности и правильного отношения к заглавным буквам.

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

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

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

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

1957 — Джон Бэкус и IBM изобретают ФОРТРАН. Ничего смешного в словах IBM или ФОРТРАН нет. Компилятор выдаст ошибку если вы пишете на ФОРТРАНе, не одев синего галстука.

1958 — Джон Маккарти и Пол Грэм изобретают LISP. В связи с высокими издержками, вызванными послевоенным истощением стратегических запасов скобок, LISP так никогда и не становится популярным. Несмотря на забвение, LISP (а теперь и «Lisp», а иногда даже «Arc») остается влиятельным языком в «ключевых алгоритмических техниках, таких как рекурсия и снисхождение»

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

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

1965 — Кемени и Курц GOTO 1964.

1970 — Гай Стил и Джеральд Сассман изобретают Scheme. Их работы ведут к созданию серии публикаций «Совершенная Лямбда», вершиной которых является «Лямбда — Совершенная Кухонная Утварь». Эта публикация положена в основу долгоиграющей, но принципиально безуспешной гонки вечерних рекламных роликов. Лямбды канули в относительную безвестность, пока отсутствие лямбд в Java не сделало их снова популярными.

1970 — Николас Вирт вводит Паскаль, процедурный язык. Критики тотчас высказывают недовольство использованием выражений «x := x + y» вместо привычного всем Си-подобного «x = x + y». И критикам снова нет дела что язык Си еще даже не изобретен.

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

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

1973 — Робин Милнер создает ML, язык, основанный на теории типов M&M. ML порождает SML, который имеет формально описанную семантику. Когда Милнера просят уточнить формальную семантику формальной семантики, его голова взрывается. Другие хорошо известные языки из семейства ML это OCaml, F# и Visual Basic.

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

1983 — В честь способности Ады Ловлес писать программы которые никто ни разу не запустил, Джин Ичбиа в Министерстве Обороны США создает язык программирования «Ада». По причине отсутствия свидетельств того, что хоть одна действительно полезная или значительная программа написана на языке «Ада», историки искренне убеждены в исключительной общественной полезности языка, который держит тысячи контрактников армии за компьютером, подавляя их стремление к хулиганству и уличным дебошам.

1983 — Бьерн Страуструп низвергает все свои знания и домыслы на язык Си, в результате получая Си++. Написанные на нем программы так сложны, что их нужно отправлять в будущее, чтобы Скайнет скомпилировал их. Время компиляции растет в геометрической прогрессии. Остается неизвестным, что побуждает Скайнет участвовать в такой сомнительной деятельности, но парламентеры из будущего монотонным австрийским говором убеждают, что «не о чем беспокоиться, бейби».

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

1987 — Ларри Уолл засыпает и ударяет лбом Ларри Уолла по клавиатуре. Проснувшись, Ларри Уолл понимает что появившиеся на экране символы не случайны, а являются примером программы на языке, который по воле Бога Его пророк, Ларри Уолл, должен изобрести. Так рождается Perl.

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

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

1995 — В маленьком итальянском ресторанчике Расмусу Леодорфу является откровение о том, что спагетти в его тарелке представляют наиболее приближенную модель Всемирной Паутины, и что веб-приложениям стоило бы следовать архитектуре его модели. На обороте салфетки он воплощает Паутинно-Хаотическое Программирование (ПХП). Документация ПХП по сей день находится на той салфетке.

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

1996 — Брэндон Айх скрупулезно изучает все ошибки, когда-либо допущенные в дизайне языков программирования, изобретает несколько новых и создает LiveScript. После, пытаясь заработать на волне успеха Java, он переименовывает язык в JavaScript. Еще позже, пытаясь поймать волну популярности заболеваний кожи, переименовывает его в ECMAScript.

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

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

2003 — Пьяному в стельку Мартину Одерски, после просмотра рекламы арахисового масла, в которой чье-то масло попадает на чей-то шоколад, является откровение. Он создает Scala — язык, объединивший в себе подходы объектно-ориентированных и функциональных языков. Впоследствии, приверженцы обоих видов языков по очереди раздражаются и объявляют священную войну друг другу и Мартину.

Оригинал статьи на английском языке

Автор: zeveshe

Источник

Поделиться

* - обязательные к заполнению поля