[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: bytecode unification for scripting languages



> Ayn Rand blah blah blah...

(I read sooo much Ayn Rand when I was in my late teens...)

Later on in college, in my History of Technology course, the professor
taught
a different idea. Basically, that there are no John Galts,
Hank Rearden's Francisco D'Anconia's, et al. The idea is that technology
"evolves".
Every new idea is just an extension of an existing idea.

I think that Microsoft has exploited this to a very great extent with
their "embrace and extend".

1. Ideas are easy to come up with.
2. Good ideas are hard to come up with.
3. New ideas are very hard to come up with. There are simply
too many other people coming up with things, and too many things
already invented.
4. New *good* ideas are harder still.
5. New ideas are very hard to market.

So take an existing idea and expand upon it. 
1. At worst, you will have merely expanded upon something already proven.
2. If you get lucky your expansion will actually prove useful and with a
little
   bullshit from the marketing department, people will see the whole thing
as a "great new idea".
3. A lot of the marketing work is already done, because the underlying idea
is
   already "proven".

Shriram has some good reason's to use the MS VM:

> - a run-time system (object/value creation, GC, etc)
> - native code generation made easy
> - interoperability
> - a big run-time library

I will add still another good reason:
Lots and lots and lots and lots of people are going to be using it. If you
run
on the MS VM, it is that much easier to get your language into the
mainstream.

Anton has an objection to the MS VM:
> Javascript, Perl and Ruby all implement a complete closure capability;
> Python also tries (last I looked).  How well will closures from these
> languages interoperate with Scheme's, if these languages are all
implemented
> on .NET?  They probably won't interoperate at all, but they could, and
there
> would be benefits in their being able to do so.

MS's VM is already a victory. By embracing and extending "The VM" they have
simply given
recognition that it is one of those "proven" ideas that is worth expanding
on it. And by the
time the MS, marketing department is done with it, they'll have you believe
that
Bill Gates himself invented it, while he and Paul Allen were talking over
coffee about the Mariners.
(Did you know that Paul Allen invented baseball? Or was it coffee?)

One good turn deserves another, so why not embrace and extend .NET?

Step 1:
Come up with a specification for a CLR for Scheme, ML, Perl, Ruby, Python et
al. i.e. all
the languages that have higher level constructs in common which could
benefit from
having special stuff in their VM. Call this the CLVM for "Closure Language
VM".

Step 2:
The CLVM backend doesn't compile the "bytecodes" to machine language,
instead it should compile
them to MS VM "bytecodes". In light of this, the CLVM should snarf as much
as it can
from from MS VM --- but without sacrificing the cool bits you need for the
geek languages. Now
call the CLVM the GLL --- "Geek Language Layer".

Advantages:
1. You still run on .NET, so you get all the benefits that Shriram talked
about.
2. You still have a common *layer* to which the geek languages compile, so
you can
pick up all the benefits that Anton talked about.

Looking ahead:
Step 3:
Once you get the programming language research community all working on the
same thing,
then you can start talking about focusing all the brain power on larger
things. For example
Shriram's suggestion:

> Why not take the CIL/CLR spec and build a really great implementation
> of it instead?  Here's an opportunity where Linux and the Open Source
> movement can completely embarass Microsoft.



(--- Ayn Rand nonesense below, scroll down only if you care ---)












































































































P.S. With regards to Ayn Rand and my History of Technology professor: I've
always wondered
what would have happened if we could build a time machine and go back and
assasinate Adolf
Hitler --- and Stalin too while we're at it. While my history professor
insisted (essentially)
that there are no John Galts, it has always seemed obvious to me, that there
have existed
some really choice assholes (e.g. Hitler, Stalin), who's elimination from
history might have
made for a happier ending. Someone pointed out that a certain plane crash
had only a minor
affect on the football community. I'll wager that everyone here has a list
of villains from
the past that they would substitute for the athletes on the plane at the
drop of a hat.
And so, assuming that we all know "who is Adolf Hitler", I pose what appears
to be the
more difficult question, who is his antithesis, "who is John Galt"?