← All posts tagged Erlang

OCTAGRAM

Разработчики Silver, в отличие от разработчиков Free Pascal, черпают вдохновение не из C++, а из более подходящей Ada, и тем самым автоматически получают уважение:
But with Elements 8.0, RemObjects are going further and introducing Not Nullable references types. That is, the declaration of a variable dictates that it must hold a reference and cannot be null.deltics.co.nz

Меня не всё устраивает в Ada, но, чтобы изменить ситуацию, надо отдать должное тому хорошему, что есть в Ada и перенять в другие языки. Только тогда может быть прогресс.

Тем временем в AdaCore экспериментируют с легковесной многопоточностью, делают язык программирования, стоящий в одном ряду с Erlang, Limbo, Rust, Go. Ada была выбрана из четырёх вариантов языка, имевших кодовые имена, цветов. Если я всё правильно помню, в Ada 83 победил Green, а к разработке Ada 95 подключились люди, делавшие Red. Чем–то в ускоренном варианте напоминает эту изторию разработка адского клона эрланга. В лабораториях AdaCore придумали экспериментальные Sparkel, Parython и Javallel, по синтаксису берущие начало от SPARK (подмножество Ada), Python и Java, соответственно, а потом взяли из них всё лучшее и получился ParaSail. Отличие от Erlang, Go и других языков в том, что в них зелёная многопоточность явная, нужно делать spawn, а в ParaSail и товарищах (в текущей версии они все компилируются в один байт–код и могут выполняться на одной и той же виртуальной машине) — в самом синтаксисе языка есть конструкции, допускающие разбиение на зелёные подзадачи. А компилятор убедится в безопасности доступа к данным.
parasail-programming-language.blogspot.ru

Для production ParaSail и товарищи пока сырые. В частности, работать с HTTP и XML я на них пока не смог. А жаль. Не выгорело с Erlang, хоть на Sparkel перевёз бы node.js проекты.

OCTAGRAM

Аналогом Erlang/OTP является не Limbo, а вся Inferno OS. Я вдруг заметил, что все запущенные в ней процессы с точки зрения host OS — один процесс. Сейчас в нём 20 потоков, но я позапускал ещё приложений, и количество их по–прежнему 20. Жаль, я не настолько хорошо знаю Erlang/OTP, чтобы провести больше параллелей, но вроде бы с такой точки зрения на Inferno ещё не смотрели.