http://tirania.org/blog/archive/2010/May-03.html
ECMA CLI would have given the web both strongly typed and loosely
typed programming languages. It would have given developers a choice
between performance and scriptability. A programming language choice
(use the right tool for the right job) and would have in general made
web pages faster just by moving performance sensitive code to strongly
typed languages.

A wide variety of languages would have become first-class citizens on
the web client. Today those languages can run, but they can run in
plugin islands. They can run inside Flash or they can run inside
Silverlight, but they are second class citizens: they run on separate
VMs, and they are constrained on how they talk to the browser with
very limited APIs (only some 20 or so entry points exist to integrate
the browser with a plugin, and most advance interoperability scenarios
require extensive hacks and knowing about a browser internal).

Perhaps the time has come to experiment embedding the ECMA CLI inside
the browser. Not as a separate plugin, and not as a plugin island, but
as a first-class VM inside the browser. Running side-by-side to the
Javascript engine.

Such an effort would have two goals:

    * Access to new languages inside the browser, optionally
statically typed for major performance boosts.
    * A new platform for innovating on the browser by providing a safe
mechanism to extend the browser APIs.

We could do this by linking Mono directly into the browser. This would
allow developers to write code like this:

<script language="csharp">
from email in documents.ElementsByTag ("email")
        email.Style.Font = "bold";
</script>


Or pulling the source from the server:

<script language="csharp" source="ImageGallery.cs"></script>

We could replace `csharp' with any of the existing open sourced
compilers (C#, IronPython, IronRuby and others).

Or alternatively, if users did not want to distribute their source and
instead ship a compact binary to the end users, they could embed the
binary CIL directly:

Reply via email to