Возможно, вы слышали поговорку о том, что в информатике есть только две сложные вещи, одна из них — придумывать названия. Некоторые имена языков программирования действительно имеют смысл, например, 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
Надеюсь, кому-то было интересно узнать немного больше об истории языков программирования. Мне было очень интересно в процессе изучения этой темы. Некоторые реальные истории происхождения действительно удивили.
Если вы знаете интересные истории происхождения других языков программирования, которые не рассмотрены в этой статье, делитесь в комментариях.