This
recording of a Q&A with Noam Chomsky in 1997 could be
a Q&A session done last night about bailouts, corporate
wellfare, and the various distractions that they use from
keeping us in the dark, like caring about "fiscal
responsibility".

With our push to share the kernel of your software in
reusable C# libraries and build a native experience per
platform (iOS, Android, WP7 on phones and WPF/Windows,
MonoMac/OSX, Gtk/Linux) one component that is always missing
is what about doing a web UI that also shares some of the
code.

Until very recently the answer was far from optimal, and
included things like: put the kernel on the server and use
some .NET stack to ship the HTML to the client.

Today there are two solid choices to run your C# code on
the browser and share code between the web and your native
UIs.

JSIL

JSIL will translate the
ECMA/.NET Intermediate Language into Javascript and will run
your code in the browser. JSIL is pretty sophisticated and
their approach at running IL code on the browser also includes
a bridge that allows your .NET code to reference web page
elements. This means that you can access the DOM directly
from C#.

Saltarelle Compiler

The Saltarelle
Compiler takes a different approach. It is a C# 4.0
compiler that generates JavaScript instead of generating IL.
It is interesting that this compiler is built on top of the
new NRefactory which is in turn built on top of
our C#
Compiler as a Service.

It is a fresh, new compiler and unlik JSIL it is limited to
compiling the C# language. Although it
is missing
some language features, it is actively being developed.

This compiler was inspired by Script# which is a
C#-look-alike language that generated Javascript for consuming
on the browser.

Native Client

I left NativeClient out, which is not fair, considering
that
both Bastion
and Go
Home Dinosaurs are both powered by Mono running on Native
Client.

The only downside with Native Client today is that it does
not run on iOS or Android.