Public Standards: C# 2, Java 0
TheAncientHacker writes "While Java coders wait for SUN to be willing to accept any public standards for the Java language and runtime, Microsoft's C# and its underlying CLI, already standardized by ECMA, are about to get a second certification. This time by by the granddaddy of certification groups, the ISO."
I love Java and earn a living coding J2EE systems, but Sun's posture on not creating a public standard for Java is just ridiculous.
It immediately creates the notion that Java is a proprietary language.
Hard to believe that Microsoft's new language has two public standards and Sun's language has none. Is something wrong with this picture? Microsoft is starting to appear as a reasonable and responsible company and Sun appears as stumbling around in the dark.
The Sco lawsuit agaisn't IBM is proof that anything that looks the original is subject to copyright claim. The main argument used is that SCO is the owner of SysV technology.
C# is not only copyrighted but also patented.
You can iso it and declare it as free as you want to but its still proprietary in my book for this reason. Likewise you can get a pig and put lipstick, makeup, eyeshadow, and a thong on it and call it Britney Spears but its still a pig.
http://saveie6.com/
I guess I'll just stop coding in it.
that's too bad really - I liked java.
seriously - why should we care? does the code allow me to do what I want? yes.
and done - I don't care about no stinking standards evaluation.
There are some odd things afoot now, in the Villa Straylight.
Who actually owns copies of those standards? I know I don't - simply because they charge several hundred bucks a copy.
As the artical says: The academic community benefits perhaps more from the published specifications to do computer science research than do companies.
Academic research is fine, but when I'm looking for new programmers I would much rather have real-world experience. How many academic programs you wrote as an undergrad (or even a grad student) had to run for hours or even weeks and maybe with direct user interaction and not crash? Standards don't help you learn how to code that.
Most Microsoft shops have or will switch to .NET (it's a natural progression), and of course Microsoft shops comprise the majority of "shops" out there. Indeed the most telling evidence of .NETs stunning market presence can be seen at your local bookshop: Already there are probably 2x the number of .NET books than there are Java books (seriously, go take a look).
Platforms for C#: 0 Windows .NET is still .NOT ........
Platforms for Java: Windows, Solaris, Linux, AIX, Irix, Tru64,
At my university:
Classes tought with C#: 0
Classes tought with Java: 6
I want my rights back. I was actually using them when our government stole them after 9/11.
Ever heard of Mono? Ever heard of Apache.Net? You need to do some more homework....MS only implemented .Net on their platform, but other groups are doing so on other platforms.
My understanding is that MS is bringing some components to the standards orgs so they can say that, but that their environment will still heavily leverage internal and private APIs.
.NET is not the CLR.. .NET is the CLR, APIs, Libraries, and so forth.. therefore only a small part of the environment is open.
.NET.
So, you have to differentiate between a baseline CLR environment, and the actual programming APIs that would be used to build on top of this.
Who wants to bet that this is more for marketing than it is for getting cross platform capabilities? Without MS opening all libraries and APIs *AND* approving any patent use they have on those components to other systems, a public standard on CLR means nothing.
Sun should bring Java to a standards org, but at the same time, its well documented, understood, and there are no hidden parts to the JVM/Runtime. You aren't going to see that with
Because of its bindings with other MS technologies, C# code will never be fully portable to other platforms and so the ISO standard is meaningless unless you are already a Windows-only programmer. If you ARE a windows-only programmer, then you can at least be assured MS won't deprecate the entire language with their next version of .NET.
It seems like Microsoft is trying to change their image from industry bully to industry team player. I have just been to an academic presentation of .NET and I must admit that MS studio .NET is very easy to learn and use, as well as being standards based.
.NET platform is built around Windows and the "Write in any language, run on windows" idea is not very attractive at least to me.
.NET to other OS (the rotor project). However, rotor is not meant to be used in production, which makes it rather useless in real life.
:)
The problem that I see with Microsoft is their attitude of Windows being the only operating system. The entire
You may argue that MS has already ported
If you look at the Java camp, however, things aren't that great either. The tools are generally not as well integrated and Sun is trying too hard to control Java.
So, in conclusion, I'm not sure which is better. For now, I am staying with Java for my courses. But the battle is far from over
Could the fact that there are twice as many books for C# indicate that it's twice as hard to use? ;-)
Many of my college classes were taught using Java as the programming language, so I had a few years of experience with it in school. I've been using .NET since it was released, and it's been so much easier programming in VB.NET and C# than it ever was in Java, it's not even funny. Despite their problems, the Visual Studio .NET IDE and MSDN Library have no equivalent. They are totally awesome.
Sun has created the 100% Pure Java Race! Write once, run anywhere, because there's nowhere to hide!
All inferior languages must be wiped out, and history rewritten! Integration is capitulation! Segregate and exterminate the inferior languages!
Never pollute Java by mixing it with those inferior mongrel languages. Java is Not meant to Interbreed with inferior languages! You MUST rewrite ALL your code in 100% Pure Java! Native Code is Uncivilized! All Primitives must be Converted!
Java is God's Chosen Language! No other programming language is truly Turing Complete. Lisp is a Homosexual Programming Language! C++ has Negro Ancestors! C# is the Antichrist! Perl is Crypto-Zionist! Python has Simple Sin Tax and Semetics!
Join the Java Jihad! Anyone who commits suicide by using Java against Microsoft is assured a place in Heaven! The surviving families of all Anti-Microsoft Martyrs will be Richly rewarded with Free Solaris Licenses.
Java's true purpose is to be the ultimate Weapon of Mass Destruction in the war against the Great Satan: Bill Gates. Once he is vanquished, Sun will install a puppet government in Redmond, and the oil companies will move in and take over the humanitarian relief effort. Once we Wipe Out Microsoft, nothing will stand in our way of Reinflating the Dot Com Bubble!!!
What Java lacks is a bureaucratic standard: one where the document was given a stamp of approval by some committee that companies can buy a seat on. This latter kind of public standard actually makes it more difficult for me, a member of the public, to influence the content of the documents.
But, you know what? I don't really care much about influencing the content of the documents. My priorities are
Beyond that, it's all marketing hype. Java is a public standard in the same sense that PDF is, and that's good enough for me.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
If you depend upon the IDE to determine what is a good language then please stay with MS. Real programmers dont need you.
Ok, this is somewhat true, but a good IDE is like having power tools instead of having to use the manual versions. Yes, you can cut wood with a hand saw, you can drive screws with a manual screwdriver, you can install a roof without a nail gun, but why would you want to?
A sufficiently better IDE can make language differences irrelevant. I'd be willing to drive 30 minutes out of my way, to an inferior location, to cut 100 boards with a chop saw instead of slaving away for weeks with a hand saw. Similarly, I'm willing to use a slightly inferior language if it has an excellent IDE.
Meanwhile, Linux isn't "officially" UNIX or even POSIX-certified; and yet it's still much more POSIXish than Windows NT is. The same is true for dotNet vs. Java/J2EE; the one has lip service from standards bodies while the other is more-or-less fully open.
The wheel is turning, but the hamster is dead.
Hey, have a look over at JCP.org.
There's 922 JSR's there, all public standards underway that anyone (that includes YOU and ME) can comment on. Where can I go to comment on the C# standards underway?
So, which is the more open standard?
What a maroon. (Yes, I did spell that right).
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Also, anyone submitting a standard to the JCP relinquishes patents on any parts of the standard.
.Net!! No Sir!!
Not that Microsoft would do anything funny with Patents and
Wasn't April 1st yesterday?
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I work for Sun, and while I won't pretend to speak for them, I work most of the time on the various J2EE JSRs, so I sort of understand how the whole process works, and therefore understand the rationale for why Java isn't an ECMA or ISO standard.
.NET, though, it is possible to get involed in the development of Java and J2EE, either directly as an individual member of the JCP, or indirectly by providing comments during the public reviews of JSRs.
The Java Community Process (http://www.jcp.org) is an independent organization that sets the standards for Java. Anyone can join the JCP, although most members are companies. The Java language, the different distributions of Java (J2SE, J2EE, J2ME), and technologies that are built on Java use Java Specification Requests (JSRs). Various members (the expert group) collaborate on the JSR to define the technology, and work on a reference implementation. For example, Tomcat is the reference implementation of the JSP and Java servlet APIs. This is one major difference between ECMA/ISO and the JCP: the requirement of a reference implementation.
I think the idea behind the JCP was to be able to modify the language and the APIs more quickly than other standards bodies, and ensure that there are useful implementations of the standards that go hand in hand with the standard.
In the case of Apache, there have been some modifications to the JCP to allow open-source implementations of JSRs, and to make the compatibility tests available for non-profits. JBoss and Sun have locked horns because, in Sun's view, JBoss is not a non-profit, and are using the J2EE JSRs to make money without licensing the J2EE brand, as BEA, IBM, Oracle, Borland, and others have done. Because Apache is in fact a non-profit organization, Sun's been much more willing to work with them.
Sun produces most of the JSRs, but not overwhelmingly so (around 60% if I remember correctly). Your average open-source hacker will find it harder to contribute to a JSR compared to, say, Gnome or KDE. Unlike
There are many people at Sun that would like the public more involved in developing Java, and others who would not.
Keep in mind that this is my impression of Sun's rationale, and I do not speak for Sun on any level.