3 ms·
Nothing in the article says no one should consider Java, just that they rejected it. You know nothing about their team expertise (probably very little Java bac
by the_duke 8y ago
Nothing in the article says no one should consider Java, just that they rejected it.
You know nothing about their team expertise (probably very little Java background) and their deployment setup.
The concerns are perfectly valid in my opionion:
* JVM brings an increase in deployment complexity (version upgrades, etc)
* Deploying a high-volume Java application requires experience and usually also tuning of the VM parameters, which also means trial + error and a increased monitoring burden for the ops team
* Java is a old language with plenty of quirks and oddities, which is fine if you work with it a lot, but a consideration if you want to bring it in as a new stack
Personally, I also always reach for Go or Rust first because of the mentioned benefits:
- single, static binary means trivial deployment
- performance and memory usage is pretty predictable, often good enough without much adaptation, and requires no parameter tuning
- mlthoughts2018 8y agoI think you are only proving my point here. They have not provided any specific details about any of this, and did not elect to make a prototype implementation in Java to actually measure the costs and compare to the other solutions. So you’re precisely right that I don’t know why they chose to dismiss Java as a candidate language. That’s my whole point. If they aren’t going to provide evidence or more detailed explanation of why Java wouldn’t solve it well, then it seems very disingenuous that they do throw in a pejorative comment like saying Java adds unqualified operational complexity. And the same thing for unqualified “unsafety” of C or C++. I’m willing to cut them more slack about C/C++, but still there is zero need to toss in these pot shots as if those languages are always inferior in an absolute sense (that is the only thing we can possibly think they mean, literally because they dismiss those choices out of the box with little discussion and no experimentation). They could have just said something like this: “We elected to create candidate implementations in node, go and rust. We did not elect to consider Java, C or C++, but would encourage others to evaluate those alternatives if they seem applicable in other use cases.”
- pjmlp 8y agoFirst point is also possible with Java. Second point depends on the data structures being used.