На Земле живет 7,5 миллиардов человек и 30 миллионов программистов. Человеческих языков около 7099, сколько компьютерных — никто не знает. CodeLani насчитал около 4248 языков, HOPL — 8945.
Хочу поделиться самыми интересными находками по языкам программирования. Никто не знает как дать определение, что такое «язык программирования». Первый язык высокого уровня — Plankalkül, созданный Конрадом Цузе в 1942-45 году. Первый коммерческий язык — FORTRAN (1956).
Есть интересный проект CodeLani — цель которого помогать тем, кто хочет создать свой язык программирования или улучшить существующий. Создатель проекта собирает обширную базу данных компьютерных языков и их общих шаблонов проектирования. Проект ориентирован на языки программирования, но эта база включает в себя другие компьютерные языки и объекты — от популярных текстовых форматов высокого уровня до двоичных спецификаций.
Кто считал и продолжает считать языки программирования:
- TIOBE index — один из самых известных каталогов, он содержит около 250 языков программирования, критерии такие: 1) про него есть страница в Википедии 2) язык Тьюринг-полный 3) Гугл выдает более 5000 результатов
- Википедия говорит нам о 700 языках.
- Олдфаг из 90-х FOLDOC насчитывает 1000 языков.
- The Language List насчитывает ~2,500 языков
- Коллекция HOPL насчитывает 8945 языков
- J.E. Sammet помогала разрабатывать COBOL и одной из первых задалась вопросом отслеживания языков программирования в 1971 году, она насчитала тогда 167 языков
Визуализации
Генеалогическое древо языков от Online Historical Encyclopaedia of Programming Languages. (PDF с окраской по странам)
Постер от O’Reilly с визуализацией 66 языков программирования до 2004 года (PDF формат постера)
Интерактивная визуализация от GitHut, 49 языков до 2014 года.
Интерактивная визуализация от Exploring Data’s D3, 1220 языков до 2014 года
Sammet’s chart
Одна из первых инфографик по языкам программирования от 1972 года, содержит 167 языков.
Обложка книги 1969 года, 117 языков программирования.
С какой буквы начинаются языки?
Какие страны создают языки программирования?
Отступы
Менее 2% языков используют отступы
Репозитории
- ~1% языков имеет центральные репозитории
- в мире насчитывается 2,000,000 packages (в 200-500 раз больше чем ЯП)
- у Javascript’s npm 900 000 packages, у Javascript, Java, PHP, Perl и Python — 80% от общего числа packages.
Комментарии (28)
icommerce777
03.01.2022 16:51Набирайте запрос в интернете "codelani язык программирования", особено из корпоративной сети, иначе неправильно поймут :)
valis
03.01.2022 17:12Создам свой ЯП и назову его Ы
Подпорчу статистику :-)
MagisterLudi Автор
03.01.2022 17:15я уже писал про подобных энтузиастов: Примеры кода на 39 эзотерических языках программирования
Йоба: habr.com/ru/post/116301
FlyingDutchman2
03.01.2022 19:29+7J.E. Sammet помогал разрабатывать COBOL и одним из первых задался вопросом
Только не "помогал", а "помогала". Jean Sammet - женщина.
OlegPatron92
04.01.2022 19:34+3Интересно, сколько в мире людей, имеющих опыт программирования, особенно старшего поколения, пик карьеры которых приходил на догитхабовскую эпоху, не имеют аккаунта на хитхабе?! Лично моё мнение, что людей считающих себя программистами, так или иначе практикующих программирование, гораздо больше чем 30 млн. Мало того не все у кого есть аккаунт на bitbucket, gitlab, пользуются github. Не все вообще используют VCS.
ufm
05.01.2022 08:40+1Еще хорошее место в плане языков программирования — http://www.rosettacode.org
Что-бы не искать вот сразу два полезных линка: http://www.rosettacode.org/wiki/Category:Programming_Tasks
и
http://www.rosettacode.org/wiki/Category:Programming_Languages
Flagman
Я немного не по теме, но всё же интересно — возможно ли, что когда-нибудь условный ИИ изобретёт такой язык (не ЯП), который был бы понятен и удобен всем людям? Который учитывал бы их физиологические особенности (типа строения челюстей и т.д.), не содержал бы лишних звуков и букв, позволял бы строить любые конструкции из простейших сочетаний, был бы лёгким и быстрым в написании? =)
Jammarra
Язык это как соц сеть. Изобрести не так сложно как заставить пользоваться. Никто не будет учить полумертвый язык ради абстракного "он удобнее" и его в любом случае постигнет судьба эсперанто.
Весь вопрос в числе пользователей. Да и английский в целом не самый сложный и вполне тянет на международный.
DaneSoul
Проблема эсперанто в том, что на нем очень мало что написано, поэтому и нет смысла его учить.
novoselov
В этом плане есть еще один вариант, язык для компьютеров, а не для людей. Некий промежуточный язык точно описывающий все сущности во всех языках, такой себе мета-язык один раз переведя на который можно получить точный контекстный перевод на любой другой язык. Удобен именно для общения компьютеров и передачи смысла, т.к. он должен в себя включать не только слова, но и связи между понятиями, которая будет дополняться и развиваться.
MagisterLudi Автор
Вроде Compreno по такой парадигме языка-посредника работали?
novoselov
Посмотрел Compreno, судя по описанию это больше инструмент для парсинга текста, чем собственно язык. Смысл мета-языка в том, чтобы каждое слово в отдельности максимально точно описывало сущность. В человеческом языке есть естественное ограничение на количество букв, а машинный язык может создавать слова как токены с дополнительным описанием. Грубо говоря, слово-токен 74628462363 соответствует "Лук" как растение, а 9472723654 соответствует "Лук" как оружие. При этом само слово имеет привязанную аттрибутику, начиная с описания "овощ"/"растение" и языковую специфику в контексте конкретного языка "род = мужской". При этом в конкретном тексте "лук" может означать как растение целиком, так и луковицу или перо лука. При разборе текста происходит извлечение смысла исходя из контекста повестования, но результат включает конечные токены, а не сложную композицию типа "верхняя зеленая часть растения лук". В общем идея в том, что слово мета-языка должно иметь свой смысл независимый от внешнего контекста, а вся суть взаимосвязей была частью самого языка - по сути это абсолютное аттрибутирование всего.
ddinochrome
Насколько я знаю работа по созданию такого языка ведётся: https://metalanguage.tech/
unclegluk
У Эсперанто уже есть носители, так что непонятно, что вы имели под постигшей его судьбой. Но в мире еще овердохрена искусственных языков. В литературе и киноиндустрии их изготовление чуть ли не на поток поставлено. Есть много специалистов по созданию языков. Нет, не для программирования, а для общения.
napa3um
.
Sadler
Естественные языки и так стремятся к упрощению, от них со временем отваливаются сложные правила и исключения, пока это не сильно вредит основной функции языка. История знает и намеренное упрощение языков, тот же русский тому пример. Не вижу задач для AI в данном процессе, непонятно, зачем что-то выдумывать. Думаю, для жвал и клювов наши современные языки не очень подходят, конечно. Это, наверное, проблема.
GospodinKolhoznik
Не скажу насчёт устной речи, но письменность усложняется. Сейчас, наверное, больше слов, которые пишутся не так, как слышатся. Если бы слова писались так, как слышатся, мой комментарий представлял бы из себя следующее:
Нь скажу нащот усной речь, но письминась усажняитса. Сичас, наверна, большь слоф, кторые пишатса ни так, как слышатса...
А это значит постепенно движемся в сторону от алфавита к иероглифам, т.к. для каждого слова надо отдельно учить его написание.
Sadler
Вы рассматриваете короткую перспективу, языку требуется время, чтобы ассимилировать новые понятия из других языков, это нормально. Зато в результате подобных процессов обмена формируется межнациональная языковая прослойка, понятная на любом языке. В качестве примера у нас есть латинский язык, уши которого до сих пор торчат повсюду.
aelaa
Письменный язык всегда искусственный, и это проблема того, кто его усложняет. До эпохи интернета устный язык был первичным
А к иероглифам мы уже давно пришли ;)
Sychuan
Это происходит не потому что письменный язык усложняется, а потому что устная речь меняется быстрее, чем правила письма.
vutmuk123
где-то слышал, якобы у якутов 15 разных слов, означающих разные виды снега...)
vadimr
Вообще-то и в русском можно примерно столько насчитать. Если с диалектами, так точно.
vutmuk123
а у эфиопов?)
vadimr
Путешественник Куксин рассказывал, как одному экваториальному дикому народу объяснял, что у него на родине море полгода твёрдое и можно по нему ходить пешком. Все сбегались слушать, как круто он выдумывает сказки.
vadimr
Физиологические особенности отчасти определяются как раз языком. Например, в койсанских языках Африки есть щёлкающие звуки, которые не тренированный с детства человек физически неспособен воспроизвести.
А семантикой в разных культурах вообще беда.
Dmitriy_Volkov
Если ИИ будет способен изобрести язык, который полный по Тьюрингу, и удобный всем (читаю, любому) людям, то поздравляю, ИИ уже давно захватил этот бренный мир
OlegZH
А Вы попробуйте. В этом случае, придётся сделать что-то вроде иероглифов. Тут, ведь, проблема в чём? Обычно противопоставляют звуковой способ и иеорглифический. Наверное, оптимальный вариант — это (наоборот!) сочетание звукового и иероглифического. Но для этого придятся признать, что:
Отдельные звуки имеют смысл. Возможно, не вполне в том смысле, как мы это понимаем обычно. Также это означает, что звуковое сходство слов на самом деле (вопреки лингвистике), скорее всего, означает и сходство смыслов. С годами этот общий смысл утратился, остались только различия, в которых усердно копается лингвистика.
Существуют определённые правила перевода одних звуков в другие. Это что-то вроде химии, периодической таблицы звуков и т.д. и т.п. То есть, имеется понятие, которое описывается при помощи определённого размещения букв универсального алфавита, и имеется класс эквивалентности на классе звуковых цепочек, ведущих к различным представлениям данного понятия на различных языках.
Язык изначально свойственен природе, но, в то же время, является и результатом творения или открытия. Первое означает, что теми же понятиями оперруют и животные. Второе означает, что язык или, точнее, праязык — это универсальная знаковая система, от которой, со временем, "отвалилась" верхушка, задающая прагматику (высшую семантику). В результате такого падения произошёл эффект Вавилонской башни, когда смешались языки=народы, решающие различные задачи.
А ещё есть такая проблема, о которой говорил У. Матурана в своей "Биологии познания": всё сказанное сказано наблюдателем. Это значит, что более прадоподобна именно коннотативная теория информации. Такая теория помогает понять, почему любые попытки построить универсальный язык обречены на неудачу, поскольку информация не переносится, а привностится. В каком-то смысле, всё это смыкается с тем, о чём говорит Роджер Пенроуз в своих "Тенях разума".