Hacker News new | ask | show | jobs
by pjmlp 879 days ago
WASI aka redoing CLR Common Language Specification.

https://en.wikipedia.org/wiki/Common_Language_Infrastructure

https://ecma-international.org/publications-and-standards/st...

> This Standard defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications to take into consideration the unique characteristics of those environments.

6 comments

I've seen you comment this on a lot WASM posts (often as a criticism) so I have to ask, as someone who doesn't have knowledge of either, what is bad about this? Even if Web Assembly only has a subset of what CLR offers, isn't it a good thing a standard has been created that people are actually able to implement?

If Microsoft was not aligned with developers in the early 2000's, that failure is on them.

Presenting as if it was the first done anyone has done any of this, UNCOL was the first time such ideas came to be, in 1958.

Plenty of historical attempts to dive into, since 1958.

Now we have startups redoing Java and .NET application servers, with Kubernetes, WebAssembly, WASI, and YAML spaghetti, because that is so much better.

Edge devices running bytecode? That is so last century.

You're right that the fundamental ideas behind WebAssembly and WASI are not particularly new.

The most exciting part about WASI for me, though, is that it's sticking to a capability-based interface and it's actually gaining a lot of traction. There are few examples of capability systems getting as much attention as this.

Do you have any pointers to more in-depth comparisons to Java's security model and some analysis of why wasm should work better?

Is the idea mainly that permissions are more fine-grained? It probably makes porting existing applications tricky, though, right?

This just seems like an odd way to put people down, though. Some of us are not going to know the origin of most things that we use, but the reason for that is because those things weren't successful and web assembly is (relatively).
When people are present stuff as new they should have done their research, otherwise we will never get free from the computing fashion industry.

It is like microservices bandwagon nowadays, apparently distributed computing "Network is the Computer", computing agents, distributed objects, and service oriented architectures, also failed by the wayside.

But the new part is that people are implementing it. That seems like an important distinction. CLR did not fail because the idea is inherently flawed.
What’s old is new again.

Edge devices running bytecode has its uses. Being an old idea doesn’t discredit it (neural networks were first described in the 70s)

At least WASI is a standard unlike flash or Java applets.

De facto standard is still a standard.
Standard may have been the wrong word.

Maybe “open spec” or “open standard” is better.

The tech world is full of standards that didn't catch on universally for one reason or another.

If a new attempt can try the same idea, learn some lessons, and get more traction then I think that's a good thing.

As long as one acknowledges the trailed path I guess.
Who cares that much? Should WASI have an entire history of cross-platform computing in its spec?
Yes, that is a common section in computing papers.
WASI isn't an academic paper.
Pardon me, I thought there was some rigor involved, my mistake.
If the CLR wouldn't have focused on managed languages like C# but instead would have allowed to run C and C++ (unmodified, not the Franken-C++ Microsoft came up with multiple times which required substantial code modifications) more people would have taken it serious. Same with the JVM+Java+Oracle combo.

But then Emscripten came along and showed how it's done properly, and everything derived from that (asm.js, WASM, WASI) was just evolution at work.

I love how only Franken-GCC and Franken-clang have the right to be praised, among the universum of Franken-not-ISO-Extensions.

Last time I checked Emscripten was using Franken-clang.

From your first link:

> Microsoft and its partners hold patents for CLI. Ecma and ISO/IEC require that all patents essential to implementation be made available under "reasonable and non-discriminatory (RAND) terms." It is common for RAND licensing to require some royalty payment, which could be a cause for concern with Mono. As of January 2013, neither Microsoft nor its partners have identified any patents essential to CLI implementations subject to RAND terms.

With such FUD, I guess no wonder CLI didn't have wider adoption.

The open source implementation of CLI was also left to the community, the main one being proprietary. If Microsoft & co wanted an actual usable standard, they could have done a better job.

Doesn't change the fact it was done before, and it is only the most recent example, plenty of bytecode formats to explore since 1958.
I'm answering a comment of yours that exclusively mentions CLI. You can't blame anyone for not reusing the un-reusable. You are not contradicting me on this so let's forget about CLI, it doesn't matter it was done before since it's not a viable option or wasn't at the time WASI was being created. Or actually refute this if you think this is wrong.

Now, you are extending the scope to "all bytecode formats ever created" but that's not what I replied to and it makes your point a moving target. But fine, let's extend the scope, though I don't have a particular opinion on WASI, I haven't looked into it much.

How do you feel about the existence of multiple programming languages? CPU instruction sets? serialization formats?

Maybe WASI was specifically designed with the use case at hand and a new design was the better option. Saying previous work exists is not nearly enough. Most things are like this. They build on top of existing stuff taking inspiration from prior work.

I know nothing much about WASI. Convince me that an existing bytecode would have been better. Describe specific and detailed flaws.

Until then I'll just consider you just hate it for some unknown reason, so much you want others to join you.

I don't have time to waste teaching history of bytecodes to those that think WebAssembly is the be all, end all of bytecode formats.

Whatever you consider me to be, it is your opinion, keep it for yourself, share it with the world, whatever.

I've seen nobody state this. FWIW I'm most familiar with the Java bytecode of which I read the spec, not much more.

I have no particular opinion about you, in particular nothing against you.

Are you saying that they are just copying MS or MS is controlling the standard, or that we don't need the standard because we have CLR?

Regardless I think WASM and WASI are huge step in right direction since most if not all relevant languages are going to support it.

Not only MS, plenty of past attempts since UNCOL in 1958.
That’s only used for .NET and other ms technologies. There is a totally different ecosystem surrounding WebAssembly.
Yeah, that isn't as fashionable and with startup opportunities.