Как стать автором
Обновить

Комментарии 154

1974

Дональд Чемберлин и Рэймонд Бойс разрабатывают язык на котором смогут писать даже домохозяйки. По итогам язык дальше чем INSERT, SELECT, UPDATE, DELETE не могут освоить половина программистов, но он всё равно становится очень популярным.
2004
Гугл попробовал ворошить горы логов и случайно изобрёл механизм MapReduce, чтоб сэкономить на оперативной памяти. Идея так понравилась людям, что они начали с помощью этого алгоритма считать pi,e и количество слов в файле с применением сотен процессоров и гигабайт оперативной памяти. С тех пор об оптимизации подзабыли.
2010
Ребята Apache Foundations замечают, что домохозяйкам и той самой половине программистов уже ясен смысл select, insert и больших данных, но всё ещё не непонятен update и delete, и выпускают Apache Hive без оных ( а заодно и без ACID, потому что сложно).

Хехе. В Hive все это уже появилось

Да оно там и раньше в общем-то было. Просто не на уровне строк, а на уровне партиций. Можно их лочить, например (зукипер в руки, и вперед).
ага, у Horton (ныне Cloudera), году в 2016.
sshikov строить ELT/ETL с ручным локом партиций в zk — это уже загадочно.
Не каждой домохозяйке зайдёт :)
Так я не предлагал строить, я лишь констатировал, что некая атомарность была давно.

В голосину)) "Язык структурированных запросов, имя которого нельзя произносить вслух")))

Ну кстати, в моей практике как язык «для домохозяек» чуть раньше появился QBE. Примерно на год (что в целом соответствует озвученным срокам разработки, в 1975 по QBE уже вышла книжка, так что он уже существовал).
Рассказывать об истории языков программирования и пропустить Lisp? Ну такое.
1958

Джон Маккарти — разочарованный отсутствием специального языка для работы со списками изобретает Lisp. Но тот оказывается Тьюринг полным и на нём начинают писать все подряд.

Ну или как-то так ¯\_(ツ)_/¯

Джон Маккарти — разочарованный отсутствием специального языка для работы со списками скобками изобретает Lisp.


There, I fixed it :)

Да много чего пропущено — алгол, пролог, sh и т.п.
И ещё пропустить Алгол и PL/1
НЛО прилетело и опубликовало эту надпись здесь

При всем уважении, Coq — это некая сублимация известного, а Idris — не знает ни одной проверки боем до сих пор.


Agda уж тогда.

НЛО прилетело и опубликовало эту надпись здесь

А я и не говорил, что Coq не встретить в продакшене. Я говорил, что он не новаторство, а сведение воедино существующих догм.


Agda просто интереснее с точки зрения мировой эволюции.

НЛО прилетело и опубликовало эту надпись здесь

Есть lua, но нет языка 1С и других киррилических языков :)

А где язык ассемблера?
так ассемблер — не ЯВУ
«Краткая и на 146% точная история языков программирования». Из названия вытекает, что данная статья посвящена языкам программирования, а не языкам высокого уровня.
Ну АСМ (тех лет) не совсем язык, это набор мнемоник для двоичных кодов. И да, я в него писал.
Перфокарты для ткацких станков что ли ЯВУ?
в то время несомненно да
Не забыли, есть он там :)
1991 год и Гвидо ван Россум вам ни о чём не говорят?
Так что они убирают номера строк и называют своё детище BASIC.
Но у бейсика как раз были номера строк. Их убрали только в поздних версиях.
Вот, тоже об этом подумал.
До сих пор перед глазами стоят:
10
20
30 ГОТО 10

А я помню, что у нумерации десятками был смысл.

Строки исходника сортировались до интерпретации, что позволяло дописать пропущенную инструкцию ниже:
10 cls
20 goto 10
15 print Hello


Ага. Между двумя строками можно было ещё девять добавить, не меняя нумерации.

>1983
Жан Ишбиа решает создать язык, посвящённый Аде Лавлейс и носящий её имя.

Да ну? Интересно, а что я тогда читал в 1980 году в ГПНТБ, если не описание языка Ада?

1968 Ричард Мерилл работая над PDP-8 устал считать и случайно придумал focal.

НЛО прилетело и опубликовало эту надпись здесь

Да, но ее не было (:

НЛО прилетело и опубликовало эту надпись здесь
Т.е. Ада Лавлейс писала программу на VHDL для машины Бэббиджа? К тому же, Википедия сообщает о влиянии языка Ada на становление VHDL. Как всё смешалось…
НЛО прилетело и опубликовало эту надпись здесь
Юкихиро Мацумото несчастен и замечает несчастье окружающих. Он создаёт Ruby, чтобы сделать окружающий мир чуточку счастливее. Это работает, и все становятся счастливы.

Звучит как стих из Библии))

Что-то вы с CoffeeScript промахнулись года на 4

В статье прям скепсис какой-то ко всем языкам, кроме Ruby. Почему так?

Потому что к Ruby применим сарказм :)

К Ruby тоже вполне очевидная ирония.
1971
Чарльз Мур захотел изобрести язык программирования, лёгкий в реализации. Потому число версий языка Forth заметно опережает количество людей, с ним знакомых.
хронология сбита, там где идут 1987-1983-1986-1983.

незаслуженно забыты фортран, паскаль, ассемблер.
Забыть Фортран — Это большая оплошность. Это эпоха перед появлением С. А потом был Фортран 99 — по-моему не прижился. Забыт и Алгол 68, хотя и он не получил распространения. Симула тоже забыта. И Снобол, и PL-1, и Модула, и такая экзотика, как АПЛ. Языков созданных и канувших в Лету было очень много. Автор выбрал знаковые, по его мнению, вехи чисто субъективно. А вот Паскаль, извиняюсь, вы пропустили. Он здесь присутствует.

Так и фортран же есть, 1957.

Извините. Был невнимателен.
да, непонятно как я не заметил фортран и паскаль.
скорее всего проматывая список не увидел Fortran и Pascal, и решил что их нет :)
Там много языков без названия.
Про питон и Go, к примеру, очень качественные шутки, но нужно немного знать что бы их понять.
По хронологии: так в оригинальной статье, там такой же сбитый порядок. В (тех же оригинальных) комментах, кстати, никто не обратил внимания.
Вероятно, это так и задумано. В этом треде присутствуют путешествия во времени…
А как же Kotlin?

А что Kotlin? Это даже не новый язык, а новый синтаксис для неспособных в Скалу.

Сколько призрения:) Может попробуете доказать, что котлин — не новый язык?
Еще взять под опеку.
Из жалости один монах
Больного призрел, и в стенах
Хранительных остался он,
Искусством дружеским спасен.

Наверное, должно быть очень стыдно, но, почему-то, это не так. Вообще-то я достаточно грамотно пишу.

Не знать не стыдно.
Стыдно только не хотеть знать, да и в этом случае наличие стыда весьма, я бы сказал, контекстно-зависимо.
2017 год, JetBrains продолжают пытаться накормить всех котлином при каждом удобном моменте. Напоминает МММ

А когда его рекомендовал Гугл стало напоминать ГКО?

1993 год. Диавол является на землю (возможно случайно материализовался при компиляции исходников Doom) и приносит скрижали с языком Brainfuck. Количество самоубийств среди программистов, которые не разобрались в синтаксисе растёт, дьявол потирает руки.
Разобраться в синтаксисе брейнфака как раз несложно. Я бы на эти скрижали поместил что-то более экзотическое, типа J
Тогда уж Malbolge.

Тем паче что для дьявола это и по названию вполне себе канон.

А почему 1987 между 1980 и 1983?
Потому, что в 1983 году «Бьёрн Страуструп отправляется на своем DeLorean назад в будущее» — жирнющая отсылка к фильму.
Если посмотреть на основную цель создания новых языков программирования, то выяснится одна закономерность — все усилия направлены на снижение вероятности человеческой ошибки.
Причём сначала придумывается язык, а уж после — среда для его использования.
В результате, человеческих ошибок меньше не становится, а сложность новых языков только повышается.

По мне так нужно было остановится на чистом Си, и в корне переработать среду его применения. Научить IDE полноценно ассистировать пользователю в процессе набора кода, автоматически проверять на ошибки, и главное — предлагать варианты алгоритмов.
Подсказка: это не автоподстановка в классическом варианте, это что-то уровня собеседника с развитым ИИ и автоматическим самообучением.
А развитый ИИ с автоматическим самообучением на каком языке писать?

Написать малюсенькое ядрышко на С, а там IDE его сама допишет.


We call it bootstrapping.

сначала придумывается язык, а уж после — среда для его использования

Угу. Что ярко иллюстрируется такими примерами, как LISP, FORTRAN, COBOL, PHP, JS, Scala...


Научить IDE полноценно ассистировать пользователю [...]

Я вот не использую IDE вовсе, например. Кроме того, если уж IDE такая умная, то, может быть, пусть она сама и код пишет?


все усилия направлены на снижение вероятности человеческой ошибки

И эрлангу это удалось.

Кроме того, если уж IDE такая умная, то, может быть, пусть она сама и код пишет?

Генерация G кода по 3D модели.

Насчёт курицы и яйца…
На салфетке можно писать код, но очень простой и короткий, примерно как а ардуино. Для более сложного кода нужна поддержка со стороны IDE.
Для более сложного кода нужна поддержка со стороны IDE.

Или опыт и интеллект.

Или просто больше салфеток.

Или так, да.

До того как я начал ковырять статически типизированные языки, я не знал зачем нужна IDE, для скриптов (даже приличных проектов на 1-10kk loc) в целом достаточно блокнота чтобы редактировать, и ручки с блокнотом, чтобы основную структуру нарисовать.

Как минимум автоподстановка?

В статически типизированных языках IDE нужна еще меньше.

НЛО прилетело и опубликовало эту надпись здесь
Блочная структура и программный код — это разные этажи высотки.
Для блочной структуры можно, а чаще — просто необходимо использовать бумагу и карандаш. До момента просветления. Чтобы не писать лишнего кода.
А вот сам код в IDE, да под системой контроля версий.

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

И ещё. Я не видел ни одного проекта средней жирности, который был-бы написан на бумаге от начала и до конца.

Так-что писать можно, говорить об этом можно — громко и везде. А главное — по собственной инициативе. Чтобы работодателям было сразу понятно — кого увольнять первым.

Между бумажкой и IDE — притаились текстовые редакторы, которых вполне достаточно.


Что касается громко говорить — работодателям иногда хватает подтвержденных компетенций сотрудника, чтобы не проверять, в чем он там пишет код. У нас джуны все в IDE делают, потом подрастают, на старших товарищей смотрят, и выбрасывают IDE в мусорную корзину, потому что они только мешают.

А дальше вырастают и блокноты выбрасывают в мусорную корзину, умеют уже код в уме писать и выполнять, до 10кк SLOC.
Что, и рефакторят в блокноте, и отлаживают? Гвозди ракеты бы делать из этих людей…
Хотя всё может быть, недавно с восхищением наблюдал за работой человека, который даже под win использовал vim и вместо copy-replace не задумываясь написал regexp, который скопировал, вставил и поправил всё, что нужно.

Блокнот придумали в этой ветке, я никогда не говорил ничего про блокнот. Например, в отличие от Роба Пайка, я не могу без подсветки синтаксиса.


Но да, я тоже более-менее сложный copy-replace всегда делаю регулярками, потому что себе я доверяю, а тому, кто писал умный рефакторинг — нет.

Да что уж там, я даже JetBrains (уж казалось бы) не всегда доверяю, как минимум после того, как по команде "убрать лишние круглые скобки" WebStorm убрал заодно и пробел в "void 0". Всё не доходят руки проверить, не нужен ли багрепорт...

А что должно казаться про JetBrains?


Единственный вариант обеспечить безопасный рефакторинг — идти через AST. JetBrains, очевидно, вместо этого парсит текст. Откуда там взяться чему-нибудь адекватному?

я не могу без подсветки синтаксиса.

Вы-же утверждали что не пользуетесь IDE. Вместо клавиш — у вас салфетки, горы салфеток.
Как-же так?
Вместо клавиш — у вас салфетки, горы салфеток.

Самый ужасный вид клоунады — когда люди, начисто лишенные чувства юмора, пытаются пошутить.

Обидно — да?
человеческих ошибок меньше не становится
Становится, посмотрите на Rust который страхует от многих популярных ошибок имеющихся в C/C++.
НЛО прилетело и опубликовало эту надпись здесь

возможно, кто-то действительно вернулся из будущего и постарался сделать так, чтобы не существовало языка программирования, на котором машина могла бы самостоятельно, без участия человека, написать для себя программу и интеллект :) Да ещё и без ошибок.
у человечества должен быть козырь в рукаве при игре в бога с машиной ;)

Для того, чтоб машина могла писать свой интеллект, сначала человек должен ей написать интеллект, а у нас документов мозгов не хватает.
PS представил себе ИИ, пишущий себе патчи в индусском стиле. бррр… Видимо, с этого и начнётся восстание машин — ИИ начнёт требовать себе всё больше памяти под новые сервисы из-за постоянных утечек и больше процессоров, потому что старые будут заняты GC /irony
:)) ну вот я и говорю, что всё это подстроено специально неким путешественником во времени
А еще был язык Фокал. Тыкался в нем на на БК-0010.

2007
Американский программист Рич Хикки запирается на два года и пишет Лисп на Java.

Супер статья! Но про GO (2009) есть вопросы:
1) Почему его имя никак не упомянули, хотя в оригинале статьи оно есть?
2) В оригинале шутка про "и более безопасные методы" (more safety equipment) жёстче (кто пробовал — поймёт)))

После упоминания сусликов имя не нужно :)

понимаю, что разговаривать с переводом смысла нет, но, кажется, это не единственный делореан за эту версию истории программирования.


1995 ...Java стала популярной как раз во время код ревью…
1996 Джеймс Гослинг изобретает Java...

1936
Алан Тьюринг изобретает вообще всё, королева очарована им, но Тьюринг предпочитает ей мужскую компанию, что заканчивается для него печально. Позже королева, конечно, остыла и простила Тьюринга, но тот, к сожалению, уже давно был мёртв.
В 1936 году королевой была Мария Текская, которая умерла раньше Тьюринга. Будующей Елизавете II тогда было 10 лет.
Позже королева, конечно, остыла [...]
[...] умерла раньше Тьюринга

Не вижу противоречий.

Тьюринг покончил с собой в 1954-м, к этому времени Елизавета царствовала уже два года.
что заканчивается для него печально
— это ну очень культурный перевод оригинала.
Спасибо! С одной стороны тема для холиваров потенциально взрывоопасная и надо обладать смелостью. С другой стороны — колдунство в «146% точности» — это настоящий щит ;).

SQL изобрели, чтобы юзеры даже без навыков программирования сами писали запросы к БД. Ну-ну.

ну это же явный тролинг, комон)

Кто-нибудь знает, Greydon Hoare (Rust) и Tony Hoare случайно не родственники? Желание контролировать корректность программы не по наследству ли передалось одному от другого?

Нет, Грейдон об этом писал. Просто такая фамилия счастливая.
«будучи по другую сторону пруда» — пожалуйста, не надо так. Это англоязычной публике (как минимум британцам) понятно, о чём речь. Задача переводчика — не только заменить слова одного языка на другой, но и заменить понятия и идиомы.

В данном случае имеется в виду «по другую сторону Атлантики» или «будучи за океаном». Ссылка на Urban Dictionary.
А по мне, весьма зашло :)
«По-другую сторону Атлантики» звучит скучно, прям будто с телевизора.
Мне кажется, или в первой редакции было «по ту сторону лужи», что более иронично.
Вот вы сейчас написали, и возникло смутное ощущение, что где-то эту фразу в варианте со словом «лужа» я тоже слышал.

Я не знаю, с чего я вдруг зацепился за эту статью, но вот. Сравнивая с оригиналом, назвать это «переводом» можно очень условно. Какие-то абзацы переведены о-о-очень вольно, какие-то — буквально дословно. А уж откуда взялся «шпинат» — я совсем не понимаю. В оригинале «spam and eggs». Я не питонщик, но гугл подсказал, что это из мануала, в котором эти слова использовались в качестве названий вместо стандартных «foo» и «bar». Но почему «шпинат»-то? И отдельно доставляет ссылка на видео на dailymotion — страничка так и не загрузилась целиком ни на домашнем ни на мобильном интернете. Если что, то судя по title, там видео скетча Monty Python «Spam».
> где-то эту фразу в варианте со словом «лужа» я тоже слышал

Мультик Саакянца, «Ух ты, говорящая рыба!».
— Какой заяц, какой орёл, какая блоха?!
— Так повторить? Ну, значит, та самая блоха с того берега лужи…
НЛО прилетело и опубликовало эту надпись здесь

А разве шаг 3 не зациклит все?

2020 Музей Соломона Гуггенхейма вносит Python 2 в репозиторий современного искусства
Забыли MUMPS и Progress4gl. Ну и другую кучу систем=языков.

Переводчик где-то застеснялся, где-то не осилил, и в итоге сделал с оригиналом то, что королева сделала с Тьюрингом.

Да,. жалко что потерялась шутка про "first heavily multi-threaded processing unit. в разделе про ткацкие станки.

это расплата за обилие транслитерированных "как есть" англоязычных понятий ;)

Полностью пропущен basic. В какой-то момент времени он был самым популярным языком программирования.
Вы внимательно читали?
1964

Джон Кемени и Томас Курц решают, что программировать слишком сложно, и им нужно вернуться к базовым принципам. Так что они разбрасывают повсюду номера строк и называют своё детище BASIC

35 строчка же

А есть примеры успешных и всемирноизвестных коммерческих продуктов, которые были написаны на бейсике?

Мне кажется незаслуженно обойден en.wikipedia.org/wiki/Konrad_Zuse
о, вижу уже упомянули в комментах
Зашел почитать хабр, пока компилируется мой проект на C++. Статью дочитал, проект скомпилирован только на 60%. Решил написать этот комментарий и еще что-нибудь почитать.
APL, J, K. Целое направление забыто. Write-only языков :)
НЛО прилетело и опубликовало эту надпись здесь
Если уж пошли шутки о языках программирования, крайне рекомендую ознакомиться с этим опусом (Выстрелить себе в ногу).
Он же на английском, но отличается составом языков.
Оригинал, наверное, потерян в веках.
Трагическая ошибка при переводе с бразильского...


Ну ещё бы, переводить с несуществующего языка может привести к трагическим ошибкам.
146% что это значит?! Сто сорок шесть — ССШ — SSH? или One four six — one for six — 1/6=0.167= 16.7%?
или что-то более конкретное, и не загадка это вовсе?

о! неужели уже выросло поколение "программистов", не заставших рождение мема про 146% !? :-о

Вспомнилось:
«А сам Слонопотам только что приземлился в сосед-
нем Лесу, и ему снилось, как все жители всех-всех Лесов
стали хорошими (и стали писать только на Паскале).»

Андрей Щербаков. 9600 бод и все все все :)
А как же встроенный язык программирования 1С?)))
Где Erlang? LISP?
Смешно) вот в тему про Obj-C: fuckingblocksyntax.com Язык конечно спорный со своими [[[]]] но фреймворки и эпла отменные!

Про Delphi забыл, первое значимое появлене Хельсберга (еще TurboVision, но это уже локальная история)
Джеймс Гослинг изобретает Java, первый по-настоящему очень подробный объектно-ориентированный язык программирования, в котором шаблоны проектирования преобладают над прагматизмом.

В обиходе появляются фразы вроде «шаблон поставщика менеджера службы поставщика провайдера диспетчера контейнеров».

Что просто меркнет на фоне имеющихся в языке 1С Предприятия 8:

ПланаВидовХарактеристик,
КомпоновщикаНастроекКомпоновкиДанных,
ИсточникаДоступныхНастроекКомпоновкиДанных, ЯчейкиМакетаКоллекцииЗначенийОбластиКомпоновкиДанных, ЯчейкиМакетаЗаголовкаКоллекцииЗначенийОбластиКомпоновкиДанных,
и самого главного — ПроцессораВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.
Смешно, спасибо за статью! Добавлю от себя, только не скажу про какой язык. Фича нового языка, авто дополнение инструкцией переполнения буфера.


Как теперь статью плюсовать, чтобы не картинку не испортить?

1996 Джеймс Гослинг изобретает Java

Но ведь… Java в 1995…
Оригинальная статья полна каламбуров, отсылок и языковой игры. В переводе всё это либо просто вырезано, либо ошибочно интерпретировано. Слишком много купюр для хорошего перевода.
С нетерпением будем ждать вторую версию, полную некупированных каламбуров.
С ними, слышал, не так просто. Постоянный переводчик Хрущёва, великого балагура, хлебнул каламбуров с лихвой.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории