6 ms·
The software industry rapidly convergng on 3 languages: Go, Rust, and JavaScript
- r0ckarong 3y agoOr, like, learn C and get a job in one of thousands of companies whose products have relied on it for decades.
- dukeyukey 3y agoI'd bet that Java has an order of magnitude more users than Go and Rust combined, and probably several orders of magnitude more code in production.
- ttfkam 3y agoSeveral orders of magnitude more RAM used by Java as well for the same amount of work.
- dukeyukey 3y agoThat both isn't true and doesn't matter. What matters is the post is wrong.
- ttfkam 3y agoBeen coding in Java since the late 1990s with v1.0.2 and continue to this day with v21. Java has been and remains a comparative memory hog. Yes, it is still popular, but it is far less popular than it used to be for greenfield projects. Go: just as fast to code in as Java with a similarly shallow learning curve. Ridiculously better for targets like AWS Lambda compared to Java, even with the advent of GraalVM. Rust: much steeper learning curve than any listed here, but can be optimized for both CPU and RAM usage to an extent no garbage collected language can match without the outsized memory integrity issues found in other systems level languages like C or C++. For AWS Lambda, GraalVM is three times worse by latency during cold starts and double the RAM of Go. Java proper is over five times worse by latency during cold starts and over five times the RAM usage, disqualifying it for the smallest Lambda size. You can implement a fully functional REST server in Rust in less than 20MB of RAM while it's in use with Actix or Axum and almost no CPU time. Java can get close to this in CPU efficiency, but I'd be astounded if you can even start the service in less than 50MB, and as soon as the first few requests come in, you're in the hundreds of megabytes in no time. These scenarios may not matter to you, but they matter to a lot of folks today and even more tomorrow. So here we are: TS/JS on the browser, often on the server, and the primary language for infrastructure tools like the AWS CDK. Go allows for much more efficient code than JS/TS on the backend once you start hitting the limits. Rust takes you to the absolute limits of the metal without compromising safety. It's not that Java couldn't fit in this mix. It's that there's no need for Java in that list. Java can't run in the browser, isn't anywhere near the best fit for lambdas, uses more resources for the same task (higher costs) in containers/K8s, and hits a hard limit for optimization at the systems level. Again, Java's definitely not going away, but it's clearly no longer the default choice for greenfield in a growing number of orgs.
- riku_iki 3y ago> These scenarios may not matter to you, but they matter to a lot of folks today and even more tomorrow. is it really true? Counting 10s MB sounds like irrelevant to both today and tomorrow when servers with 100GBs are very affordable.
- 3y ago
- Khelavaster 3y ago"I don't care about c# or typescript"
- ttfkam 3y agoSQL once again the GenX of languages, keeping foundational aspects working reliably while being mostly ignored as other technologies constantly seek attention and pats on the back. "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."
- neocritter 3y agoEveryone interfaces with it as secure abstractions in their chosen language, so it's understandable if most people don't think of it when they think of programming languages.
- ttfkam 3y agohttps://xkcd.com/2347/ https://xkcd.com/2347/
- igouy 3y agoWe should believe that because …?