ECMA ratifies C# as standard.
December 21, 2001 9:14 AM   Subscribe

ECMA ratifies C# as standard. In other news, Microsoft eats Sun's lunch. As Robert Cringely puts it: "Now Java begins its slow decline as C# becomes dominant. I don't want it to be this way, but it deserves to be this way." Does it?
posted by gazingus (29 comments total)
As much as I like Sun, they screwed themselves here.
posted by revbrian at 9:21 AM on December 21, 2001

DANG... No sooner that I was feeling confident writing Java... :(
posted by adnanbwp at 9:55 AM on December 21, 2001

I feel your pain this rate, Java will be worthless by the time i get my CS degree (language of choice at my school is Java). Well, i doubt that, but i'de still like my strongest suite to be the dominent language upon graduation. After that, i don't care.
posted by jmd82 at 9:58 AM on December 21, 2001

I don't see this as being all that important.

Some other committee now controls the language, and the binary format of CLI compiled code, but Microsoft still owns the libraries, and that's what matters.

So, much like Java, people who don't want to use Microsoft's code have to reverse engineer the C# libraries. Most of C#'s work is done either through Win32 API calls or COM objects anyways.

Look at the folks who have tried to do clean room implementations of Java. Is Kaffe usable? Not for anything using the modern Sun libraries. There is nothing to stop Microsoft from doing the same.

Sun has made virtually no changes to the Java language since its inception. A few, and they just added assert to the 1.4 jdk, but having them in control of Java has had virtually no bad consequence.

Is there real life cross-platform C++ potablilty? Not unless you write extremely simple stuff or use 3rd part libraries, in which case you're no better off.

Anyways, it's a laughable idea that the big fortune 500 companies are going to give up their java app servers running on huge Sun boxes for some win32 solution. And if they did, do you seriously think they'll do it because of the European Computer Manufacturers Association put their stamp on something?

As far as the desktop, who cares? Java never succeeded there so it won't loose any ground if C# takes off.
posted by mragreeable at 10:01 AM on December 21, 2001

in the instance of C#, ECMA sets the standard; in the instance of java, Sun sets the standard. while i am not certain of non-ms vendor offerings for C#, i do know several companies sell java compilers and IDEs based off of java's standards (including ibm and symantec). i am not yet convinced that having the ecma standardizing will make much of a big deal. i take issue with cringely on some points as well:

Sun's cross-platform, write-once-run-anywhere language was going to free us all from the tyranny of Microsoft and Visual BASIC, but it simply hasn't happened.

whatever. java's cross-platform potential seems, to me then and now, aimed at the utter headaches caused by maintaining portable low-level programs (written in C or C++, for example) on Unix systems as well as windows. however, java couldn't do everything we wanted to do on windows or unix with the speed we desired; until java compiles to native code, i am skeptical that it ever will. (i'm not the only one who wishes that java could have compiled to native code when it was first released.)

frankly, i'm very tired of yet another oo-imperative language that looks holy shit! exactly like c++. it's time we move on to something new; have you looked into erlang or haskell?
posted by moz at 10:07 AM on December 21, 2001


make both c and c++ the dominant language of yours when you graduate, but be diligent about learning new languages. it helped me tremendously to be immersed in new stuff (lisp, scheme, sml, erlang, haskell, etc) all the time, because picking up anything new was a piece of cake. it's what allowed me to step into my current job and do well in a short amount of time.
posted by moz at 10:10 AM on December 21, 2001

No you shut up. No you shut up. No you shut up. Fascist. Commie. Jerk.

I think Cringely's analysis of this is a bit simplistic, and in some cases just wrong ("buggy"? "slow" I can grant.) No one in their right mind is going to switch from Java to C# just for the new syntactic sugar.

Many businesses will not choose .NET over Java until it is capable of running on something other than windows at a level where it could replace J2EE servers like BEA. Maybe the mono and dot.gnu guys can make than happen, but I think it could take them up to 3 years to get to where J2EE is now. So IMO .NET can only become dominant if Unix somehow dies or a company the size of IBM changes sides.

The relative performance of .NET and J2EE is a matter of some debate, but it's safe to say that Microsoft are being somewhat economical with the truth in some of their performance claims.

Does the ECMA stamp make the slightest difference to anyone? Who cares?
posted by pascal at 10:14 AM on December 21, 2001

ECMA Schmeckma

C# isnt going to eclipse Java. I see a zero percent chance that runtime licensees and vendors will implement C# instead of Java. There is a vanishingly small chance that tools vendors might allow C# to compile to java bytecode.

Keep your java hats on. Moz, Erlang is dang cool, I think a prolog successor...
posted by mikojava at 10:17 AM on December 21, 2001

Besides, isnt ECMA a skin disease?
posted by mikojava at 10:18 AM on December 21, 2001

Full disclosure-- I used to be the Chief Evangelist for Java at Sun, so I'm biased as hell. And I do agree, Sun screwed themselves with the standards bodies.
posted by mikojava at 10:19 AM on December 21, 2001

Personally, I prefer the key of Bb to C#-- much easier to play in.... ;)
posted by andrewraff at 11:20 AM on December 21, 2001

I give the whole argument a C-.
posted by Modem Ovary at 12:01 PM on December 21, 2001

I think Cringely's analysis of this is a bit simplistic, and in some cases just wrong ("buggy"? "slow" I can grant.)

Maybe unfair, but having just worked on a project where the JVM was causing BUS errors (!) on SUN hardware (!), I can say it's not entirely "wrong".

That said, I like Java a whole bunch, and the various .jsp web app servers are quite nice -- but I try not to get too attached to anything, and C# doesn't look like its gonna take much effort to switch to when the time comes. If it comes.
posted by malphigian at 12:08 PM on December 21, 2001

Is there real life cross-platform C++ potablilty? Not unless you write extremely simple stuff or use 3rd part libraries, in which case you're no better off.

Most of C#'s work is done either through Win32 API calls or COM objects anyways.
Mozilla's quite complicated, so XPCOM?
posted by holloway at 1:36 PM on December 21, 2001

No one in their right mind is going to switch from Java to C# just for the new syntactic sugar.

I am. I'm sick to death of writing get, set and addListener. Java's hypoglycemic.
posted by dlewis at 1:51 PM on December 21, 2001

So, dlewis: have you switched? If not, why not, and if you have, what kind of apps are you writing?
posted by pascal at 2:17 PM on December 21, 2001

At least MS has the good sense to advertise C# as just a programming language. Sun was always annoyingly trying to tell people, "Java is more than just a programming language, it's this vague, nebulous, all-encompassing thing, and you have to 'get it' in order to use it." Ugh.

Anyone else seen that "Java 101 Final Exam" that got passed around as joke a few years ago? It was just a list of all the buzzwords (Java, Java Beans, JavaEmbedded, CaffeineMark, etc.),x and you were supposed to explain what they meant in the context of Java©®™.
posted by Potsy at 2:51 PM on December 21, 2001

(I have no idea how that erroneous 'x' got in there.)
posted by Potsy at 2:59 PM on December 21, 2001

Pascal: I'm looking at the Mono project. Still finding my way around the framework at the moment...

I'm really into the .NET idea that lots of different languages get compiled down to the same bytecode. So far there are compilers for C++, Visual Basic, Javascript and sanitized C++ (an oxymoron?). But I'm really looking forward to solid Perl and Python compilers.

What this means (I think?) is that you can write the direction and logic of your application in a scripting language like Perl, and still write the core mechanisms with a traditional structured language like C++ or C#. This sounds perfect for websites. JSP and Servlets were a reasonable idea but they take bloody ages to prototype anything. Compare that to PHP or Perl where someone can crack out a working design in next to no time. Being able to mix and match languages so easily is a holy grail.
posted by dlewis at 3:14 PM on December 21, 2001


Sun was always annoyingly trying to tell people, "Java is more than just a programming language, it's this vague, nebulous, all-encompassing thing, and you have to 'get it' in order to use it." Ugh.

maybe that's because one of the creators of java is Guy Steele, a well-known figure in the programming community -- lispers and schemers (the latter of which steele is, again, a creator of.)
posted by moz at 3:34 PM on December 21, 2001

" ... Anyways, it's a laughable idea that the big fortune 500 companies are going to give up their java app servers running on huge Sun boxes for some win32 solution ..."

Er, I'm the principle eBusiness Strategist for a division of a big Fortune 500 (actually, a Fortune 25) ... and while we haven't replaced mission-critical apps yet (.NET and C# are simply too new), it would be a mistake for anyone to think the big companies aren't agressively investigating that platform. In some circles there is apparently still emotional arguments for and against Microsoft. Big business, however, reduces to this: What's the biggest bang for the buck. Microsft products have their flaws, but they've also got some damn smart people producing some interesting, cost-efficient stuff.

Sun (IMO) is losing ground. I saw McNealy's road show for Sun's "ONE" (which was mostly composed of Microsoft bashing). When we finally heard what he had ... it was Sun's existing products (essentially) wrapped in a new marketing package. The .NET concept, however, while it contains some disturbing elements - really does contain some new and original thinking. (I will add that migration from existing apps is likely to be a bitch, and will probably slow down adotption of .NET). Anyway.
posted by MidasMulligan at 3:36 PM on December 21, 2001

dlewis - that's all very nice, but if you had to write a web app for a Unix customer tomorrow (or any time in the next year), and you told them that Mono was the way to go, then clearly you would not be in your right mind - so my original statement holds true :-)
posted by pascal at 3:44 PM on December 21, 2001

MidasMulligan - got to agree about Sun's "ONE" stuff - I've found a lot of Sun's recent marketing to be pretty poor, and ONE is so clearly just a reaction to .NET - though I can understand their need to try to demonstrate that .NET "has no clothes" so to speak.
Luckily with Java, Sun is not the only game in town - and with Sun, BEA, IBM and Oracle fighting it out I think things are looking pretty healthy for J2EE.
posted by pascal at 3:51 PM on December 21, 2001

Oops. Pascal - sorry mate, my brains went out the window. I didn't realise you were asking a rhetorical question to make a point, I thought you were genuinely interested in what I was doing. My bad.

Ok, as for writing a web app for a unix customer in the next year. Well it's got to be Java, for the reasons you stated. Maturity of products. Let's keep in mind that "maturity" does not mean a lot these days. The EJB spec is an absolute monstrosity, gnarled and bloated with feeping creaturism. Sun had a great idea there - componentized business objects that were easy to deploy and and distribute. But the execution was somewhat rushed. Now it's impossible to write any enterprise code without a whole load of expensive development tools to make sure your classes/databases/xml configurations are all in sync.

I just get pissed off about how quick and easy it is to write a web application using a scripting language like Perl or PHP, and how many flaming hoops I have to jump through to accomplish the same thing with JSP. When Sun tried to make JSP easier to write, they added the ability to use XML-based tag libraries. XML is possibly the least friendly, least expressive, least readable language that was ever invented. It's designed to be easy for machines to parse (even then - have you seen the code size of an average XML parser?), not for humans to write. Why can't I write my apps in something that I enjoy writing? Because only Java and its associated technologies are seen as truly enterprise class. That's my reason for ranting on about a unified language model. I could use the right tools for the right job. Java should have offered that, but we never got to see anything compiled to JVM bytecodes apart from Java. That's a shame.

So you're absolutely right, Pascal. Java is the only viable solution for a large enterprise app today. But that won't stop me moaning and looking for a better solution.
posted by dlewis at 4:24 PM on December 21, 2001

moz, I really don't understand your reply. What goes Guy Steele's involvement in Lisp and Scheme have to do with Sun's irritating hype machine?
posted by Potsy at 8:10 PM on December 21, 2001

potsy, people into lisp and scheme generally are so to the exclusion of mostly all other languages. Paul Graham writes that "Programmers who know Lisp will tell you, there is something about this language that sets it apart" (ANSI Common Lisp, pg. 1, Prentice Hall 1996). he's vague, but that's just it: that community views itself as somewhat apart from the drudgery of other languages. i think it's merely natural for steele to try and carry that over, or at least help foster that attitude.
posted by moz at 8:36 PM on December 21, 2001

Okay, I see now. For a while I thought you were saying all that "this is more than a language, it is everything"-type gibberish actually made sense!
You're not saying that, are you?
posted by Potsy at 9:07 PM on December 21, 2001

Oh dlewis, I feel your pain. I like Java. Java is fun, it's nice, it makes sense. But my God, it makes you fill out the paperwork. Java, the Cobol of the 90s.

The whole point of the code-in-yer-markup paradigm (PHP/ASP/EmbPerl/whatever) is speed of development, getting what code reuse you need from includes. Using Java in this manner is to give up some of its support for structured programming without the wins of bashing out scripting code.

We're working now with a Certain Content Management System (ok, it's Vignette) that previously used something like Tcl Server Pages, but is now using JSP for page generation instead. Predictably, productivity has dropped, but the managers who thing Java is Magic Pixie Dust That Makes Everything Go Better don't understand why.

Thank heavens I have a holiday...
posted by i_am_joe's_spleen at 11:43 PM on December 21, 2001

If I had to write a large web based application for a client tomorrow, would I pick Java?

Hell no. I'd switch them to Windows servers and use .NET. Or I'd pick one of the Unix server solutions to allow ASP to run so later we can migrate to a .NET platform.

So far, I have seen the use of the .NET framework (including but not limited to C#) vastly speed up development times and allow for us to fairly easily put the business and presentation logic where they belong.

Now it is obvious that people can and do accomplish these tasks under a Java platform... then again I know people who can and do accomplish this with Perl.

So the issue isn't really if there is a specific feature that can "only" be accomplished with one system or another, but how easily, how quickly and how cheaply. Cost includes how rational your vendor is.

Sun is a revenant now. They exist solely as a mechanism for their hatred of Microsoft. They create nothing that I can see, they only react. This has happened before and Borland effectively died because of it.

Do I work for the fortune 500? Sometimes. Not on the core mission critical systems but on the media server side - and we have been using MS platforms more than before. XP/2000 servers are stable, the media delivery systems are robust and .NET makes development of dynamic content very fast.

In another world, I do a lot fo work for adult web industry big players. These are people who want their stuff done fast and well and they handle a staggering amount of traffic and money. After a little skepticism they are seeing that even in beta the .NET platform is handling their loads easily.
posted by soulhuntre at 11:14 AM on December 22, 2001

« Older Victims' families of Sept. 11 attack to get...   |   I think the recording industry has finally gotten... Newer »

This thread has been archived and is closed to new comments