source: at-w96k/content/translations/history-of-programming-languages.org@ 5f1c100

Last change on this file since 5f1c100 was 5f1c100, checked in by Mikhail Kirillov <w96k@…>, on Jul 16, 2022 at 12:58:53 PM

Add translation article and update music.

  • Property mode set to 100644
File size: 18.7 KB
Line 
1#+TITLE: Краткая, неполная и по большей части неверная история языков программирования
2#+DATE: <2022-05-04 Ср>
3#+LANGUAGE: ru
4#+OPTIONS: toc:nil
5
6* Краткая, неполная и по большей части неверная история языков программирования
7 #+BEGIN_abstract
8 Данная юмористическая заметка является переводом и адаптацией заметки
9 James Iry. Не относитесь серьёзно к качеству перевода. Я дополнил
10 заметку ссылками, для того, чтобы было проще подробнее ознакомиться с
11 незнакомыми терминами и людьми. К сожалению некоторые фразы были
12 опущены. [[https://web.archive.org/web/20200426084021/https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html][Оригинал]].
13 #+END_abstract
14
15- 1801 :: [[https://ru.wikipedia.org/wiki/Жаккар,_Жозеф_Мари][Жозеф Мари Жаккар]] использует [[https://ru.wikipedia.org/wiki/Перфокарта][перфокарты]], чтобы заставить
16 ткацкий станок ткать "Привет Мир" на гобеленах. [[https://linux.org.ru/][ЛОР]]овцы того времени
17 были не впечатлены отсутствием обратной хвостовой рекурсии и
18 параллелизма.
19
20- 1841 :: [[https://ru.wikipedia.org/wiki/Лавлейс,_Ада][Ада Лавлейс]] пишет первую программу. Она сталкивается с
21 неудобствами, ведь у неё нет работающего компьютера, чтобы запустить
22 код. Энтерпрайз архитекторы позже изучат её техники для
23 программирования на [[https://ru.wikipedia.org/wiki/UML][UML]].
24
25- 1936 :: [[https://ru.wikipedia.org/wiki/Тьюринг,_Алан][Алан Тьюринг]] изобретает все языки программирования, которые
26 когда-либо будут существовать, но до того как смог их запатентовать,
27 он вскоре был завербован британской разведкой.
28
29- 1936 :: [[https://ru.wikipedia.org/wiki/%D0%A7%D1%91%D1%80%D1%87,_%D0%90%D0%BB%D0%BE%D0%BD%D0%B7%D0%BE][Алонзо Чёрч]] также изобретает все языки программирования,
30 которые когда-либо будут существовать, но делает это лучше. Его
31 [[https://ru.wikipedia.org/wiki/%D0%9B%D1%8F%D0%BC%D0%B1%D0%B4%D0%B0-%D0%B8%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5][лямбда-исчисление]] игнорируется, потому что оно недостаточно похоже на
32 язык Си. Эта критика происходит, не смотря на тот факт, что язык Си
33 ещё не изобретён.
34
35- 1940-ые :: Различные "компьютеры" "программируются" при помощи возни с
36 проводами и переключателями. Инженеры этим занимаются, чтобы не
37 участвовать в сраче "[[https://wiki.c2.com/?TabsVersusSpaces][табы против пробелов]]".
38
39- 1957 :: [[https://ru.wikipedia.org/wiki/%D0%91%D1%8D%D0%BA%D1%83%D1%81,_%D0%94%D0%B6%D0%BE%D0%BD][Джон Бэкус]] и IBM создают [[https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82%D1%80%D0%B0%D0%BD][Fortran]]. Нет ничего смешного в IBM и
40 Fortran. Это синтаксическая ошибка писать фортран, не надев синий
41 галстук.
42
43- 1958 :: [[https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BA%D0%BA%D0%B0%D1%80%D1%82%D0%B8,_%D0%94%D0%B6%D0%BE%D0%BD][Джон Маккарти]] и [[https://ru.wikipedia.org/wiki/%D0%93%D1%80%D1%8D%D0%BC,_%D0%9F%D0%BE%D0%BB][Пол Грэм]] изобретают [[https://ru.wikipedia.org/wiki/Lisp][LISP]]. Из-за больших
44 расходов, вызванных последствиями послевоенного опустошения
45 стратегического запаса скобок, LISP так и не становится популярным. Не
46 смотря на отсутствие популярности, LISP (теперь "Lisp" или иногда
47 "[[https://ru.wikipedia.org/wiki/Arc_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)][Arc]]") остаётся влияетельным языком в алгоритмических методах, таких
48 как рекурсия.
49
50- 1959 :: После проигранного пари у [[https://ru.wikipedia.org/wiki/Хаббард,_Лафайет_Рональд][Л. Роналда Хаббарда]], [[https://ru.wikipedia.org/wiki/Хоппер,_Грейс][Грейс Хоппер]] и
51 несколько других садистов изобретают Капитализацию Огромного
52 Бойлерплейт Ориентированного Языка ([[https://ru.wikipedia.org/wiki/Кобол][КОБОЛ]]. Под капитализацией имеют в
53 виду заглавные буквы). Спустя года, в ошибочном и сексистком возмездии
54 против работы товарища Хоппера, Ruby конференции часто представляют
55 женоненавистнечесткий материал.
56
57- 1964 :: [[https://ru.wikipedia.org/wiki/Кемени,_Джон_Джордж][Джон Кемени]] и [[https://ru.wikipedia.org/wiki/Курц,_Томас][Томас Курц]] создают [[https://ru.wikipedia.org/wiki/BASIC][BASIC]], неструктурный язык
58 программирования для не-компьютезированных учёных.
59
60- 1965 :: Кемени и Курц возвращаются в 1964-й.
61
62- 1970 :: [[https://en.wikipedia.org/wiki/Guy_L._Steele_Jr.][Гай Стил]] и [[https://en.wikipedia.org/wiki/Gerald_Jay_Sussman][Джеральд Сассман]] создают [[https://ru.wikipedia.org/wiki/Scheme][Scheme]]. Их работа ведёт к
63 созданию серии научных работ "[[https://lambda-the-ultimate.org][Lambda the Ultimate]]". Лямбды остаются
64 весьма неизвестными, пока Java не делает их популярными, просто не
65 имея их.
66
67- 1970 :: [[https://ru.wikipedia.org/wiki/Вирт,_Никлаус][Никлаус Вирт]] создаёт [[https://ru.wikipedia.org/wiki/Паскаль_(язык_программирования)][Паскаль]], процедурный язык. Критики
68 моментально отвергают Паскаль за использование "x := x + y" синтаксиса
69 вместо си-подобного "x = x + y". Эта критика происходит, не смотря на
70 тот факт, что язык Си ещё не изобретён.
71
72- 1972 :: [[https://ru.wikipedia.org/wiki/Ритчи,_Деннис][Деннис Ритчи]] изобретает мощный огнестрел, который стреляет
73 вперёд и назад одновременно. Не удовлетворённый количеством смертей и
74 неизлечимых травм от данного изобретения, он изобретает [[https://ru.wikipedia.org/wiki/Си_(язык_программирования)][Си]] и [[https://ru.wikipedia.org/wiki/Unix][Unix]].
75
76- 1972 :: [[https://en.wikipedia.org/wiki/Alain_Colmerauer][Ален Колмерауэр]] проектирует логический язык [[https://ru.wikipedia.org/wiki/Пролог_(язык_программирования)][Prolog]]. Его целью
77 было создать язык с интеллектом двухлетнего ребёнка. Он доказывает,
78 что достиг своей цели, демонстрацией Prolog сессии, которая возвращает
79 "Нет" на каждый запрос.
80
81- 1980 :: [[https://ru.wikipedia.org/wiki/Кэй,_Алан_Кёртис][Алан Кей]] создаёт [[https://ru.wikipedia.org/wiki/Smalltalk][Smalltalk]] и изобретает термин
82 "Объектно-ориентированный". Когда его спросили что же это значит, он
83 ответил: "Программы Smalltalk -- это просто объекты". Когда его
84 спросили из чего состоят объекты, он ответил: "Из объектов". Когда его
85 спросили снова: "Слушайте, это всё объекты от начала до конца. До тех
86 пор пока не доберётесь до черепашек."
87
88- 1983 :: В честь возможности [[https://ru.wikipedia.org/wiki/Лавлейс,_Ада][Ады Лавлейс]] создавать программы, которые
89 никогда не будут запущены, [[https://ru.wikipedia.org/wiki/Ишбиа,_Жан][Жан Ишбиа]] и департамент безопасности США
90 создают язык программирования [[https://ru.wikipedia.org/wiki/Ада_(язык_программирования)][Ada]]. В связи с отсутствием доказательств
91 того, что какая-либо значительная Ada программа хоть раз завершилась,
92 историки верят, что Ada была успешной общественной инициативой, так
93 как она спасает тысячи подрядчиков оборонных предприятий от вступления
94 в преступные группировки.
95
96- 1983 :: [[https://ru.wikipedia.org/wiki/Страуструп,_Бьёрн][Бьёрн Страуструп]] переносит всё о чём он когда-либо слышал на
97 [[https://ru.wikipedia.org/wiki/Си_(язык_программирования)][C]], чтобы затем создать [[https://ru.wikipedia.org/wiki/C%2B%2B][C++]]. Получившийся язык настолько сложен, что
98 программы должны быть отправлены в будущее, чтобы их собрал [[https://ru.wikipedia.org/wiki/Скайнет][ИИ
99 Skynet]]. Страдает время сборки. Мотив Скайнета предоставлять услуги по
100 сборки остаются неизвестны, но представители из будущего говорят
101 "Здесь не о чём беспокоиться, детка." австрийским монотонным
102 акцентом. Есть предположении, что Скайнет это результат [[https://ru.wikipedia.org/wiki/Переполнение_буфера][переполнения
103 буфера]].
104
105- 1986 :: [[https://ru.wikipedia.org/wiki/Кокс,_Брэд][Брэд Кокс]] и Том Лав создают [[https://ru.wikipedia.org/wiki/Objective-C][Objective C]], анонсируя "Этот язык
106 имеет всю безопасность доступа к памяти из C смешанный с невероятной
107 скоростью Smalltalk". Современные историки подозревают, что оба
108 страдали дислексией.
109
110- 1987 :: [[https://ru.wikipedia.org/wiki/Уолл,_Ларри][Ларри Уолл]] засыпает и бьётся лбом Ларри Уолла об
111 клавиатуру. Проснувшись, Ларри Уолл решает, что строка на мониторе
112 Ларри Уолла не состоит из случайных символов, а это пример программы
113 на языке программирования, который Господь хочет своего пророка, Ларри
114 Уолла, заставить спроектировать. Так был рождён [[https://ru.wikipedia.org/wiki/Perl][Perl]].
115
116- 1990 :: Комитет, созданный [[https://ru.wikipedia.org/wiki/Пейтон-Джонс,_Саймон][Саймоном Пейтон-Джонсом]], Полом Хадаком,
117 Филиппом Уодлером, а также [[https://ru.wikipedia.org/wiki/Люди_за_этичное_обращение_с_животными][людьми за этичное обращение с животными]],
118 создаёт [[https://ru.wikipedia.org/wiki/Haskell][Haskell]], [[https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D1%82%D0%BE%D1%82%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F][чистый]], нестрогий, функциональный язык. Haskell
119 испытывает некоторое непринятие из-за сложности использования [[https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BD%D0%B0%D0%B4%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)][монад]]
120 для контроля [[https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B1%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)][побочных эффектов]]. Уодлер пытается угодить критикам
121 объяснением, что монада -- это моноид в категории эндорфункторов, в
122 чём проблема?
123
124- 1991 :: Голландский программист [[https://ru.wikipedia.org/wiki/Ван_Россум,_Гвидо][Гвидо Ван Россум]] путешествует в
125 Аргентину для проведения таинственной операции. Он возвращается с
126 огромным шрамом на голове, изобретает [[https://ru.wikipedia.org/wiki/Python][Python]], объявляется [[https://ru.wikipedia.org/wiki/Великодушный_пожизненный_диктатор][Великодушным
127 Пожизненным Диктатором]] толпой последователей и объявляет миру "[[https://wiki.python.org/moin/TOOWTDI][Есть
128 только один способ сделать это]]". Поляки напряглись.
129
130- 1995 :: В Итальянском ресторане по соседству [[https://ru.wikipedia.org/wiki/Лердорф,_Расмус][Расмус Лердорф]] осознаёт,
131 что его тарелка спагетти -- это отличная модель для представления
132 Всемирной Паутины (WWW). На обратной стороне салфетки он проектирует
133 Programmable Hyperlinked Pasta ([[https://ru.wikipedia.org/wiki/PHP][PHP]]). Документация PHP все ещё
134 хранится на той салфетке.
135
136- 1995 :: [[https://ru.wikipedia.org/wiki/Мацумото,_Юкихиро][Юкихиро "Mad Matz" Мацумото]] создаёт [[https://ru.wikipedia.org/wiki/Ruby][Ruby]], чтобы предотвратить
137 неясно определённый апокалипсы, который превратит Австралию в пустыню
138 под контролем воинов-могавков и Тиной Тернер. Язык позже был
139 переименован в [[https://ru.wikipedia.org/wiki/Ruby_on_Rails][Ruby on Rails]] своим создателем, [[https://ru.wikipedia.org/wiki/Ханссон,_Давид_Хейнемейер][Давидом Хейнемейером
140 Ханссоном]]. [Часть, где Мацумото создаёт язык Ruby никогда не случалась
141 и лучше бы была удалена в следующей версии этой статьи - DHH].
142
143- 1995 :: [[https://ru.wikipedia.org/wiki/Эйх,_Брендан][Брендан Эйх]] читает про каждую ошибку, созданную при
144 проектировании языка программирования, создаёт парочку новых и
145 выпускает язык LiveScript. Позже на волне популярности Java язык
146 переименовывается в [[https://ru.wikipedia.org/wiki/JavaScript][Javascript]].
147
148- 1996 :: [[https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D1%81%D0%BB%D0%B8%D0%BD%D0%B3,_%D0%94%D0%B6%D0%B5%D0%B9%D0%BC%D1%81][Джеймс Гослинг]] изобретает [[https://ru.wikipedia.org/wiki/Java][Java]]. Java относительно многословный
149 статически-типизированный объектно-ориентированный язык с классами,
150 одиночным наследованием, множественным наследованием интерфейсов и
151 сборкой мусора. Sun громко заявляет о революционности Java.
152
153- 2001 :: [[https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D0%B9%D0%BB%D1%81%D0%B1%D0%B5%D1%80%D0%B3,_%D0%90%D0%BD%D0%B4%D0%B5%D1%80%D1%81][Андерс Хейлсберг]] изобретает [[https://ru.wikipedia.org/wiki/C_Sharp][C#]]. C# относительно многословный
154 статически-типизированный объектно-ориентированный язык с классами,
155 одиночным наследованием, множественным наследованием интерфейсов и
156 сборкой мусора. Microsoft громко заявляет о революционности C#.
157
158- 2003 :: [[https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%B5%D1%80%D1%81%D0%BA%D0%B8,_%D0%9C%D0%B0%D1%80%D1%82%D0%B8%D0%BD][Мартин Одерски]] изобретает [[https://ru.wikipedia.org/wiki/Scala_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)][Scala]], который объединяет
159 конструкции из объектно-ориентированных и функциональных языков. Это
160 бесит как приверженцев ООП, так и ФП, что делает язык неюзабельным для
161 всех.
Note: See TracBrowser for help on using the repository browser.