Ian Bicking in a comment captures the problem better than I have...
The CLR is trying to do something difficult. It's not just the kernel upon which languages can be built, but an infrastructure so that languages can be intimately combined. I suspect that there are some combinations that are poorly thought out. For instance, I don't think cross-language inheritance is useful or productive -- better to provide good alternatives (e.g., delegation); language implementations can pretend those alternatives are subclassing if they really desire to.Data sharing is important. But why this way with the VM and another way outside the VM? The essence of running a common runtime was interesting about 15 years ago. See the late Mark Weiser's work at Xerox on the Portable Common Runtime. This approach addressed the *critical* issues of sharing a common runtime. There may be one or two other critical issues, but they don't require a common object model. The CLS object model in practice turns out to have some uncommon and subtle anomalies; it's a hard problem for questionable results.But cross-language data sharing, including the sharing of objects, is quite important. You can't do that without some significant spec. Now, it might be a better, more evolutionary approach to put different languages on the same VM, and let them figure out the interoperability issues later. But even though that's a different process, it just delays the work, it doesn't remove it.
A third approach to language interoperability is to standardize on a common intermediate form. This is a variation on the privileged language approach, permitting different languages to interoperate as long as they use a common back-end. In spite of several attempts in this direction, the restrictions on language designers and implementors have proven too severe for wide adoption. We hope our more modest approach (agreement on important parts of the runtime environment), by analogy with the success of common operating systems, will prove better in practice...A good bit simpler than the CLR. Someone didn't get the memo.PCR itself is about 20,000 lines of C and about 200 lines of assembler.
The problem with the complexity in dotnet's CLR is that it's not addressing the *right* problem. Compare this to Erlang, Indigo, REST, and other simplifying approaches to "postmodern" programming. Agile software demands we keep our options open and avoid premature commitment to unnecessary complexities.
To repeat a quote from Dan Ingalls, below, "You clearly want the kernel to be as small as possible, so that you encounter barriers to change as infrequently as possible."
I agree with everything Ian writes here... and at the same time I don't feel Microsoft should get kudos for tackling the problem itself. They made the wrong choice to address the problem by overcommitting the kernel of the solution to ideas that just don't pay off in practice.
Simplicity, stratified design, regularity, small pieces loosely joined.
16 comments:
Hi Patrick. I read both your and Tim Bray's posts on the work that is being done to bring better support for dynamic languages to the CLR and JVM and I started wondering: what exactly is the benefit of being able to run a variety of dynamic languages on either of those platforms? It seems to me that moving forward the most meaningful common runtime environment, for any application written in any programming language, is the network and its associated protocols (TCP/IP, HTTP, etc.).
yes I agree that as long as the code spit out the same bytes over the network, any language can be used to achieve that. However I think folks here consider it is better to use dynamic language such Jython, Groovy to acheive that since it is proven to be much more productive for developers. Now they are working on details in terms JVM support. Guess what? Microsoft hired Jim H a few ago to work on .Net CLR too.
http://the-best-porn-stars-free-porn-movie.blogspot.com
http://photo-erotique.blogspot.com/
Click Here To Enter
Hi, my name is alizee_bi
from United States
, i like your web site, very good job !
, my web site , my e-mail: alizee_bi@hotmail.com
Hi, my name is sexy-girl
from United States
, Hi, my name is Gauge, i'love your Website. Very Good Job.
, my web site , my e-mail: gauge_amatrice@hotmail.com
Hi, my name is britney_et_samantha
from United States
, Join The Orgie
, my web site , my e-mail: samantha_brinks@hotmail.com
Hi, my name is bimbo
from United States
, Download The Video Paradise Here !
, my web site , my e-mail: cyntia_bimbo@hotmail.com
Hi, my name is http://alizeevideosx.free.fr
from alizee_bimbo
, hi, your site is very good, please look at mine too !
, my web site , my e-mail: United States
Hi, my name is divx videos x
from United States
, hello !
, my web site , my e-mail: divx.videos.x@sexbot.com
CLICK HERE
www.microrange.com a le plaisir de vous faire decouvrir: recyclage dechet informatique Did you mean: recyclage informatique and recyclage dechet recyclage.dechet@free.fr
Galeries Videos X - X Movies - Free Gallery
DivX a Gogo !
Recyclage informatique ! Venez Vite decouvrir: recyclage informatique Did you mean: recyclage dechet
Post a Comment