Hacker News new | past | comments | ask | show | jobs | submit login

Hopefully this is the beginning of the end for JVM use in data-centric applications like this. I'm not particularly bothered if it's Rust or C++



I still don't understand why lots of new databases and data applications (Neo4J, Cassandra, Hadoop ...) are written in Java when it is well known that Java is not well suited to these types to tasks: GC freezes, bad memory model for large data, not fully compiled as so much slower when compared to C++, C or Rust. Why choose Java for these applications?


Productivity, unmatched tooling for cluster monitoring, memory safe by default, value types are coming.

And even without value types, there are off heap allocations, also if "Python" libraries can be actually written in C, so can Java ones, without loosing the plus of the ecosystem.


I think those are ok trade offs for a lot of projects but not for high performance and low latency applications such as databases. It seems to me that those project have shot themselves in the foot before even starting.


I doubt Hadoop would have been as successful if written in C or C++.

While the database engine of most RDMS servers is written in C and C++, anc it won't change given the history behind the code, the bulk of the code is written in some form of managed SQL, with IBM, Oracle and Microsoft also allowing for Java and .NET code.

Finally, https://www.efinancialcareers.co.uk/news/2020/11/low-latency...

Once upon a time, anyone knew that high performance systems were naturally only viable in Assembly unless proven otherwise.

Or how C++ wasn't ever to be a thing in game development, C was the king of console SDKs, after years trying to take Assembly's place on 16 bit platforms.


Well, to quote TFA:

> Essentially, we use a contrived form of Java that avoids all the Java constructs that make things go slow. We only use the constructs that are fast and efficient, and we avoid all the garbage

> The only problem with low latency Java is that most experience Java programmers struggle with the new paradigm. "A lot of people who program in Java are used to working in an environment where latency isn't a criteria," says Lawrey.

So, the best Java developers would be former C/C++ developers. That's hardly a ringing endorsement for the language. Look at LMAX's Disruptor, for example. It's hardly Java since it gets its performance from use of sun.misc.UnSafe.

Java does give you quite good IDEs though. That's about it.


35 years ago,

So, the best C developers would be former Assembly developers. That's hardly a ringing endorsement for the language. Look at XYZ game, for example. It's hardly C since it gets its performance from use of inline Assembly.

C does give you quite good shell utilities though. That's about it.


We switched from Cassandra (Java) to Scylla (C++) and saw immediate improvements in both query latency and machine count.


Except value types will put an end to the anti-JVM dream.

C++ is never going to be safe by default, unless ISO is willing to do a Python 3.

Rust still needs to improve its usability story against everything that is available on the JVM, and compile times, oh boy.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: