sortarray sortarray
sortarray sortarray личный блог
03 февраля 2019, 22:04

Очаровательный язык

Не так давно нарвался на потрясающий язык. 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», иначе ничего не найдете

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


19 Комментариев
  • Sofikhafi
    03 февраля 2019, 22:18
    Когда же появится язык конвертор, чтобы написать на кириллице " тот то объект должен сделать то-то" или это неисполнимо?
      • Sofikhafi
        03 февраля 2019, 22:35
        sortarray sortarray, а что 1с? Можно поподробнее? Хотя вроде действительно в конфигурации там можно писать по-русски. Только я говорю про конвертор на язык, типа Ява, си и пр
      • Sofikhafi
        03 февраля 2019, 22:52
        sortarray sortarray, но ведь можно договориться о терминологии и способа построения команд. Вообще-то с моей обывательской точки зрения, для нынешнего развития кодирования и возможностей железа это вполне решаемая задача, но видно пока время не пришло-запроса общества нет
          • Sofikhafi
            03 февраля 2019, 22:55
            sortarray sortarray, ну не скажите, все таки машина пока понимает только 1 и 0 или нет?
              • Sofikhafi
                03 февраля 2019, 23:38
                sortarray sortarray, что-то я совсем темная. Я думала
                  • Sofikhafi
                    04 февраля 2019, 00:08
                    sortarray sortarray, скажу коротко и просто: спасибо. Кое-что в моих темных мозгах подсказывает, что между высокоуровневые и и низкоуровневыми языками давно существует свой код, который заложен уже, может на уровне операционной системы. Ужасно радуюсь, когда по крохам закрываю свои вопросы по теме столь далёкой от меня, но заманчивой. Так что ещё раз спасибо.
  • Storm Hold
    03 февраля 2019, 22:51
    Я бы лучше спросил, когда уже выйдем на нормальное визуальное программирование, без кодов. Мелкомягкие пытаются в свои проекты встроить, я бы даже сказал стараются, но пока до серьезных вещей далеко. Только плодят новые языки, от которых у аналитиков и экономистов, далеких от разработки уже мозг пухнет. 
    • Sofikhafi
      03 февраля 2019, 22:54
      Storm Hold, а приведите пример визуального программирования, что вы имеете в виду?
      • Storm Hold
        03 февраля 2019, 23:00
        Sofikhafi, работаешь конструктором — нажимаешь кнопки, выбираешь действия, последовательность запоминается и затем воспроизводится. Обычно конструктор сам код и генерит. Это пример по скриптам. Визуалку конструкторами делать вроде научились.
      • Storm Hold
        03 февраля 2019, 23:22
        sortarray sortarray, к середине 30-х вроде бы прогнозировали. Когда-то ведь тоже на перфокартах все было. Главное что потребность в этом все ощущают. Думаю, что в итоге кодить станет узкой специализацией, для чего-то глобального и системного.
    • Sofikhafi
      04 февраля 2019, 00:12
      Storm Hold, я думаю это надо для удовлетворения эго. В каждом языке есть что-то уникальное. Иначе вряд ли возможен прогресс. Но для утилитарных целей можно было бы конечно дать госзаказ на разработку таких конструкторов

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн