Re[3]: WA: 3 млн tcp соединений на одном сервере
От: SkyDance Земля  
Дата: 28.07.20 19:41
Оценка: 18 (4)
N>>Erlang по части держания коннектов и производительности ничуть не лучше, а почти всегда хуже, компилируемых аналогов (разве что они сделали свой JIT). Единственное чем он тут способен побить — это встроенной системой автообновления без рестарта.

S>Подождем Skydance'а. Он как раз performance engineer в wa.


По совместительству еще и один из директоров Erlang Ecosystem Foundation. Занятно, что в данный момент я как раз исправляю часть, которая связана с поддержкой сетевых соединений.

Что именно интересует? Просто открыть 3 млн соединений проблем нет почти на любой языке.

Преимущество Эрланга (и вообще BEAM languages) в том, что:
1. Сделать такое можно буквально в десяток строк кода — сам язык хорошо заточен под подобное использование.
2. Программисту гораздо сложнее выстрелить себе в ногу. Но, конечено, чем более сеньором себя программист считает, тем чаще стреляет даже в Эрланге — от умного дурака защититься сложнее, чем от глупого.

JIT для BEAM пока существует только в экспериментальном проекте, хорошо если через год будет продакшн. Hot code load — да, ценная и важная фича, но не единственное, что важно.
А вот что важно, так это фреймворк, который заставляет программиста думать асинхронно. Все то самое "reactive programming", только очень-очень взрослое по сравнению со смешными поделками, которые сейчас массово вылезают в виде разных react.js и прочего. Все-таки, за 30 лет Эрланг и BEAM повзрослели. Там уже заложены все те концепции, до которых сейчас только думают дорасти очередные итерации "серебряных пуль". Начиная от supervision, и заканчивая immutable releases.

Лучше всего про Эрланг сказал один из его авторов, Роберт Вирдинг:

Virding's First Rule of Programming
After reading the blogs about how good Erlang's concurrency model is and how we just just made a super implementation of it in XXX I have been led to formulate Virding's First Rule of Programming:

Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.

With all respect to Greenspun.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.