Hacker News new | ask | show | jobs
by pjmlp 8 days ago
I love it starts with the usual hand waving,

> This is an experimental, work-in-progress port of React Compiler to Rust. ...

And then gets merged.

So after the craziness to use node on the backend, we are back to using compiled languages to compile Javascript assets and Web resources, just like Java and .NET were doing in the 2000's, however since it is Go and Rust it is cool, not the boring languages grandpas were using on their heyday.

2 comments

TBF there is an advantage to having a tool like this being a native binary in Rust or Go, which are rather smaller, faster to start up and don't need a runtime like the JVM or .NET. It's also a lot more "web native" than Java applets were.

I'm not sad to see the pendulum swing away from "javascript everywhere" though.

Java has had native code compilers at very least since Excelsior JET exists, and there is a whole story of commercial offerings, before GraalVM and OpenJ9 come to be, so a moot point in 2026.

Likewise, .NET has had NGEN since day one even if with limitations, and after several detours in AOT approaches, NativeAOT is in the package and cross platform, thus also a moot point in 2026.

But again, they aren't cool for the kids today.

The point isn't "AOT", the point is an efficient, compiled binary. Acting like Java's AOT story is comparable to a native Rust binary is delusional.

And yes, both languages are considered "not cool" since they lean heavily into code structuring that the industry has largely moved past.

AOT Java on Graal is quite mature at this point

AOT .NET is an official first party distribution target that in my experience is on par with building a Go binary

Don't knock it till you try it

If you mean OOP, it is pretty much present in the industry, including the very cool AI darling, the Python language, to its very bones.
Yes, languages from decades ago continue to support OOP. I don't know what your point is. As I said, the industry has moved on from the OOP-craze and so the languages that hamstring you into everything being OOP are not as interesting to people these days.

I don't see what Python has to do with anything.

Go and Rust also do OOP, even if it isn't the Java OOP model everyone only knows about.

In fact both languages conveniently map to COM object model, and Microsoft is putting that to good effect.

Than we have Swift and Kotlin, plenty of OOP on those Apple and Google frameworks.

Zig, Odin, remain to be seen how industry relevant they will be, and yet examples of structs with function pointers abound among their projects, C OOP style.

So....

I think you miss my point a bit. It's not about what can be done with those ecosystems in 2026 - you mentioned what was done in the 2000's, and I'm suggesting one reason that wasn't perceived as "cool" is because of the whole VM / overhead requirement. Maybe technologies for that existed then, but they certainly weren't being used much - every experience I remember with Java back then was "download this jar, now go and get yourself a JVM to run it".

And I do still think there is an advantage for this kind of tooling to choose languages that are designed to compile to a native binary. At best Java and C# are equivalent to Go and Rust here, maybe they are less "cool" but I don't see any reason why this rewrite would be better if it were to Java than Rust.

Golang and rust should not be grouped into the same category though. The former is closer to Java/C#, and gets beaten by them in large systems.
> I love it starts with the usual hand waving,

> And then gets merged.

The initial commit attached to that message was the start of the experiment. Are you reading the first message as if it was the last?

It was merged after 3 months and a huge number of incremental commits. The code that was merged was completely different than the code used to open the experimental WIP PR

Why is it a criticism that they started as a work in progress experiment? That’s how experiments work. It’s normal to push code as a work in progress PR and then add to it over time.