Slashdot Mirror


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."

41 of 459 comments (clear)

  1. What's up Sun??!! by ChaoticChaos · · Score: 5, Insightful

    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.

    1. Re:What's up Sun??!! by Richard+W.M.+Jones · · Score: 3, Insightful

      It immediately creates the notion that Java is a proprietary language.

      Which it is, or might as well be. Until gcj came along (and it's not there yet) there were no free implementations of Java, and any development you did could at any time have been razed had Sun decided not to give their JVM away for free.

      Compare to C - multiple free, high-quality implementations. Compare to Perl - one extremely high-quality free implementation and it's a considerably better thought out and more powerful language to boot.

      Rich.

      Rich.

    2. Re:What's up Sun??!! by robbyjo · · Score: 5, Insightful

      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.

      Well, it's all about control. Sun fears that once it place the language into standard bodies, it loses the control over the language. Whereas, as you may notice, there are lots of other language features need to be implemented. One of them is genericity / templates -- that is due out for Java 1.5. If Sun put Java into standard, it cannot make the modification easily.

      Moreover, Sun also fears of dominant groups (read: Microsoft) may overwhelm or sway the language away from their original intents.

      --

      --
      Error 500: Internal sig error
    3. Re:What's up Sun??!! by Jord · · Score: 4, Insightful
      There are multiple free implementations of Java. Have been for years. Sun could attempt to stop providing a JVM but that would not stop the community. In fact Sun's implementation of the JVM is one of the slower versions out there.

      Java may appear to be proprietary to the non-informed but the programmers know better.

    4. Re:What's up Sun??!! by be-fan · · Score: 5, Insightful

      Eh. Microsoft's new language is about as "standard" as C++ without the Standard Library. It's a castrated version of a real language. Further, C# _as_a_language_ isn't anything special. It's a cut-down version of C++ with native support for properties and delegation. The whole point of Java and .NET aren't the C# and Java languages, but the huge class libraries. Until those are standardized, ISO C# doesn't mean much.

      --
      A deep unwavering belief is a sure sign you're missing something...
    5. Re:What's up Sun??!! by Richard+W.M.+Jones · · Score: 4, Interesting

      You've obviously not tried to use Kaffe for any serious work.

      Blackdown is a port of Sun's JVM.

      You might have mentioned IBM's JVM, but that's just as proprietary as Sun's.

      Remember that the JVM includes libraries, and without a complete set of working, compatible, debugged libraries your Java development is basically fscked.

      Rich.

    6. Re:What's up Sun??!! by Anonymous Coward · · Score: 5, Interesting

      Well the thing is, most of MS's "evil" is because they are big. Any small evil thing they do is blown up huge by the huge impact it has. And especially here by the just plain outright hatred that emasses here.

      In fact I find that Sun and Apple are frequently quite a bit MORE evil if you remove the entire market share from the equation and look at their actions more philosophically.

      Relentless pursuit of fans, maniacal leaders that spew verbal FUD at every oppourtunity, closing down the clone markets, faking JRE test software to make your 4x slower JRE seem as good as the competitions, selectively applying JRE compatibility rules to various friends/competitors and on and on.

      As far as Sun stumbling in the dark, that have done that for JAVA since day one. The early development tools were practically non-existant. And until recently, installing their JRE on Windows required the user to hand edit their environment to add a path to the JRE to it to make it work, even from the windows GUI. How much harder could they make it on themselves and their customers? I always thought that they blew it with their incredable poor dev. environment for JAVA. Compared to developing VB or VC++ on windows it was like using rocks and sticks. UNIX programmers were right at home with the sytem as it of course mimicked typical UNIX development (No suprise, they're SUN!)

      Though MS took advantage of JAVA in ways they probably shouldn't have, Windows developers people were starving for good JAVA tools on Windows and MS stepped up to the plate while Sun didn't. If Sun had provided a Visual Studio type dev environment from day one for all three platforms I believe a HUGE army of Windows developers would have jumped on it and Sun's JAVA would have taken off strong, instead it limped then and it still limps today.

      I am particularly perterbed by Sun's lack of support (or rather lack of EXTREME support) for Java as it is my daily duty at work to find usable cross platform tools for our software dev. needs and though we have actually used some JAVA with some success, it has been a lot more dissapointing as a dev. environment and as a platform than it should be.

    7. Re:What's up Sun??!! by chrisseaton · · Score: 3, Interesting

      Your C++ program might not need the standard library, but your C# program will. Everything in C# is reflected and so on, so if you don't have the .NET framework with the Type object, for example, you can't have any types, which leaves you screwed. With no .NET framework you can't have objects, methods, or anything.

    8. Re:What's up Sun??!! by sheldon · · Score: 3, Insightful

      Java is a proprietary language.

      The reason why Sun has not submitted Java to any public standards body is because they would no longer be in control of validating whether an implementation conforms to the standard.

      What's that mean? It means Microsoft could write a version of Java and run it through the standards body and have it stamped "Approved by ISO as Standard Java" or whatever.

      That's what Sun doesn't want to happen.

      "Microsoft is starting to appear as a reasonable and responsible company and Sun appears as stumbling around in the dark."

      Sun is stumbling around in the dark. Their marketing strategy has become... "Well we're not Microsoft." They've lost whatever technical leads they once had, and now try to appeal to emotions to get business.

      Emotions and business do not make strong partners over the long haul. McNealy needs to step down from Sun.

    9. Re:What's up Sun??!! by elemur · · Score: 3, Informative

      True.. I agree in general with Kaffe, though I will say its better than it used to be.

      Blackdown is a port.. but managed in an open process and environment.

      IBM's is certainly proprietary.. but that wasn't the complaint. The issue was a non-SUN JVM.. and IBM gives that to you.

      Here is a google category

      http://directory.google.com/Top/Computers/Progra mm ing/Languages/Java/Implementations/?il=1

      This lists many different JVM's available.. some open source.. some commercial. If you want a non-SUN JVM.. go to town.

    10. Re:What's up Sun??!! by Billly+Gates · · Score: 3, Informative

      Have you heard the phrase by critics "Write once port everywhere"?

      Sun is afraid of vendor lock in creating incompatible libraries that would result in proving Microsoft and the critics right when stating that java isn't portable. Today java is dead on the client so this issue is not as important. If java took off on the internet for client apps and then each vendor had their own libraries the result would be catastrophic.

      The situation has improved recently and its mostly portable now but it has hurt sun. Sun is in an odd situation. They can release it and watch as vendors create proprietary extensions or keep it and hope more people use it.

    11. Re:What's up Sun??!! by MSG · · Score: 4, Informative

      Blackdown isn't a free implementation, it's a port of Sun's JVM to Linux. It bears the same license.

    12. Re:What's up Sun??!! by jedidiah · · Score: 3, Insightful

      It's really quite irrelevant if a compiler or VM is proprietary if it implements an open protocol. The fact that competing vendors implement the same specification is far more compelling than any number of standards certificates.

      It's the multiple compatable implementations that are meaningful/useful, not the publications of some committee.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    13. Re:What's up Sun??!! by ChannelX · · Score: 3, Insightful

      Compare to Perl - one extremely high-quality free implementation and it's a considerably better thought out and more powerful language to boot.This is a ridiculous statement. Both languages are powerful and each has its place. To say that Perl better thought-out is just plain ridiculous. Perl is a mess.

      --
      My blog: http://jkratz.dyndns.org/~jason/blog/
    14. Re:What's up Sun??!! by miguel · · Score: 4, Informative

      Those particular components that you mention (Type) are part of the ECMA and ISO standard efforts.

      So in fact the submission covers C#, a set of base class libraries and a potential execution environment (you can compile to native code if you choose instead)

      Miguel

    15. Re:What's up Sun??!! by LilGuy · · Score: 3, Funny

      Code quality changes from planet to planet? It's a godsend that NASA ever anything past the moon!

      --

      You're nothing; like me.
  2. Nice to say patented standards by Billly+Gates · · Score: 3, Insightful

    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.

    1. Re:Nice to say patented standards by Mendax+Veritas · · Score: 5, Funny
      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.
      That, however, is a distinction without a difference.
  3. oh well by AssFace · · Score: 5, Interesting

    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.
  4. ISO standards - so what? by Anonymous Coward · · Score: 3, Interesting
    How much development is still done in "regular" C and C++?

    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.

  5. Re:If we're keeping score by ergo98 · · Score: 5, Interesting

    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).

  6. Platforms C# works on by AlgUSF · · Score: 4, Insightful

    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.
    1. Re:Platforms C# works on by stratjakt · · Score: 5, Informative

      Spoken like a MS hater who isn't familiar with the products.

      The .NET framework has been available for Win 2k and XP for some time, and VS.net has been advertised right here on slashdot forever. .NET server was renamed Windows 2003 because it was confusing people like you.

      A language is not an operating system. Saying .NET only works on Win 2003 is like saying Java only works on Solaris.

      --
      I don't need no instructions to know how to rock!!!!
    2. Re:Platforms C# works on by Arthur+Dent · · Score: 5, Funny
      At my university:
      Classes tought with C#: 0
      Classes tought with Java: 6

      Class taught in Spelling: Priceless.
      For all else, there's m-w

    3. Re:Platforms C# works on by miguel · · Score: 3, Informative

      Microsoft's shared source implementation works on FreeBSD and MacOS X. It has been ported by third parties to Linux.

      On the positive side, there is this kick-ass project called Mono that implements it, and runs on a variety of other systems as well.

  7. Re:Standards? by LanikMueller · · Score: 5, Informative

    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.

  8. This is somewhat of a smoke screen.. by elemur · · Score: 5, Insightful

    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.

    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. .NET is not the CLR.. .NET is the CLR, APIs, Libraries, and so forth.. therefore only a small part of the environment is open.

    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 .NET.

    1. Re:This is somewhat of a smoke screen.. by elemur · · Score: 4, Insightful

      Just because they have a stronger commitment to XML doesn't make it any more open, when considered as an enterprise platform.

      Take a look at InfoNotes and some of the Office 2003 components. They *fully require* much of your enterprise to be deployed on Microsoft software. They actively spurned W3 standards such as XForms for their own form standard in this line as well.

      This sort of thing isn't new.. and the push to drag the enterprise architecture along by the client applications is dangerous. The DRM technologies being built in for document protection at a concept level are good.. but again, no openness and public standards there.

      My feel is there is a variety of token gestures to give people warm fuzzies, even as the noose tightens and the enterprise and client architecture looses the possiblity to be *anything but* their platform.

      Who cares about an XML file format if you can't decrypt it without Microsoft? What good is a CLR if you can't do anything without patented libraries whose distribution rights are limited to the Windows platform?

    2. Re:This is somewhat of a smoke screen.. by Caoch93 · · Score: 4, Informative
      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. .NET is not the CLR.. .NET is the CLR, APIs, Libraries, and so forth.. therefore only a small part of the environment is open.

      Agreed. MS is hiding several parts of .NET, providing an open standard only for a handful of low level components. I have ECMA standard 335 (or is it 355), the standard for CLI and CLR, and it really doesn't cover much at all.

      It certainly doesn't cover WinForms, so good luck seeing portability for GUI applications written in VS.NET!

      Open standards are nice, but played the right way, are bullocks. In this case, Microsoft has decided to include all sorts of references and links to non-standard APIs and libraries, and they are under no obligation to release them. I have reason to suspect, too, that a third party who replicates the behavior of something like WinForms in their own .NET implementation (without MS permission) would find themselves on the business end of charges of reverse-engineering.

      Of course, this can make for a delicious "Tower of Babel" situation as other parties (Mono, etc) start creating their own APIs to fill in the gap between the ECMA standard and what's needed to get things done. The only difference is that the Mono libraries for their APIs will probably be available for a Windows port (if they're not 100% MSIL code already), whereas MS' APIs won't be.

  9. So what... by jkauzlar · · Score: 3, Insightful
    I think its great that Microsoft is doing this and its what Sun should have done at the start, but it doesn't mean a thing. C# (on top of CLR) is still only available on one platform and the underlying virtual machine is still proprietary.

    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.

  10. Microsoft turning around by batkid · · Score: 3, Interesting

    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.

    The problem that I see with Microsoft is their attitude of Windows being the only operating system. The entire .NET platform is built around Windows and the "Write in any language, run on windows" idea is not very attractive at least to me.

    You may argue that MS has already ported .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.

    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 :)

  11. Re:If we're keeping score by ChaoticChaos · · Score: 3, Interesting

    Could the fact that there are twice as many books for C# indicate that it's twice as hard to use? ;-)

  12. Re:If we're keeping score by PseudoThink · · Score: 3, Interesting

    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.

  13. 100% Pure Java Supremacy: Join the Java Jidah! by Anonymous Coward · · Score: 3, Funny
    100% Pure Java is Racialy Supreme! Join the Java Jihad Today!

    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!!!

  14. public versus bureaucratic by pohl · · Score: 3, Insightful
    The headline of this article is misleading. Java is a public standard: it is completely and unambiguously documented in public documents, and any member of the public has license to use those documents to create an independent and conformant implementation.

    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
    • that the documents exist
    • that they are complete
    • that they are unambiguous
    • that I have license to create a conformant implemention.

    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...

  15. Re:If we're keeping score by rabidcow · · Score: 3, Insightful

    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.

  16. Just like POSIX compatibility for Windows NT by ink · · Score: 5, Insightful
    Microsoft did the same thing back in the early nineties. They added a "POSIX compatibility layer" to Windows NT and then went around getting gullable (ahem) reporters to praise their new Standards Compliant(tm) operating system. We all know the end result of that; Cygwin even had to go back to the drawing board to get any common POSIX application to compile for NT.

    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.
    1. Re:Just like POSIX compatibility for Windows NT by Billly+Gates · · Score: 4, Interesting

      Actually Microsoft did this not to run Unix apps but to get government contracts which require posix compliance. Microsoft made sure it was crippled in return so they would migrate to win32 after it became apparent that the posix layer was broken.

  17. Try Java 922, C# 2.... by SuperKendall · · Score: 5, Informative

    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
  18. Forgot to mention those are patent free... by SuperKendall · · Score: 4, Interesting

    Also, anyone submitting a standard to the JCP relinquishes patents on any parts of the standard.

    Not that Microsoft would do anything funny with Patents and .Net!! No Sir!!

    Wasn't April 1st yesterday?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  19. The JCP and Java by ievans · · Score: 3, Interesting

    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.

    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 .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.

    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.