Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It is a local problem when you're doing HPC. Not for most business apps though I agree.



FORTRAN lumbers on because its memory model is simpler than C and many other languages so it runs faster.

If you write Java programs that allocate a few huge arrays and don't allocate anything after that they run pretty fast too.

I wrote a Python chess program in two weekends that was good enough to beat a serious beginner but that I didn't feel I could take to the chess club because it couldn't respect time control the way it was written. I started rewriting it in Java and realized that if I wanted decent performance I had to not allocate anything in the inner loop. Transposition tables using Java hashtables are a net loser at the depths it is working at, I really gotta write something that works at the bytearray level off-heap but it's not that hard of a project because, like the typical HPC code, it's not really that complex/complicated.


This is pretty much it. When you are at HPC performance requirements, the rust pain doesn't matter too much - but... You can also get decent perf in any language by being careful about the allocations. The lack of gc provides an at most 2x benefit for a reasonably well optimized java program in this setting.


Some people thought Java was the new COBOL as early as the early 2000s but it was one of the first computer languages designed and specified by adults (I'd add Common Lisp to that list, if you look at the CL spec and the Java spec you realize they are both nicely structured with none of the strange circularity that plagues The C Programming Language)

Threads in Java are just great, you really can write programs that get a 14x speedup on a 16-core machine. Web servers can use threads for managing concurrency and for parallelism handling individual requests. I look at how much pain people go through with async in Rust (another global-local problem where they'll be pushing that bubble around under the rug when they give up) and contrast that to the ease of threads in Java, so long as you get to understand all the primitives that Java offers to deal with common problems and don't get seduced by the false promises of Fork-Join, Scala actors and such.


Even HPC, unless there is some surprising wind of change, Chapel has much more adoption opportunities than Rust will ever had.

Like GC/RC languages are now considering how to introduce linear/affine/effects into their type system in ways that aren't too alien, Chapel is being designed from start with similar approach.

The productivity of automatic resource management most of the time, with the knobs of advanced type system, for when actually matters.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: