CLI on the Web? Sure, but put x86 their first
Miguel blogged a great idea today, expanding on Joe Hewitt’s simple statement on Twitter:
If CLI was the ECMA standard baked into browsers instead of ECMAScript we'd have a much more flexible web.
Agreed. I’d love to be able to run C# instead of Javascript on my web page. I’d also love to be able to run Ruby. Or even Scala. So why not JVM on the Web? What about Go?
Why not indeed. If there is going to be a push to have broader language support on the web, let’s jump over the problem of picking the right VM and Garbage collector. Let’s skip shared agreement on compatibilities between Microsoft’s implementation and Miguel’s.
Let’s go straight to Native Client.
I’ve talked about Native Client before. Here’s the official summary:
Native Client is an open-source technology for running native code in web applications, with the goal of maintaining the browser neutrality, OS portability, and safety that people expect from web apps. We've released this project at an early stage to get feedback from the open-source community. We believe that Native Client technology will help web developers to create richer and more dynamic browser-based applications.
Native Client runs on 32-bit x86 systems that use Windows, Vista, Mac OS X, or Linux. Some ARM and x86-64 support is implemented in the source base, and we hope to make it available for application developers later this year.
Instead of worrying about Mono or Microsoft worrying about getting the sandbox right for the browser, let’s solve it once.
Then I can target the C# with the Mono CLI.
Or IronPython with the Microsoft CLR.
Or Ruby with JRuby. Or just MRI, if I want.
I’m certainly waving my hands over a lot of technical details. I know.
My thought is simply this: CLI as another Javascript is radical idea.
Perhaps just not radical enough.