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

1994 blog post: "java.lang: A New Kind Of System Interface"


I was also reminded of Java when it delved into "you don't even know you have a file, it's just a stream". The stream abstraction of course predates Java. But Java is where (IMO) developers really started embracing programming to these kinds of abstract interfaces en masse.


Some examples for the curious, CLU, Smalltalk, Common Lisp/Interlisp-D, C++, Object Pascal.


I'm also slightly annoyed nowadays by "A New Kind of X" simply because of Wolfram's self-aggrandizing book A New Kind of Science.


Do we have to make this joke every single time anything WebAssembly comes up. We get it Write Once Run Anywhere was done before.


Yes, because most WebAssembly advocacy knowingly ignores the past to sell their agenda.

It isn't only Java, bytecode as execution format goes all the way back to late 1950's, Gosling quite clearly asserts the work that Java builds upon, contrary to the WebAssembly folks.

https://queue.acm.org/detail.cfm?id=1017013

"Back when I was a grad student at Carnegie Mellon, I had this problem where I needed to have some kind of an architecture-neutral distribution format. We had a bunch of workstations called PERQ machines. The folks who built them were a bunch of hardware guys who didn’t want to do software. The only compiler that they could get for free was UCSD (University of California San Diego) Pascal. So they made the hardware interpret UCSD Pascal p-codes.

My thesis advisor, Raj Reddy, asked me to spend the summer trying to figure out how to get the software from these PERQ machines to run on our VAXs.

I started out writing a little hardware emulator, just to understand the p-codes. Then I realized I could actually write a code-generating program that translated from Pascal p-codes to VAX assembly code.

So I wrote a hardware emulator for the PERQ machine that did hardware emulation by translating, and I spent a bunch of time trying to figure out why it was that the translation actually worked. One of the things that I noticed was that the code that I was getting at was actually better than the code that was coming out of the C compiler. I was quite floored by how well it worked, and I spent a bunch of time thinking about what it was about p-code that actually made it work, versus trying to do this for some other instruction set.

Then fast-forward a bunch of years, when I was trying to do the project that Java came out of. I had to do this architecture-neutral distribution format, and then I just went ka-ching! You know, this p-code translator thing would actually just drop in there."

As another example of hidden agenda, most WebAssembly sales also ignore PNaCL and CrossBridge, only mentioning asmjs as previous art.


I used Java on web and PNaCL quite heavily, but I also love WASM. Mainly WASM is open, those others not so much.

But I don't understand, you make the Java joke because previous attempts aren't recognized enough?

There's plenty of blog posts about transitioning from them, Chromium (the only ones who implemented PNaCL) did one, as did others.


Not only Java, there are a pool of similar ignored technology all the way back to late 1950's.

There are plenty of WebAssembly articles selling it as being the first kind of bytecode to support C like languages.


Many articles for many topics are ignorant or plain wrong.

That doesn't detract from the technology itself, which is great.


Great at reinventing the wheel.


The other wheels weren't round enough.


They were, but the buyer sneered at them.


Idk about you but I remember Java applets being really slow, and the applet sandbox horribly insecure.


Nobody ever claimed it was new. It wasn't new when Java tried it.

And the actual Web-Assembly developers don't ignore that stuff. And even if they did so what? Re-inventing the wheel is common and sometimes something good and new comes out of it.


And it's not like Java is in the browser and WebAssembly is trying to reimplement something that's already available. Java got kicked to the curb and for a reason. If it's such a superior solution go ahead and put it back and show all the people working on WebAssembly what a waste of time it is.


Nah, I appreciate the wonderfull work of those WebAssembly people that allowed me to have Java applets, Flash and Silverligh running again in the browser.

https://leaningtech.com/cheerpj/

https://leaningtech.com/cheerpx-for-flash/

https://opensilver.net/

Thanks for making the revenge of plugins a reality.


Ah but they do claim, that is the big different to the Java authors.

Something good like re-inventing EAR files.


Please show me text by actual core developers that claim something is 100% new that isn't. And I'm not talking about some random articles you find with googling.

And btw, not mentioning prior art doesn't count.


So it is only valid if it fits your view of the world, won't bother.


What are you even talking about. I asked you directly to show me evidence of the claims you made, nothing else.


"And I'm not talking about some random articles you find with googling. And btw, not mentioning prior art doesn't count."

Tainted evidences, you ask. Me no bother.


So really you have no evidece at all, you are just generally angry at everybody who is involved with WebAssembly because they don't site your work and that makes you bitter. Got it.


Yeah it worked well if you were ok with writing code in Java. Guess what? Lots of people don't want to write Java.

WASI lets you use lots of languages included non-GC languages (GC'd languages are a bit of a WIP but it's going to happen).


> Guess what? Lots of people don't want to write Java.

It's funny that some of the most popular languages these days are Go (crippled Java 1.4) and Rust (Java for frontend web developers who need to be tricked into it) so it seems like lots of people really do want to write Java.


That's such a weird thing to say. Go and Rust are both very different to Java.


Just like Amsterdam Compiler Kit or IBM TIMI, as two examples among many others for bytecode used by non-GC languages.


You didn't need to write java to use the JVM, but okay.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search: