Hacker News new | ask | show | jobs
by saberience 2140 days ago
I'm not sure there is much of a use-case. Most enterprises want to focus on developer productivity. Most modern web frameworks are more than fast enough, whether you use Spring, Kestrel, or ASP.net, it doesn't really matter anymore, even Flask is more than good enough for 99% of use-cases.

Given how capable even cheap cloud hardware is now, optimizing for developer productivity is better than choosing the "very fast" C or Rust framework which no one understands how to program for. Also, C/Rust etc, being harder languages to learn and lower level, tend to be both harder to hire for and also end up with more bugs than the higher level languages.

2 comments

> Most enterprises want to focus on developer productivity

And that is something that I generally am OK with, to a point. If your application isn’t performance sensitive, have at ‘er and use whatever you feel is going to be the most productive, even if it potentially has higher opex.

Bugs is an interesting thing. There’s two flavours of bugs, basically: requirement errors and implementation errors. High vs low level languages don’t do much to alleviate the first category of bugs at all (e.g. not thinking through how “random shuffle” should work in a music player). High level languages can help reduce the number of coding errors compared too lower level languages, but they do have their own quirks (eg using an empty list as a default argument in Python)

Ultimately, though, it’s all about working within the constraints you’re given, whether time-to-market, development costs, opex costs, system performance, etc. I’m intrigued by this framework because I have a high performance image processing system written in C++17 and there’s been some discussion recently about an HTTP API for it. Why is it in C++ to begin with? It’s on a somewhat resource constrained board (Jetson Nano) and has to run at at least 70fps for what it’s doing. 14 milliseconds to grab the image from the camera, run it through TensorRT, and do something useful with the output. I would have considered Rust as well, but a good chunk of this is leveraging existing C++ libraries (OpenCV, FLIR Spinnaker, TensorRT, etc) and fighting with wrappers and weird impedance mismatches is not my idea of a good time.

>Most enterprises want to focus on developer productivity

While I absolutely agree, it all depends on a scale. If you're using for example 10 cloud instances, x2 performance improvement will not justify extra person-months spent on developing more performant solution. On the other hand if you run 1000000 servers even 1% performance boost might be worth that effort.

There's a additional point: on 4 cloud instances, a x5 performance improvement means you have only one machine to manage instead of several, and then your ops costs are way smaller.

There's a big number of companies who have between 4 and 20 machines for serving Python, Node or PHP apps and spend a lot of efforts managing them with overkill solutions like kubernetes or whatever when it could be a single machine or two using more frugal languages.