Углубился я на неделю в исследование всех этих асинхронных движков, и понял, чего мне не хватает.
В JS вообще отсутствуют прототипы, тайпхинты, и любые другие способы формализации API. Для клиентской части это нормально, но серверный код становится викториной.
Например,
тут session и extra - обхекты, а method - строка. Для сравнения,
на php это наглядно.
Народ находит утешение в генераторах - они упрощают код, но соглашения остаются неявными.
Когда я увидел
такое на php - понял, что с лямбдами запросто могу устроить себе нескучный вечер дебага.
Питон где-то посередине - типы есть, но тайпхинтов нет, только аннотации, и я не разобрался сходу как они работают.
Хорошо бы таки сделали для php нормальные асинхронные движки. Иначе альтернативой с oop становится консервативная java с раздражающим приведением скаляров.
Go сырой, на нем даже простой рекурсивный http-робот с регулярками написать - не так просто.
@hell0w0rd, как на ноде обеспечивается целостность API и полиморфизм?