В продолжении предыдущих заметок “Почему Kotlin вместо Java” и “Почему не Golang” захотелось тезисно, но все же перечислить основные серверные платформы и их особенности.
Понятно, что если все написано на Perl (да, даже такое бывает в “настоящей жизни”) и все более-менее устраивает, то нет особого смысла думать о других платформах. Если же что-то сильно не устраивает или с нуля, то почему бы и не поразмышлять.
- C#/.NET – технически претензий особо нет, но как ни крути это зависимость от Майкрософт, а оно никому не нужно. Обычно используют, если Майкрософт как-то спонсирует стартап.
- PHP – есть технические вопросы (но в целом гиганты типа Facebook много сделали, чтобы их снять), но основной вопрос в качестве программистов – где брать умных, обученных и достаточно дешевых программистов – тут такого нет (или может уже есть и у меня устаревшие данные?).
- Delphi/Pascal/Basic – для коммерческой разработки платформы стоят денег и из-за не очень высокой популярности технически отстают, поэтому мало кто на этом что-то делает.
- C/C++/Rust/Golang – слишком низкоуровнево для приложений с бизнес-логикой.
- Python – в наших краях довольно долго было экзотикой, последнее время стало популярней (видимо, из-за ML, а может и наши универы перешли с Паскаля на Питон). Был опыт написания нескольких серверов на нем. Не увидел ни проблем, ни плюсов. Как-то максимально не впечатлен ни в одну из сторон. Все-таки по совокупности факторов Котлин предпочтительнее (полноценная многопоточность, SonarQube, руководства и т.п.), но при наличии хороших программистов и на этом можно писать. При этом можно написать весьма непонятно (программист из какого-нибудь другого языка не поймет что тут происходит):
labelled_something = {
something_labels[idx]: round(float(score), 2)
for idx, score in enumerate(some_object)
}
- RubyOnRails (Ruby) – довольно долго занимался этим. 2 основные проблемы: сам фреймворк концептуально устарел (он хорошо подходит для генерации html, а чистый api уже не так хорошо – хотя тут может что-то последние годы поменялось) и плохой язык – то, что использует RubyOnRails может работать весьма быстро, было множество попыток написать хорошую реализацию, но как-то все они сдулись (побоялись сделать несовместимый Ruby с изначальной реализацией). В целом, да, можно на нем писать, но зачем мучаться? Котлин дает чистоту куда лучше, да и платформа лучше (больше функционала и заметно быстрее).
- Node.js (JavaScript, TypeScript) – низкая типизация (даже в дырявом TypeScript), что приводит к дополнительным логическим ошибкам, а значит не имеет смысл заниматься этим. Стоит отметить, что эта платформа задала тренд к асинхронности, но сейчас уже все это хорошо поддерживают. Имеет популярность только из-за огромной популярности JavaScript на UI.