In continuation of the previous notes “Why Kotlin instead of Java” and “Why not Golang” I wanted to outline, but still list the main server platforms and their features.

It is clear that if everything is written in Perl (yes, even this happens in “real life”) and everything is more or less satisfied, then there is not much point in thinking about other platforms. If something does not suit you very much or from scratch, then why not reflect.

  • C#/.NET – technically, there are not much complaints, but anyway it’s a Microsoft dependency, and no one needs it. It is usually used if Microsoft somehow sponsors a startup.
  • PHP – there are technical issues (but in general giants like Facebook have done a lot to remove them), but the main question as programmers is where to get smart, trained and fairly cheap programmers – there is no such thing (or maybe I already have outdated data?).
  • Delphi/Pascal/Basic – platforms cost money for commercial development and are technically lagging behind due to their not very high popularity, so few people do anything about it.
  • C/C++/Rust/Golang – too low-level for business logic applications.
  • Python – it has been exotic in our area for quite a long time, recently it has become more popular (apparently because of ML, or maybe our universities switched from Pascal to Python). I had the experience of writing several servers on it. I didn’t see any problems or advantages. Somehow, I am not as impressed as possible in either direction. Still, according to the combination of factors, Kotlin is preferable (full-fledged multithreading, SonarQube, manuals, etc.), but if there are good programmers, you can write on this. At the same time, you can write very incomprehensibly (a programmer from some other language will not understand what is happening here):
labelled_something = {  
	something_labels[idx]: round(float(score), 2)  
	for idx, score in enumerate(some_object)  
}
  • Ruby On Rails (Ruby) – I’ve been doing this for quite a while. 2 main problems: the framework itself is conceptually outdated (it is well suited for html generation, and the clean api is not so good anymore – although something may have changed here in recent years) and a bad language – what RubyOnRails uses can work very quickly, there were many attempts to write a good implementation, but somehow they all blew away (they were afraid make Ruby incompatible with the original implementation). In general, yes, you can write on it, but why suffer? Kotlin gives much better cleanliness, and the platform is better (more functionality and noticeably faster).
  • Node.js (JavaScript, TypeScript) – low typing (even in leaky TypeScript), which leads to additional logical errors, which means it makes no sense to do this. It is worth noting that this platform has set a trend towards asynchrony, but now all this is well supported. It is popular only because of the huge popularity of JavaScript on the UI.