>> |
No.11959
>>11953
Тащемта я без всякого NDA могу сказать, что зарабатываю деньги эрлангом в качестве одновременно и владельца бизнеса и программиста, и подход let it crash мне очень нравится. Надо только понимать, что может упасть и как восстанавливать состояние после падения.
Супервизоры и не должны изолировать ошибки. Их задача - поднять упавший процесс, чтобы восстановить последнее неошибочное состояние. Если непонятно как восстанавливать - то значит и поднимать нечего, надо упасть и пусть этим разбирается вышестоящий супервизор. При падении каждого процесса пишется лог. Вообще ошибки изолироваться не должны, они должны откатыватся или игнорироваться, а если это невозможно - ронять систему.
Насчет GC - это известная тема для долгоживущих процессов с известными способами ее решения. В том числе при создании такого процесса средствами OTP можно явно указать как часто вызывать сборщик мусора. Можно хоть на каждое сообщение. А вот для короткоживущих процессов такой сборщик мусора имеет огромные преимущества, не имея при этом недостатков.
Насчет порога вхождения. С точки зрения бизнеса - категорическое нет. Язык с высоким порогом вхождения для бизнеса не подходит и массовым никогда не станет - слишком дорого и слишком долго. Для программиста тоже нет - язык должен упрощать работу, а не усложнять. Усложнять можно развлечение, получая удовольствие от красивого преодоления трудностей. Для подавляющего числа программистов на хаскеле хаскель - это именно красивая игрушка для развлечения. На работе они пишут на других языках. Хаскель хорош, когда программа самоценна сама по себе (компьютер саенс и т.п.). В коммерческой разработке программа не важна, важны результаты и характеристики ее работы.
Хаскель не "наоборот", он очень сильно переусложнен как на уровне количества конструкций, так и на уровне их семантики. Только вот если в другом языке, знаменитом своей сложностью - в С++ - можно начать писать не зная и не понимая большей части возможностей, то на хаскеле так уже не попишешь, там надо слишком многое знать и понимать сразу.
>>11956
Это следует из каноничной реализации существующего сборщика мусора хаскеля на всех платформах. Или будем вести разговор на уровне "можно зделать"?
>>11957
А что о них говорить, это же очень простая и удобная идея комбинирования типов, которая есть и в эрланге и в хаскеле, и которой нет в go. Только в хаскеле есть статическая проверка типов, которая работает с алгебраическими типами, а в динамическом эрланге можно или писать аннотации для диалайзера, или проверять типизацию гардами и кейсами, если вдруг хочется. Второе как правило получается само собой в процессе разработки.
На границе с i/o все равно и там и там приходится все проверять ручками, никакой статический анализ с i/o не поможет.
|