Не так давно нарвался на потрясающий язык. Io(от инпут-аутпут, незнаю почему автор так его назвал, вообще название неудачное с тз маркетинга, потому что гуглится из-за этого плохо)
Автор Steve Dekorte
Сайт языка
iolanguage.com/
Комьюнити и инфраструктура слабые. Для реальной разработки, ИМХО, годится только в качестве клея.
Но в «академическом» плане, для саморазвития язык бесценен. Очень выразительный и [концептуально]простой язык, с чистейшим(прототипным) ООП. Почти все есть объект, кроме чисел, кажется. Но и числа не примитивы, обладают многими свойствами объектов. Сообщения — тоже объекты. Функции — объекты, причем, они там объекты в реальном смысле, а не просто в смысле first-class objects. То есть, функция получает сообщения, наследует и т.д.
Семантически напоминает Луа и Джаваскрипт, но превосходит их по фичастости и чистоте. Наследует идеологию Смоллтока, экстремально упрощая ее в духе Self
Язык медленный. Примерно сопоставим с Питоном
Есть ленивые вычисления, множественное наследование, поддерживает асинхронность и сопрограммы
синтаксис оригинален, но весьма логичен, для обращения к объекту используются пробелы.
Типизация сильная, динамическая
Вот пример паттерна Observer с вики
Observer := Object clone
Observable := List clone do(
register := getSlot("push")
notify := method(message, self foreach(observer, observer update(message)))
)
Newspaper := Observable clone do( addNews := method(news, notify(news)))
Citizen := Observer clone do(
create := method(name, self clone lexicalDo(name := name))
update := method(message, writeln( name .. " узнал следующее: " .. message))
)
newspaper := Newspaper clone
newspaper do(
register(Citizen create("Иван"))
register(Citizen create("Василий"))
addNews("Наблюдатель - поведенческий шаблон проектирования")
)
#>>>> Иван узнал следующее: Наблюдатель - поведенческий шаблон проектирования
#>>>> Василий узнал следующее: Наблюдатель - поведенческий шаблон проектирования
Все возможности я перечислять не буду, подробности по вышеприведенной ссылке.
Наиболее силен язык именно в ООП, позволяет быстро строить сложные многоуровневые иерархии.
Хорошие возможности метапрограммирования.
Одно из самых интересных свойств — динамическое связывание имен.
Гуглить по запросу «iolanguage», иначе ничего не найдете
Язык крайне полезен для ознакомления тем, кто программирует на Луа, это поможет лучше понять модель исполнения и семантику Луа
Есть еще 1С:)
Но это была шутка, это не то, что Вы имели в виду, как я понял
Типа такого там
С другой стороны, это и не приветствуется особо, потому что естественный язык грамматически слишком свободен, а в разработке наоборот стараются избегать неоднозначности интерпретации слов, чтобы избежать ошибок
Обычные языки абстрагируют машинный уровень, они выглядят как команды-слова, или более сложные выражения
Для полноценной разработки визуальное программирование не подойдет.
К тому же, это неизбежно приведет к снижению надежности ПО
Вообще любая индустрия всегда стремится к максимальному разделению труда, тут то же самое, как токари-универсалы заменяются операторами ЧПУ.
Сейчас большинство разработчиков не универсальны, а используют определенный набор инструментов. Иногда это сводится к различному комбинированию библиотек, и собственно программирования там очень мало