Let’s reinvent java bytecode but… different
I mean, hardly anyone complaining about Java does so because of JVM bytecode.
I’m not sure, where the wasm hate is coming from.
No hate, just a stupid meme. WASM has the possibility of replacing JS in the browser, however it had to reinvent the JVM 🤷 As long as it gets rid of the JS dominance in browsers, I’m all for it.
Anti Commercial AI thingy
It probably won’t get rid of js’s dominance, but it’ll give people options. I already see some front end python and rust frameworks thanks to wasm. But for some reason I really don’t like the idea of writing html / css in my rust. But I don’t like the idea of html / css in my rust.
I really don’t like the idea of writing html / css in my rust
Yeah, I’m not sure if there are very good alternatives to that. Everything I’ve seen tends to go in that direction: markup language + stylesheet language. But HTML and CSS for sure aren’t the best.
There’s HAML and Pug, which I did enjoy writing much more than HTML.
Anti Commercial AI thingy
I like flutter’s design where you do your markup and styling as code, and then it gets rendered via opengl. So you get that native performance without having to deal with the whole browser stack.
I don’t like how almost all software these days is just web apps masquerading as native apps, but they’re just so damn easy to write compared to anything else.
I don’t like how almost all software these days is just web apps masquerading as native apps, but they’re just so damn easy to write compared to anything else.
Yeah, we definitely need better UI frameworks with a clean and easy approach. So far, I’ve been enjoying Slint, but that’s also because I refuse to touch HTML/CSS/JS.
Anti Commercial AI thingy
You can’t compile C to java bytecode, they are fundamentally incompatible. But you can compile C to wasm, which is what you want for a good universal bytecode. Java is shit.
May I introduce you to https://github.com/davidar/lljvm
The C to JVM bytecode compilation provided by LLJVM involves several steps
Have you seen what it outputs? The same way we can compile C to brainfuck, it doesn’t mean it’s good or is useful.
- “compiling C to java bytecode isn’t possible”
- *link to project that does exactly that*
- “it’s not good or useful”
- *WASM exists*
- “that’s useful”
… OK
Anti Commercial AI thingy
I can’t quite understand what is your point? Are you arguing that both JVM and WASM are bad? With this I agree, they both have terrible performance and in an ideal world we wouldn’t use any of them.
Are you arguing that JVM bytecode is better than WASM? That’s objectively not true. One example is a function pointer in C. To compile it to JVM bytecode you would need to convert it to the virtual call using some very roundabout way. But in WASM you have native support for function pointers, which gives much better flexibility when compiling other languages.
There is no point. It’s a stupid meme, not to be taken seriously in a “programmerhumor” community. It’s about as serious as demanding the Biden be the arbiter of good and bad programming languages, or saying JS should be used to punish convicts.
Look at the other people saying stuff like “JAVA: Just Another Virtual Assembler” or something. They aren’t taking it seriously.
Anti Commercial AI thingy
haha java is terrible, mostly because of who owns it.
Was Java still terrible when Sun owned it?
Anti Commercial AI thingy
The problem with java is the language and how it works itself, and not the byte code idea.
I say that as a few things do that and .net, java and wasm are the first that jump to mind.
Hell, pure technically any programming language that is not asm does that :')My problem is java itself, not its byte code. Wasm as advantage, imo, is that its not stuck to a single language like java is. .net blazor can build to wasm, but you could also use c++ to compile wasm applications :)
I’m not sure why the WASM creator(s) didn’t take advantage of the existing java bytecode and JVM instead of reimplementing it. Might’ve sped up its adoption. Doesn’t matter to me though, as long as JS stops being the #1 in web development.
This meme isn’t to be taken seriously
Anti Commercial AI thingy
Why would they? WASM is Web-Assembly, so Assembly is a lower level language than Java.
You can use C# WASM through Blazor, and Java WASM though JWebAssembly. WASM as core is supposed to be language agnostic. So If you want a JVM in WASM you can build it on top of it
Java makes bytecode which is run in a JVM, WASM is bytecode which runs in a VM.
Anti Commercial AI thingy
I’ll be chilling over in PHP. Let me know when you’re ready for a real language.
The language of “as long as it works” champions 💪
Anti Commercial AI thingy
WASM = WebAssembly,
this has nothing to do with Java,
but with JS (JavaScript).JS works with JIT (Just In Time) compilation, meaning every user that requests a web page, will request the JS and your browser will compile that JS on the fly as you request it.
WASM on the other hand is pre-compiled once, by the developer, when he/she is making the code. So when a user requests a WASM binary, they don’t have to wait for JIT compilation, since it was already pre-compiled by the developer.
They only have to wait for a tiny piece of JS,
which is still JIT compiled,
a tiny piece of JS to load in the WASM binary.This saves the user from waiting on JIT compilation and thus speeds up requesting web pages.
WASM also increases security,
since binaries are harder to reverse engineer then plain text JS.Due to those reasons,
I believe WASM will be the future for Web development.No clue why people are hating on WASM,
but I guess they just don’t grasp all of the above yet.Wasm code (binary code, i.e. bytecode) is intended to be run on a portable virtual stack machine (VM)
Java bytecode is the instruction set of the Java virtual machine (JVM), crucial for executing programs written in the Java language and other JVM-compatible languages
Need I say more?
Please do say more because I don’t think the argument you’re trying to make is coming across clearly. Obviously your intelligence is at a level far higher than us low-iq plebs, and we need your brilliant mastery of these topics to be poetically spelled out for us. For we are not worthy otherwise.
The main difference is that WASM is an agnostic bytecode without a gc while the jvm is opinionated in a java way. It has a gc, focus on dynamic dispatch and it has knowledge of concepts like exceptions, classes and visibility.
All this leaking of abstractions means languages like java and kotlin are well suited, scala has hit problems and c couldn’t be compiled to java bytecode.
C can be compiled to java bytecode though…
Anti Commercial AI thingy
Of course, technically you can compile anything to almost anything. But I don’t think linking to a project that’s unmaintained for 15 years really helps your argument.
What is my argument exactly?
Anti Commercial AI thingy
Do you really think the reason people hate Java is because it uses an intermediate bytecode? There’s plenty of reasons to hate Java, but that’s not one of them.
.NET languages use intermediate bytecode and everyone’s fine with it.
Any complaints about Java being an intermediate language are due to the fact that the JVM is a poorly implemented dumpster fire. It’s had more major vulnerabilities than effing Adobe Flash, and runs like molasses while chewing up more memory than effing Chrome. It’s not what they did, it’s that they did it badly.
And WASM will absolutely never replace normal JS in the browser. It’s a completely different use case. It’s awesome and has a great niche, but it’s not really intended for normal web page management use cases.
Do you really think the reason people hate Java is because it uses an intermediate bytecode? There’s plenty of reasons to hate Java, but that’s not one of them.
No, I do not. It’s a meme.
Anti Commercial AI thingy
Java is disliked because it’s designed around flawed OOP principles developed in the 80s and 90s. The code easily turn into a mess if you adhere to these principles, because they’re flawed. If you avoid using these principles, you will still get a mess, because that’s not how Java is supposed to be used.