Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Fri, 31 Jan 2003
.NET and the CLR
I find myself thinking more and more about doing some work in the CLR
environment. Notice that I said CLR, not necessarily .NET. Near the
end of my grad school days in the early 90's, some friends of mine
asked me to sit in on a programming languages seminar that they were
running. We talked about Oak/Java, Dylan, and a bunch of other
languages. A that time I was not particularly impressed with Java as
a language. Compared to the Lisp family of languages, Java was just
barely catching up. Now that Java is a success, some folks would like
you to believe that Java invented dynamic languages, and that the only
thing left to do is expand the libraries until they bloat up and
consume the world -- which they're well on they way to doing.
I have a slightly different perspective. The adotption of managed
environments (the combination of JIT VM's and automatic memory
management) is a long overdue development in the evolution of software
development, but we haven't arrived. There is a lot of room for
improvement in the languages that we are using to today. The JVM and
the ecosystem around it are focused on Java. Yes, there are
implementations of lots of other languages on the JVM. Yes, some of
them talk to Java. But for non-technical reasons, the JVM is going to
be focused on Java, and for reasons of compatibility Sun is going to
continue to evolve the JVM very slowly.
I'm interested in a managed environment that can still evolve and
grow. Microsoft is claiming that this is what they want. I'm not
sure that I believe that they will continue to evolve it. But it
doesn't matter. Mono provides a managed environment
that can evolve. It has compatibility with the current ECMA
CLR and will continue to. Compatibility to the MS CLR is nice, but
Miguel says that they have Mono running on Windows as well. So here
we have an open source, potentially evolvable managed environment. If
the Mono guys can get just the ECMA specified portions of the CLR
running well, I think that this is very interesting. I'm interested
in seeing continued innovation at the runtime level, and that's not
really happening with the JVM. What is happening is improvements in
the quality of implementation. I'd like to see the Mono ECMA CLR,
with a switch that can be flipped to go into Microsoft compatible
mode, however compatible that turns out to be, for whoever cares to be
compatible. But I'm just as happy to see an open source CLR based
runtime evolve starting from what is Mono today, and if it forks from
the Microsoft one (due either to Microsoft changing theirs or the open
source one changing), I'm not bothered by that.
So, am I a heretic yet?
Then we go on to build managed libraries that provide Windowing API's,
etc. Then Haskell.CLR can actually
talk to the rest of the computer, and we get to a place where
everytime we want to innovate in the language space, we don't have to
throw away the ability to do useful stuff. That's been the single
biggest problem with adoption of "advanced languages" is
that they can't talk to the rest of the computer, and they can't
leverage any existing library code. I think that a scheme such as the
one I'm proposing might actually work.
People will suggest that open sourcing the JVM would solve the problem
just as well. Possibly, but I've given up hope that Sun will decide to
open-source Java and the JVM. Even if they do, they'll encumber it
with something like the JCP. Unfortunately, in my opinion, the JCP is
not in the innovation business. It is in the keep things under
control business. If you look at the number of Jakarta projects that
are used in all kinds of software projects, you realize that things
don't have to be standardized by the JCP in order for them to be
adopted broadly. I want to see something that can grow and evolve and
where the best code can win.
Maybe I really am a heretic.
[22:27] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |

You can subscribe to an RSS feed of the comments for this blog:
Add a comment here:
You can use some HTML tags in the comment text:
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk

To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
<a href>
, <em>
, <i>
, <b>
, <blockquote>
, <br/>
, <p>
, <code>
, <pre>
, <cite>
, <sub>
and <sup>
.You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk