← All posts tagged Erlang

Zert
Erlang elixir В общем, не вижу ни одной причине больше писать на ерланге. Только еликсир, только молодость. Инфраструктура еликсира настолько прокачанная, что с ерланговской её сравнивать как-то не хочется. Вот эти вот rebar, erlang.mk ни в какое сравнение с mix не идут, даже близко не стоят. Ну и сам язык, не смотря на рубиватость, скорее удобен, чем нет (всяко удобнее ерланга).
Zert
Erlang elixir Инфраструктура у еликсира очень годная, в то время, как у ерланга всё сгнило или сгнивает. Пока вижу проблему исключительно в упоротом синтаксисе, но это вкусовщина и надеюсь привыкнуть. У ерланга синтаксис тоже не сахар, но он проще намного.
Zert
Erlang На бесконечные твиты «Why #WhatsApp <> Only Needs 50 Engineers for Its 900M Users» уже хочется отвечать «Because Fuck You, That's Why»
Zert
Erlang Надо короче не ебать мозги, а переходить уже на Elixir. Следующий подходящий проект на нём постараюсь сделать.
Zert
Erlang После программирования на нормальных языках, синтаксис ерланга кажется каким-то сумасбродством.
Zert
Erlang elixir А может действительно надо уже переходить с э-а на э-р? Вроде там и библиотеки более-менее прилично выглядят, не то что олдскульное говно. Разве что рубишный синтаксис отпугивает, но ради хорошей инфраструктуры я даже на скобочки согласен, чо уж там. У кого есть опыт? Какие там подводные камни? Хотелось бы, конечно, какой-нибудь ML, но его никто не написал ещё.
Zert
Erlang Ещё помнится была такая инициатива, как Erlang-3000, современная stdlib для э-га с нескучными функциями. Дальше сайта с голосованием за нужные фичи чёт не ушло.
Zert
Erlang Haskell Ещё вот о попытке сделать э-г из х-я. Вот рассмотрим самый стандартный паттерн: стейтфул процессы.
В х-е предлагается хранить стейт в TVar, где-то «снаружи» от процесса. Как в таком случае принято удалять стейт, если процесс аварийно погиб? В э-е это делается автоматически и естественно, нет процесса — нет стейта (ну если конечно его в ETS не хранить, но так делать не принято, за исключением каких-нибудь экзотических случаев).
И почему в х-е не принято хранить стейт процесса в самом процессе, мутируя его с помощью рекурсивного вызова функции вида loop? Чтобы никаких дополнительных «внешних» TVar не делать. Висит loop на канале, ждёт сообщение, принимает сообщение, вызывает сама себя уже с новым стейтом. В чём проблемы так делать? Или какие-то подводные камни есть?
Zert
Erlang Хотел уже было начать использовать мапы как стейт в gen_server, но диалайзер оказывается ещё не умеет чекать типы в мапах. Беда.