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

1801 - С помощью ткацкого станка и перфокарт Жозеф Мари Жаккар выводит "привет мир!" на ткани. Современники не впечатлены: нет хвостовой рекурсии, параллелизма и заглавных букв.

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

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

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

1940-е - Инженеры "программируют" различные "компьютеры" с использованием проводов и переключателей, что бы не спорить на тему "табуляция против пробелов".

1957 -Джон Бэкус в IBM создает FORTRAN. В IBM и FORTRAN нет ничего смешного. Это синтаксическая ошибка - писать слово FORTRAN без галстука.

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

1959 - Несколько проспоривших Рону Хаббарду садистов во главе с Грейс Хоппер изобретают многобуквенно-ориентированный язык COBOL. Годами позже, в бессмысленных и сексистских попытках отомстить адмиралу Хоппер, участники конференций по Ruby выступают с женоненавистническими докладами.

1964 - Джон Ке́мени и Томас Курц создают BASIC, неструктурированный язык программирования для незнакомых с компьютером ученых.

1965 - Кемени и Курц переносятся в 1964

1970 - Гай Стил и Джералд Сассман создают Scheme, что приводит к появлению серии статей "Лямбда - идеальная", завершившейся статьей "Лямбда - идеальная кухонная посуда" . Последняя породила длинную, но не особо успешную серию телемагазинов. Лямбды почти забыли, популярность к ним вернулась только после того, как их не включили в Java.

1970 - Никлаус Вирт создает процедурный язык Pascal. Его немедленно раскритиковали за то, что он использует синтаксис "x := x + y" вместо хорошо знакомого C-подобного синтаксиса "x = x + y". Критикам ничуть не мешал тот факт, что C еще не изобрели.

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

1972 - Алан Колмерауэр конструирует логический язык Prolog. Его целью было создание языка с интеллектом двухлетнего ребенка. Достижение цели подтверждено демонстрацией сессии Prolog, отвечавшей "Нет" на любой запрос.

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

1980 - Алан Кэй создает Smalltalk и изобретает термин "объектно-ориентированный". На вопрос "что это значит?" он отвечает: "Программы на Smalltalk - объекты". На "из чего состоят объекты?" - "из объектов". На повторный вопрос - "объекты - все, на всю глубину, вплоть до черепах".

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

1983 -Бьёрн Страуструп собирает воедино все когда-либо слышанное о C и создает C++. Язык получился настолько сложный, что программы приходится отсылать в будущее, для компиляции искусственным интеллектом SkyNet, что замедляет разработку. Пока непонятно, почему SkyNet предоставляет подобные услуги, но представители будущего считают, что "не о чем беспокоиться, детка" - произнося это с австрийским акцентом. Существует гипотеза, что Skynet - это не более чем обнаглевшее переполнение буфера.

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

1987 - Заснувший Ларри Волл упирается лбом Ларри Волла в клавиатуру. Проснувшись, Ларии Волл решает, что строка на мониторе Ларри Волла не случайна, это пример программы на новом языке, который бог повелевает создать своему пророку Ларри Воллу. Появляется Perl.

1990 - Комитет, основанный Саймоном Пейтон-Джонсом, Полем Худаком, Филипом Вадлером, Аштоном Кутчером и "Людьми за этичное обращение с животными" создает чистый, невзыскательный, функциональный язык программирования Haskell. Сложность использования монад для управления сторонними эффектами вызывает недовольство. Вадлер пытается успокоить критиков: "монада, это моноид в категории эндофункторов, в чем трудность?"

1991 - датский программист Гвидо ван Россум совершает загадочное путешествие в Аргентину. Вернувшись с большим шрамом на черепе он изобретает Python, провозглашается Повелителем Жизни легионами поклонников и объявляет, что "существует только один способ делать это". Польша нервничает.

1995 - Сидя в итальянском ресторане рядом с домом, Расмус Лердорф осознает, что тарелка со спагетти является отличной схемой всемирной паутины, под которую необходимо подстраиваться веб-приложениям. На обратной стороне салфетки он конструирует Програмируемую Гиперссылочную Пасту (Programmable Hyperlinked Pasta - PHP). Вся документация к PHP до сих пор хранится на этой салфетке.

1995 - Чтобы предотвратить загадочный апокалипсис, после которого Австралия превратиться в пустыню, населенную воинами с ирокезами и Тиной Тернер, Юкихиро "Mad Matz" Матсумото создает Ruby. Чуть позже настоящий изобретатель языка Дэвид Хейнемейер Ханссон переименовывает его в Ruby on Rails. [Описание изобретения Ruby Матсумотой неверно и будет удалено при следующей правке]

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

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

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

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

Перевод с английского. Исходник: A Brief, Incomplete, and Mostly Wrong History of Programming Languages


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>