Fog Creek Software
Discussion Board




What good is ECMA standardization?

Every so often I hear how Microsoft, after inventing such-and-such neato technology (JScript, .NET), has then handed it off to ECMA to become "standardized".  My question is, "why bother?"

Some things I can understand the need to standardize on.  Nuts and bolts, for example.  When you're building a car or a ship, it's nice to have standard parts that are interchangable among vendors.  You want to standardize having the gas pedal on the right and the brake on the left.  But you don't want to standardize the car itself.  You don't want to say, from now, all cars are going to be 5.3 meters long, they're going to be made out of alloy metal, they're all going to have 2 liter engines.  Not to sound like a Microsoftie, but that constrains innovation.

And how exactly is ECMA standardization not going to be monopolized by Microsoft?  If Microsoft wants some feature in the standardized .NET, it's going to be there; if they don't want it in there, it's not.  Think that's gonna be the case with Ximian?  Probably not.  Chances are ECMA's fated to be no more than a puppet organization recruited for the sole purpose of giving the illusion that everyone's got their say.

HTML has been standardized to death, and Netscape and IE are *still* incompatible.  Go figure.  Microsoft rants and raves about being "standards compliant".  BFD.  The only reason Microsoft is standards compliant is because they wrote the standard on DHTML and they're the only ones so far that implemented it.

I'm probably generalizing from no examples, but every time I can think of that a consortium of companies have come together to make a standard yaddayah, the output is a multi-headed byzantine monstrosity that is equally unpaltable to everyone.  It does everything and does it all rather poorly.  And that's what you'd expect when technology takes a back seat and politics grabs the wheel. 

On the other hand, you have examples like Java and Delphi, invented by one company and then foisted on the rest of the world.  And they're relatively elegant in comparison.  Ontology really capitulates phylogeny in the software world.  It's probably a good thing Sun pulled Java out of the ECMA standardization process.

I'm a big fan of open specifications; I'm glad that Sun published their specs on Java for the world to implement, and I'm glad Microsoft's done the same thing with MSIL.  But you don't need standardization for that.

So why's Microsoft wasting their time?

Alyosha`
Tuesday, January 22, 2002

ECMA "Standardization" is just an attempt for Microsoft to fulfill some more marketing bullet points, especially after Sun withdrawing from ECMA Java.

There is no harm in ECMA standardization. There is no such thing as too much documentation, but expect the ECMA standard to be pretty much frozen (and for Microsoft to embrace-and-extend full-speed ahead). For example, ECMAScript/JavaScript is finally a well documented standard (in fact, the product I work on implements a subset of ECMAScript), but there is not much future development that I am aware. I think Mozilla has some blue-sky ideas about future JavaScript, turning it practically into Java, but I don't seem them going anywhere..

cop
Wednesday, January 23, 2002

No further development of JavaScript/ECMAScript/JScript?

Take a look at JScript.NET.

Dave Rothgery
Wednesday, January 23, 2002

Sjoerd Visscher and I have extended JavaScript (ECMAScript) to support functional programming. To put it more accurately, we have created a library that builds on JavaScript's intrinsic functional capabilities to extend the language significantly in that direction. The extensions include:
1. Numerous high-order functions
2. Function argument currying
3. Functional manipulation of arrays
4. Lazy lists (with support recursive definition)
5. Streams
6. Much, much more
If this sounds interesting check it out at:
http://w3future.com/html/beyondJS/.

While we haven't really documented this library yet, there are plenty of samples, e.g. t sum the numbers for 1 to 100:

var sum = (1).to(100).fold("+");

Enjoy!

Dan Shappir
Thursday, January 24, 2002

ok, I take back what I said about JavaScript becoming stale. I find JavaScript a very interesting programming language. It's a great example of "good enough" software. It has some ugly features, but it has some powerful features AND it is nearly ubiquitous on the web.

cop
Thursday, January 24, 2002

Nice point. The OQL standard has been accepted by all the major RDBMS vendors back at something like 1991. They all agreed to implement the complete support for it in their products in 18 months...
Where is it now?..

Sinclair Evilguest
Monday, January 28, 2002

What's the point???!  Until you've programmed any form of significant web-utility in JavaScript, there is absolutely nothing for you to talk about.  Anybody who's tried to do anything more than just your basic JavaScript alert calls knows all too well the hours of endless screaming at the computer over trying to get some JS functional cross-platform.  It's damn near programming two different applications, and even then you're probably still not going to be operational on Opera....

In case you don't know what I'm talking about, go download a WYSIGYG HTML editor built for imbedding into web pages that uses JavaScript to process the data.  Maybe you'll have a change of opinion, then.  In fact, I'll post you one of the comment lines from one that I was looking at here not too long ago:

Line 1509 - the WYSIWYG editor for Squirrel Mail, a popular web mail package:

// IE5.5 reports 25 when cellSpacing is
// 1; other values might be doomed too.
// For this reason we extract the
// values directly from the root node.
// I'm starting to HATE JavaScript
// development.  Browser differences
// suck.

The standards are absolutely necessary.  If you have a problem with innovation, that's a fault in the stanards body, not the concept.  JS is the perfect example of what can go horribly wrong when standards aren't followed.

I've been running around the internet all day long just to try and do one little thing in JS, but the differences between the browsers has made the task damn-near impossible.  And even if I do get it worked out, what's the point?  It's just going to break again in the next-gen browsers....

Anth
Monday, August 23, 2004

*  Recent Topics

*  Fog Creek Home