O'caml and Haskell are extremely niche in the web server world, and are not especially faster than go. C# is not blazingly fast either. They all seem to be in the same ballpark.
I've been paying a lot of attention and, in my experience (but also according to the highly biased benchmark game), C#/Java/OCaml/Haskell/Go are in the same league, i.e usually 3-10 times slower than C/C++/Ada/Rust/D, and 3-10 times faster than "scripting" languages like Python/PHP/Ruby/Perl.
With (in my experience) go being a little faster than java and haskell, and o'caml being slightly faster than anyone, but nothing significative enough for me to expect an article titled "my Java webapp was too slow so I rewrote it in O'Caml" anytime soon.
Benchmarking is very relative, though. I'd be glad to read evidence showing go is significantly slower than any of those in some domain.
Memory hog only by those that don't know what they are doing and happilly new everywhere.
Yes it is hard to tune, but not so much different than playing with C or C++ compilation switches, across each compiler that is being used in production.
> Memory hog only by those that don't know what they are doing and happilly new everywhere.
Go uses an order of magnitude less memory for most type of workloads though.
Also you don't tune c++ binaries delivered to you. You have to tune the JVM's option to death for big apps. I can't count the number of incidents "solved" by raising the Xmx param.
I tune C++ compilers, just like I tune Java compilers, in both cases I can decide to do it during AOT compilation or at a later moment.
The big question is how properly those big apps were coded.
Go doesn't run Fintech servers, while Java keeps replacing C++ servers. Yes, one needs to code Java with low level tricks like C++, but it is possible and there are many performance experts doing it.
> I tune C++ compilers, just like I tune Java compilers, in both cases I can decide to do it during AOT compilation or at a later moment
How many customers run self-compiled, say mysql binaries? Or mongodb? An tiny minority.
Now how many tune cassandra or hadoop jvms? A big chunk.
You can use niche cases to make a point (fintech is almost the textbook definition of a niche software use case), however what you say is plain wrong most of the time.
Also, I've managed thousands of c++ and thousands of java processes. I'd take c++ ones over java any day.
Proper Cassandra and Hadoop deployments are as niche as Fintech, the large majority could solve their problems with UNIX command line tools.
On my world the team manages deployments, I rather take Java over C++ compilation times, and having tools like Mission Control to monitor cluster performance on production servers.
Yes, launching a new server/executable in java is a PITA dur to the JVM warmup (at least it was a few years ago, don't know whether they improved that point or not).
As team lead I consider having the interest to master the tooling part of the job requirements and respective evaluation, not specific knowledge full of gothas.
That, or it can be read as "in the family of web-friendly languages". The only other "fast" language widely used for the web is Java.