Rust, C#, and Go also seem to fit the bill, according to these benchmarks. C# particularly has rocketed up since the last time I looked in depth at these. Pretty impressive work from the .NET Core folks, I'd say.
Rocket has been really interesting to work with, but it only works on nightly since it relies on experimental codegen/procedural macro features. Once procedural macros stabilizes, all the codegen can be ported to that. It doesn't support async IO yet, but that's because it's waiting for the community to coalesce before diving into it.
I think there's a future where Rust web frameworks are as expressive as Rails or Laravel but bring type safety and sound, zero cost abstractions to the table.
I'm really looking forward to this. The only thing I worry about is compile times. I hope they don't end up ruining an otherwise perfect solution!
There are very few companies which requires million per second request. For me Java, C#, Go, Node provide the best compromise b/w speed and productivity.
Granted you could expand the term to cover hardware load balancers and the sort, but those wouldn't really be running websites so much as routing and caching them. Aside from that, you have management interfaces for embedded devices but they're typically used infrequently and only by a small subset of users. Plus a surprising number of them are just written in PHP or Perl.
But maybe there is a whole industry out there I've overlooked? You've got me curious.
For example,
https://www.hcc-embedded.com/embedded-systems-software-produ...
Not that I'm trying to dismiss your point either because if I was given a choice between node and C, I might personally choose C just because of my own personal prejudices against Javascript. :D
Embedded is one of my interests, so I do keep an eye on news about what is going on.
On my case I would rather try to bend my answer to be either C++ with embedded STL or Pascal, failing that C as well, in spite of my prejudices against it.
Hopefully they would at least allow C99. :)
* I know Go gets a lot of hate because of its lack of generics and choice of error handling, but it's worth remembering that for web development you don't run into those particularly annoyances much.
Sometimes mutability and imperative code are okay, even in scala.
play2-scala-slick-ne 60,588 14.3%
play2-scala-slick 60,400 14.2%
("-ne" = netty, the other is Akka)There's not that much difference? Or did the Netty version, get slower, because of refactorings done to support Akka?
Anyway I too feel frustrated that the Scala / Play Framework developers don't seem to focus so much on performance, but rather (it seems to me) on writing theoretically beautiful Scala code? I'd rather have something fast & simple like Vert.x, in Scala
Well, there's Vert.x + Scala, "only" 70 stars: https://github.com/vert-x3/vertx-lang-scala thugh. I wonder how Vert.x + Scala compares with Vert.x + Java, would have been really interesting to include in the benchmarks :- )
I suggested incl Vert.x & Scala in the benchmarks: https://groups.google.com/forum/?fromgroups=#!topic/framewor...
C (C++) and Java. Wow.
Even though I'm old, I'd sort of forgotten how speedy they can be. It's strange, because I actually work with Java and C in making streaming game engines. And you kind of get used to thinking in terms of millions on a set of hardware. So you think Java and C are slow. Then you realize if you were using Python or Node or anything other than C or Java really, you'd likely still be working out how to support tens of thousands on that same set of hardware. (If that.)
We can get so used to what we have. Maybe that's just a human thing.