Title could be improved, as I was wondering if the command line tool npm had itself been rewritten. It’s actually one of npm’s web services that was rewritten. FTA: “Java was excluded from consideration because of the requirement of deploying the JVM and associated libraries along with any program to their production servers. This was an amount of operational complexity and resource overhead that was as undesirable a…
Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
21–30 of 307 posts
Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#22Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#23This entire article is a pretty damning report on JavaScript in general, but this sentence takes the cake (emphasis mine): > The process of deploying the new Rust service was straight-forward, and soon they were able to forget about the Rust service because it caused so few operational issues. At npm, the usual experience of deploying a JavaScript service to production was that the service would need extensive monito…
Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#24Title could be improved, as I was wondering if the command line tool npm had itself been rewritten. It’s actually one of npm’s web services that was rewritten. FTA: “Java was excluded from consideration because of the requirement of deploying the JVM and associated libraries along with any program to their production servers. This was an amount of operational complexity and resource overhead that was as undesirable a…
JVM tuning (especially the GC and memory allocation scaling) can be a huge PITA.
Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#25> ““Java was excluded from consideration because of the requirement of deploying the JVM and associated libraries along with any program to their production servers. This was an amount of operational complexity and resource overhead that was as undesirable as the unsafety of C or C++.” To me this reads like someone has a chip on their shoulder to demand that Rust be viewed as generally superior instead of merely bein…
Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#26Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#27> ““Java was excluded from consideration because of the requirement of deploying the JVM and associated libraries along with any program to their production servers. This was an amount of operational complexity and resource overhead that was as undesirable as the unsafety of C or C++.” To me this reads like someone has a chip on their shoulder to demand that Rust be viewed as generally superior instead of merely bein…
Well, this is a PR piece about Rust, hosted at rust-lang.org. What did you expect?
Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#28Title could be improved, as I was wondering if the command line tool npm had itself been rewritten. It’s actually one of npm’s web services that was rewritten. FTA: “Java was excluded from consideration because of the requirement of deploying the JVM and associated libraries along with any program to their production servers. This was an amount of operational complexity and resource overhead that was as undesirable a…
I just unpack JDK, I have no idea what so complex about it. It was complex on Windows because I used VM to install Java and then copy folder, but they made it easier with 11.
Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#29> ““Java was excluded from consideration because of the requirement of deploying the JVM and associated libraries along with any program to their production servers. This was an amount of operational complexity and resource overhead that was as undesirable as the unsafety of C or C++.” To me this reads like someone has a chip on their shoulder to demand that Rust be viewed as generally superior instead of merely bein…
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
Re: Case Study: Npm uses Rust for its CPU-bound bottlenecks [pdf]
#30A better title would be the subtitle of the article: "The npm Registry uses Rust for its CPU-bound bottlenecks". Note that only one service (authentication) was rewritten from node to Rust.
There’s also a second service we know about in Rust, and that’s the one that renders package README pages.