5 ms·
1994 blog post: "java.lang: A New Kind Of System Interface"
by Starlevel001 5y ago
1994 blog post: "java.lang: A New Kind Of System Interface"
- IshKebab 5y agoYeah 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).
- Starlevel001 5y ago> 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.
- IshKebab 5y agoThat's such a weird thing to say. Go and Rust are both very different to Java.
- gorjusborg 5y agoYou didn't need to write java to use the JVM, but okay.
- pjmlp 5y agoJust like Amsterdam Compiler Kit or IBM TIMI, as two examples among many others for bytecode used by non-GC languages.
- etaioinshrdlu 5y agoI'm also slightly annoyed nowadays by "A New Kind of X" simply because of Wolfram's self-aggrandizing book A New Kind of Science.
- panick21_ 5y agoDo we have to make this joke every single time anything WebAssembly comes up. We get it Write Once Run Anywhere was done before.
- pjmlp 5y agoYes, 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 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.
- hunterb123 5y agoI 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.
- mypalmike 5y agoI 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.
- pjmlp 5y agoSome examples for the curious, CLU, Smalltalk, Common Lisp/Interlisp-D, C++, Object Pascal.