Возможно, вы слышали поговорку о том, что в информатике есть только две сложные вещи, одна из них — придумывать названия. Некоторые имена языков программирования действительно имеют смысл, например, Google назвали свой язык Go(lang). Другие названия — например, Python и Java — не так очевидны.
Обратимся к истории некоторых знаковых языков программирования, чтобы узнать как они получили свои названия. Кому интересно — добро пожаловать под кат.
Python
Python был создан Гвидо ван Россумом как программистское «хобби», чтобы занять себя на время рождественских каникул. Ван Россум хотел, чтобы его язык был лаконичным, уникальным и немного загадочным. Если рассматривать логотип Python «две змеи», можно подумать, что Python назван в честь огромных питонов.
Но на самом деле, находясь в «слегка непочтительном настроении», Гвидо назвал его в честь «Летающего цирка» Монти Пайтона, британского комедийного сериала 70-х годов. Оказывается, он был большим его поклонником и в то время почитывал сценарии шоу.
Java
Java был разработан в начале 1990-х в Sun Microsystems как часть Green Project. Создание нового языка даже не было целью проекта: Java был создан, потому что разработчикам был нужен независимый от процессора язык, который располагал бы большей частью возможностей C++, но с которым было бы проще работать. Сверхсекретная Green Team была сформирована для создания «следующей технологической волны» за пределами ПК, устройства *7, которое, как они считали, станет интерактивной бытовой электроникой с цифровым управлением (предшественником «умных устройств»).
Устройство выглядело так
Первоначально Java была названа Oak (рус: дуб) в честь дерева за окном одного из разработчиков. Однако, когда юристы Sun определили, что товарный знак Oak уже зарегистрирован кем-то другим, Green Team провела мозговой штурм за чашечкой кофе и было придумано название Java. Они хотели выбрать имя, которое отражало бы суть языка: «динамичного, революционного, живого и веселого». После встречи, которая была описана как «фундаментально сплошное безумие», имя Java казалось идеальным выбором.
И хотя * 7 опережал время, он так и не стал популярным. А вот язык программирования, созданный для него, навсегда вошел в историю.
JavaScript
JavaScript был создан Бренданом Эйхом в 1995 году в Netscape — компанией, стоящей за Navigator, самым популярным веб-браузером того времени. Тогда веб-страницы были полностью статичными, но Netscape хотели, чтобы веб-сайты были динамичными и интерактивными, как те, что существуют сегодня. Испытывая давление со стороны Microsoft Internet Explorer, они наняли Эйха, чтобы тот интегрировал язык сценариев в их браузер.
Netscape хотела создать язык, который был бы простым и легким в использовании. Осознав быстро растущую популярность Java, они представили этот язык как «помощника по написанию сценариев для Java», подобно тому, как Visual Basic был дополнением к C / C ++. Сделав акцент на быстрой разработке и простоте, Эйх позаимствовал большую часть синтаксиса Java и написал первую версию JavaScript всего за 10 дней. Этой версии дали название Mocha.
Когда этот язык впервые интгрировали в Netscape, он назывался LiveScript. Вскоре после этого, Netscape сделала ставку на «Java компаньона». Они стали партнерами Sun, переименовав свой язык в JavaScript и рекламировали его “выезжая” на связи с Java: JavaScript рекламировался как язык сценариев для выполнения небольших клиентских задач в браузере, а Java продвигался как более крупный профессиональный инструмент для разработки функциональных веб-компонентов. На самом деле, название JavaScript возникло в результате маркетинговой уловки Netscape, которые пытались конкурировать с Microsoft.
Семейство C (C, C ++, Objective-C, C #)
Первый язык программирования — Ada, был назван в честь Ады Лавлейс. Вскоре появился язык под названием B, разработанный Денисом Ричи из Bell Labs, который еще позже разработал язык C. Этот язык многие считают первым языком программирования высокого уровня.
C имеет множество расширений, включая C++, Objective-C и C #. Имена C++ и Objective-C говорят сами за себя*, тогда как C# менее очевиден. C # вдохновлен музыкой: знак # (диез) означает, что ноту нужно повысить на полтона. Еще более интересно то, что символ # представляет собой лигатуру из 4+ символов в квадрате 2x2, что идеально подходит, учитывая, что C # является «инкрементом» C++.
*C++ — название указывает на эволюционную природу перехода к нему от C; также "++" — это операция приращения в C.)
Objective-C — т.к. объектно-ориентированный.
Swift
Swift был разработан Apple в 2010 году и выпущен четыре года спустя. Основное влияние на Swift оказал Objective-C. Apple продвигает Swift как быстрый, простой в использовании и безопасный по архитектуре язык. Изначально Swift назывался Shiny, словно они разработали «новую блестящую вещь». У него даже было расширение файла .shiny.
Название Swift в итоге было выбрано, чтобы отразить его скорость — с точки зрения производительности и времени разработки. На логотипе Swift изображена птица, а конкретнее стриж (eng. Swift) — это семейство птиц, известных своей скоростью и ловкостью в воздухе.
Haskell
Haskell назван в честь логика Хаскелла Брукса Карри, известного своими работами в области комбинаторной логики. Фактически, есть язык программирования, названный в честь каждого из его имен: Haskell, Brook и Curry.
С его именем связаны парадокс Карри и соответствие Карри — Ховарда, а также функциональная операция «каррирование», широко используемая в языках программирования.
Интересным аспектом Haskell, который редко обсуждают, является его логотип. В логотипе можно заметить символ ? — дань лямбда-исчислению. Однако если посмотреть внимательнее, можно увидеть, что ? “зажата” между > и =. Это происходит от печально известного оператора связывания для монад: >> =. Логотип Haskell — это оператор связывания, переплетенный с ?.
Логотип Haskell
Надеюсь, кому-то было интересно узнать немного больше об истории языков программирования. Мне было очень интересно в процессе изучения этой темы. Некоторые реальные истории происхождения действительно удивили.
Если вы знаете интересные истории происхождения других языков программирования, которые не рассмотрены в этой статье, делитесь в комментариях.
Sdima1357
Первый язык программирования высокого уровня — фортран.
А Ада Лавлейс — названа первым программистом (причем не на фортране, он как-то не успел). Впрочем некоторые считают, что существовал и нулевой программист, создавший этот мир.
Святые Денис и Николас спасите и сохраните нас от «языка Ада» и да не искусит нас
pythonзмей двуглавый.Akon32
А ещё был планкалкюль, за 10 лет до фортрана, также называемый "первым высокоуровневым".
Sdima1357
Ну он ближе к ассемблеру. Точнее некоторые ассемблеры поудобней. И компилятора у него вроде не было.
rinace
Сорри, ошибся.
Удалено
Sdima1357
Планкалкюль ближе к ассемблеру разумеется, а не фортран. Фортран для его возраста вполне себе приличный. И до сих пор жив.
vesper-bot
Про него даже на Хабре есть: https://habr.com/ru/post/133887/
Интересно, кстати.
rinace
Заинтересовало. Да, действительно
Погуглил и наткнулся:
P.S.
Интересно, а сейчас Fortran жив? Предположу, что вполне себе неплохо чувствует ибо расчетных библиотек было создано великое множество. Но точной информации нет. Интересно кто подтвердить или опровергнет.
SmallSnowball
Вполне жив, в 2018 году последняя версия выходила
fortran-lang.org
Phil_itch
Фортран более чем жив. В среде метео расчетов им активно пользуются, лицензия стоит конских денег (intel fortran).
unclegluk
Фортран еще долго будет жив, потому что переписывать его коллекцию библиотек на других языках не имеет смысла ввиду ее огромности, отлаженности и документированности.
Bedal
вот и я тоже хотел написать, что после этого не стоит всё остальное читать. Но Ада Лавлейс не названа первой программисткой, а была ей. Более того, ячейки памяти aka регистры, циклы и условные переходы — это её личное изобретение.
Sdima1357
Я уже после сложности поименования тоже так решил, представив себе бедных главных менеджеров, которые не могут заснуть мучаясь над названиями. Но все-таки пролистал дальше. А условные переходы и циклы были известны еще Евклиду. en.wikipedia.org/wiki/Euclidean_algorithm
Bedal
В современном изложении — переходы и циклы есть. У Евклида — не было. Так-то и сказка про колобка — цикл, и сказка про курочку-рябу (настоящая, а не из книжки для малышей), репку, подавившегося петушка — рекурсия. Вот только не оформлено это именно как специальный приём алгоритма (впрочем, великолепный В.Я.Пропп называл это кумулятивными сказками). У Ады — наличие циклов и переходов было осознано и сознательно же использовано.
Sdima1357
Начала Евклида. Перевод с греческого и комментарии Д.Д.Мордухай-Болтовского 1949 год.
Это вопрос интерпретации. Я считаю это вполне внятной записью вычислительного алгоритма пригодного для выполнения. В уме или на бумаге. С явным циклом и условием.Причем утверждается, что Евклид его не изобрел, он ему был уже известен.
Да, а Жюль Верн изобрел подводную лодку.
Bedal
Это и есть «сказка про Колобка». Приём есть, его оформления для многократного использования в _разных_ алгоритмах ещё нет.
Евклид не изобрёл, а использовал повторно алгоритм в целом.
Sdima1357
«Ж...» есть, а слова нет…
Вот пародия на программистов: 1726 год между прочим
комнате, окруженный сорока учениками. После взаимных приветствий, заметив,
что я внимательно рассматриваю раму, занимавшую большую часть комнаты, он
сказал, что меня, быть может, удивит его работа над проектом
усовершенствования умозрительного знания при помощи технических и
механических операций[108]. Но мир вскоре оценит всю полезность этого
проекта; и он льстил себя уверенностью, что более возвышенная идея никогда
еще не зарождалась ни в чьей голове. Каждому известно, как трудно изучать
науки и искусства по общепринятой методе; между тем благодаря его
изобретению самый невежественный человек с помощью умеренных затрат и
небольших физических усилий может писать книги по философии, поэзии,
политике, праву, математике и богословию при полном отсутствии эрудиции и
таланта. Затем он подвел меня к раме, по бокам которой рядами стояли все его
ученики. Рама эта имела двадцать квадратных футов и помещалась посредине
комнаты. Поверхность ее состояла из множества деревянных дощечек, каждая
величиною в игральную кость, одни побольше, другие поменьше. Все они были
сцеплены между собой тонкими проволоками. Со всех сторон каждой дощечки
приклеено было по кусочку бумаги, и на этих бумажках были написаны все слова
их языка в различных наклонениях, временах и падежах, но без всякого
порядка. Профессор попросил меня быть внимательнее, так как он собирался
пустить в ход свою машину. По его команде каждый ученик взялся за железную
рукоятку, которые в числе сорока были вставлены по краям рамы, и быстро
повернул ее, после чего расположение слов совершенно изменилось. Тогда
профессор приказал тридцати шести ученикам медленно читать образовавшиеся
строки в том порядке, в каком они разместились в раме; если случалось, что
три или четыре слова составляли часть фразы, ее диктовали остальным четырем
ученикам, исполнявшим роль писцов. Это упражнение было повторено три или
четыре раза, и машина была так устроена, что после каждого оборота слова
принимали все новое расположение, по мере того как квадратики
переворачивались с одной стороны на другую.
Ученики занимались этими упражнениями по шесть часов в день, и
профессор показал мне множество фолиантов, составленных из подобных
отрывочных фраз; он намеревался связать их вместе и от этого богатого
материала дать миру полный компендий всех искусств и наук; его работа могла
бы быть, однако, облегчена и значительно ускорена, если бы удалось собрать
фонд для сооружения пятисот таких станков в Лагадо и обязать руководителей
объединить полученные ими коллекции.
Он сообщил мне, что это изобретение с юных лет поглощало все его мысли,
что теперь в его станок входит целый словарь и что им точнейшим образом
высчитано соотношение числа частиц, имен, глаголов и других частей речи,
употребляемых в наших книгах.
Я принес глубочайшую благодарность этому почтенному мужу за его
любезное посвящение меня в тайны своего великого изобретения и дал обещание,
если мне удастся когда-нибудь вернуться на родину, воздать ему должное как
единственному изобретателю этой изумительной машины, форму и устройство
которой я попросил у него позволения срисовать на бумаге и прилагаю свой
рисунок к настоящему изданию. Я сказал ему, что в Европе хотя и существует
между учеными обычай похищать друг у друга изобретения, имеющий, впрочем, ту
положительную сторону, что возбуждает полемику для разрешения вопроса, кому
принадлежит подлинное первенство, тем не менее я обещаю принять все меры,
чтобы честь этого изобретения всецело осталась за ним и никем не
оспаривалась.
Bedal
пародия не на программистов, а на философию с остатками средневековой схоластики и, продляя в истории, иудейской нумерологии.
Каким это образом связано именно с программированием — пусть останется на Ваше усмотрение, мне не интересно, потому что притянуто именно в стиле той самой пародии.
Sdima1357
Ну да, никому не нравится себя узнавать в пародиях…
" Это что угодно, но только не я" «с»
(Мне она тоже не нравится:)
Bedal
я последние лет… ммм… семнадцать — не программист. И молодым людям с мозгами сейчас идти в программисты не советую. Так что мимо, моей заинтересованности тут нет.
Sdima1357
«последние лет 17»
Сочувствую.
«Так что мимо»
То есть вы признаете, что эта шутка о программистах?
Будьте хотя бы последовательны.
Bedal
Нет конечно. Я не признаю, что это шутка относится к программистам (нужно вообще не понимать в программировании, чтобы такую связь придумать). «Мимо» относится к Вашему утверждению «Ну да, никому не нравится себя узнавать в пародиях…». Подразумевается, что я программист, и потому не хочу признать эту пародию? Это и есть — мимо, не про меня.
Sdima1357
Все равно сочувствую. У меня была команда, я неплохо на этом заработал. Но мне это не понравилось и сейчас вернулся к программированию, это явно интересней.
Руководить своим проектом, это тяжёлая, нудная и нервная работа. Хотя и денежная. А чужим проектом — ещё хуже. Программировать интереснее.
Bedal
при чём тут «заработал»? Вы, видимо, руководили формальным проектом, формально же выделенным в рамках работы компании или, хуже того, корпорации. У меня проект в компании — но он полностью мой. И результат его работы эксплуатируется по всей России и заметной части США.
Это — крайне интересно, задачи встречаются очень хитрые и решения приходится искать нестандартные.
Программленье скучнее, за… ммм...двадцать пять лет профессиональных и нескольких лет студенчески-любительских — поднадоело.
Sdima1357
Это была моя собственная компания. И деньги она приносит мне до сих пор. Просто она мне надоела, и я избавился от руководства ею. А компания до сих пор вполне успешно продает программный продукт. И не один. Уже больше 10 лет. Просто тема мне уже не интересна. Надоела.
Bedal
Вот, а мне — не надоела. Появляется новое оборудование, поведение которого надо учитывать, расширяется географический охват — а это ставит иногда очень новые и интересные задачи.
а вот тянуть эту ветку — надоело. Всё уже далеко ушло от темы, и ничего нового я здесь не получаю. Добиваться же инет-победы желания не имею.
Закроем?
Bedal
Более того, немедленно после издания книги Жюль Верн пытался весь тираж выкупить — и именно из-за не-изобретения в ней кое-чего важного.
delhi_heir
Язык Ада — появился в 1980 году, и он был на основе Алгола.
Язык C — появился в 1972 году!
Язык B — появился в 1969 году!
Язык BCPL, от которого происходят B и C — появился в 1966 году!
Как после таких ошибок можно верить статье?!
vesper-bot
Диез же!
Ametrin
И решеточка другая) ?
0xd34df00d
А почему оператор связывания печально известен?
dark_ruby
Это только для тех кто монады не осилил.
YBogomolov
Вообще хаскель изначально хотели назвать Curry, но после мысли о том, что это приведет к большому количеству шуток вокруг каррированных функций, язык переименовали в Haskell. Вот как отцы-основатели (Уодлер, Пейтон Джонс, Хьюз и Худак) пишут об этом в истории создания языка:
delhi_heir
Тем не менее, язык Curry — все равно создали, и основан он на Хаскеле. :)
Politura
Вообще-то тогда они были динамичными благодаря Java апплетам, но, к великому сожалению, сами апплеты не имели доступа к объектам странички на которой выполнялись, весь UI апплета должен был быть написан на Java, если хотелось интерактивности. Тут и пришел на помощь JavaScript. Из википедии ru.wikipedia.org/wiki/JavaScript
Интересно, насколько мир был-бы лучше, еслиб вместо добавления JS допилили-бы доступ к DOM из Java аплетов и все эти годы развивали-бы их поддержку в браузерах.
Redisni
Я думаю все знают, но всё же напомню. Fortran — слово, образованое как сокращение от FORmula TRANslation. А был еще более PL/1 — амбициозный Programming Language /1.
alexanderturchin
Слонёнка, слонёнка забыли! Хадупушку…
sfrolov
В СССР был еще язык ЯМБ «Язык машин бухгалтерских», название которого совпало с инициалами разработчика Ярошевской Марины Борисовны.
NataHanguga
вроде как диез… но статья класная)
Grek_Evgeny
Есть небольшая неточность по тексту — «C # вдохновлен музыкой: знак # (бемоль) означает...» # — это диез.
JBIckx
Только # это всё таки диез, а не бемоль. А «С» обозначает ноту «До», в «иностранной» нотации.
Поэтому С#, в переводе на русский, это До-диез