One Runtime To Bind Them All 479
Sowbug writes "Here's some interesting Saturday night reading: a critical examination of many of the advertised benefits of .NET's CLR (Common Language Runtime) and the other technologies (MSIL, CLS, CTS) that make it possible. It's written from the perspective of a Java advocate, Osvaldo Pinali Doederlein. "
Topic beat to death already... (Score:3, Interesting)
Well, m$ has to do something. (Score:4, Interesting)
Java itself is not any kind of 'true' general standard, sun can do whatever they want to with it. There's no real reason that Microsoft should bind itself to sun's implementation. So
This won't kill java anymore then java would have killed windows. Microsoft's CLR will provide a better way to write windows-only programs. I don't see why everyone needs to be up in arms about it.
Re:Unbiased Articles? (Score:5, Interesting)
Then it goes on to say that surely the JVM can be extended if this proves to be a selling point for .NET (which is probably true, but it kind of makes you wonder why sun haven't already done it).
Re:Well, m$ has to do something. (Score:3, Interesting)
Could have fooled me. I develop Java apps on a Linux machine that are deployed not only to other operating systems but to PDAs and other connection limited devices such as java capable cell phones. All with a true cross platform, high quality development environment that is very productive.
Geez, some people's kids.
Re:Unbiased Articles? (Score:3, Interesting)
Cross-Platform Java CLR (Score:4, Interesting)
Q: So why do we have the need for a next bytecode layer on top of Pentium & SPARC?
A: To be cross platform! This is correct in the case of Java and the JVM. The intention is compile once, run everywhere.
The problem we now have however is that Microsoft sees cross platform differently in my opinion. Cross-platform is merely compatibility between their CE, Win9x and NT product lines. How big will the push be within one year by Microsoft to keep the developed truly cross platform?
Isn't that the question we must ask ourselves?
Re:Well, m$ has to do something. (Score:1, Interesting)
Will you end up needing to code a different version of your Sharp# application? One for NT/XP, and one for MONO because they have different proprietary APIs for GUI development or XML processing ?
It seems to fulfill the cross-platform development promise even less than Sun's VM with its 'standardized' Java classes and APIs.
Re:apply the razor please (Score:1, Interesting)
Now look at the VM. Clearly Microsoft wins this one. The design goal of the JVM bytecode was obviously "design the easiest to implement VM that we can compile Java to."
As for the libraries; they both suck.
C# vs Java the language; C# is Java, just with most of the lessons painfully learned from Java applied, and a few of the more ridiculous design mistakes hidden slightly better (automatic boxing).
The question isn't "Is C#/.NET better than Java" because everyone who isn't a MS hater or a one-language-programmer J2EE hack can see the answer. The real question is: "Is the superiority of C#/.NET enough to offset the costs of moving to it from J2EE."
Re:Unbiased Articles? (Score:2, Interesting)
Very nice article. (Score:5, Interesting)
The author is saying pretty much what I figured, which is that
I would also make the case that "unsafe" mode/pointer arithmetic is a flaw, but that's not the matter at hand. The high point of the article were these two paragraphs in the conclusion:
"Playing with the
For those quick to make an ignorant response, he's not saying more radical structural departures are impossible, though many are - but more often that diverging "client languages" suffer in performance and, in many cases, have been "embraced and extended" in order to become compatible. He goes on:
"There are, actually, many successful "common language runtimes", with names like Pentium, SPARC and others. Mainstream CPUs are equally fitted to very different languages as they only do the most fundamental, low-level operations, so they cannot be biased towards particular languages. There aren't many different ways to perform a conditional branch. However, there are radically different ways to support methods and functions, or most constructs found in high-level languages. The consequence is that every language needs different compilers and runtimes to implement their features, and different libraries to support their vision of software development."
Let's Play Devil's Advocate (Score:2, Interesting)
He lists numerous limitations of the CLR/CTS/CLS. Lets remember that
If Microsoft fails to deliver, we'll all have a great laugh. However, if Microsoft does deliver and MONO succeeds, we'll have an explostion of desperately needed applications that will run on Linux.
The worst thing that I can say about
Re:Closed standard? Open Standard? I pick door #2 (Score:2, Interesting)
TWW
CLR same as IBM's SOM (System Object Model)?? (Score:2, Interesting)
[ibm.com]
SOM 3.0 Readme
Re:Its the framework thats reuseable (Score:2, Interesting)
Yes. See the documentation here [jython.org]
One thing I don't recall hearing about (Score:2, Interesting)
One question that I have not seen raised is this: It is easier to write programs for Linux and *BSD than it is to write programs for Windows. Many open-source programmers use this as an excuse for charging for the Windows versions of their products.
That said, why would anyone but a Windows programmer want to program for
Mono may support
I think if Sun's JVM supported other languages like Perl, Python, C, C++, etc.
I think the languages support in CLR are impressive, but still, if you have to write to a Windows-like API, what good does it do you?
Although there are a lot of things I like about
Re:Well, m$ has to do something. (Score:3, Interesting)
Sure,
If you still don't believe me, you'll (kindly) notice that MS marketing literature is mainly directed at J2EE. MS even went so far as to re-implement the Java Pet Store server in
Comment removed (Score:3, Interesting)
should have been a comparison chart (Score:4, Interesting)
"CLR requires static single inheritance"
"CLR lacks multiple dispatch"
I certainly think that the CLR could stand the criticism and have its hype deflated, but I'm not finding a lot to recommend the JVM. Sun doesn't even acknowledge, much less support languages other than Java on the JVM, with the exception of GJ, which it would rather absorb than support.
I might also note that there are languages very much not like C# available for
Parrot? (Score:2, Interesting)
Comment removed (Score:4, Interesting)
Java or .NET can't be one thing for everything (Score:2, Interesting)
I think people have to realize that Java or .NET can't be one thing for everything.
Java couldn't succeed on applet/desktop side, that's a fact. But it is also a fact that it succeeded on enterprise application framework side, much to the success of it's J2EE platform. J2EE is a complete framework for building enterprise class applications ( JSP to EJB ). Much to it's success is due to the role played by IBM, Oracle, BEA, Borland, Sybase and host of other companies.
Probably if we had been able to create an open source enterprise class application framework using "C" ( my favorite language ), perl, php etc, we would have created faster and smaller apps than any of these two frameworks. When I talk of enterprise class I mean framework which supports Messaging, Transactions etc.
.NET is a new platform and is extremely easy to develop for, thanks to expensive VS.NET. It contains few things which Java lacks ( won't comment on those ). But it is yet to see if it is able to get the attention Microsoft wants it to.
The point is that both of these frameworks are out there because their companies ( Sun and Microsoft ) want to get the maximun money out of you ( and your companies ), not that they love and care about you so they want you to use their software. So my suggestion is that don't get emotional in taking one's side against the other, when these companies care about their interests, you should care about your interest; "choose the software which is best for the job at hand" and stop believing in Java or .NET as if they are relegions.
Stardeveloper.com
http://www.stardeveloper.com [stardeveloper.com]
Re:Unbiased Articles? (Score:2, Interesting)
This isn't about the difference between VB and VC and VJ++ - note what the writer said about "skinnable languages"
It's about the difference between Perl and Basic, between AppleScript and Cobol. Between languages which are as different as Arabic is to English. Different not because of some words that are changed, but because the entire mindset of those who use them is different.
<analogy style="yours">So you understand Java? Well, if you're not an idiot, you'll find it easy to learn Assembler</analogy>
<analogy style="microsoft's">We are multi-lingual. We support american english, australian english, Queen's english, estuary-english, scottish-english, and CAN-YOU-SPEAK-ENG-ER-LISH english</analogy>
Re:apply the razor please (Score:2, Interesting)
java just copied ODBC, even the name is almost the same. however, even at that time, microsoft had several easier to use APIs for accessing data (DAO, etc), not to mention APIs that come later, like ADO, and now ADO.NET. Compared to ADO and ADO.NET (and even DAO), JDBC is very low level and much harder to use.
also, J2EE (2000) is a directy copy of MTS (1998), and JSP is a direct copy of ASP. java almosy literaly copied existing Windows technologies.
now with
Re:apply the razor please (Score:3, Interesting)
Except that it isn't mature,
it is more mature than you think.
it is not the language, it is the libraries that you code against. for example, Windows Forms could easily be called WFC 2.0, same for many other classes.
ADO.NET is a successor to ADO, it is not 'imature' as you say. also, it is two generations ahead of anything that java has to offer to access databases.
ASP.NET is again the next version of ASP, it improved od ASP, it is not a '1.0' version. again, much richer that JSP.
take web services, and then look at sun's pathetic response (oh, yeah, we have web services too). i would call java web services api much more imature that microsofts.
Re:.NET securitry (Score:1, Interesting)
Yes. Just like I want Java's sandbox picking through my applet data and code, to stop it doing bad things.
Are you 15?
Re:high-quality? (Score:2, Interesting)
Re:You can use many languages with the JVM (Score:1, Interesting)