Feeds

back to article JavaScript standards wrangle swings Microsoft's way

Adobe Systems appears to have been wrong footed and Microsoft left crowing on JavaScript’s evolution, following a decision by the ECMA. After several months of wrangling, ECMA technical committee (TC) 39 - responsible for JavaScript standardization - has agreed to abandon plans for an ambitious new standard dubbed ECMAScript (ES …

COMMENTS

This topic is closed for new posts.
Bronze badge

Microsoft

This and the OOXML appeals being rejected make this industry watcher fervently wish that there were, in fact, many more terrorists than currently imagined by the incipient police states of USA and UK. Then there might be a better chance of having certain corporations wiped off the face of the map.

Then I wake up, and realize that people are still sheep, and it doesn't matter anyway.

0
0
Bronze badge

The nice thing about standards...

...is that there are so many of them!

And THAT is the problem.

0
0
Gates Halo

MS is not always wrong

Sometimes even those dreaded evil corporations are right! Many of the ES4 and JS2 criticisms are very much valid; sure there's politics, but the argument is also technical.

Personally I don't really want to see more and more complexity added to JavaScript at a language level, it is troublesome enough as it is. The E4X extensions in Mozilla are already a syntax and security disaster that would have been better off in a library file. No further "cool" stuff like that please.

0
0

Probably a good thing...

Would have taken ages for browsers to fully implement ES4 correctly I reckon. I'm not in the slightest bit pro-MS, but in this case, I agree with Wilson - too ambitious.

0
0
Unhappy

Microsoft v Adobe

Can't they both lose?

0
0
Anonymous Coward

@yeah, right

oh yeah, i'm sure you really want microsoft wiped "off the face of the map" y'all

hmm, lets see. MS suck. true that. MS created the computer industry as it is currently known. also true. someone else would have done it if it were not MS. presumably, but we'll never know.

on that basis, lets all get drunk (tonight)

hope i dont fight with a punk tonight (yeah)

(name that tune, win a prize)

(no, really*)

(*no, not really)

0
0

Re: AC @year,right - it would have happened without Microsoft

Before Windows, virtually everyone else was working on some sort of non command line interface. If you had lots of £'s or $'s then it could be graphical: Apollo workstations, CAD software.

There was file manager called Sweep for CP/M 80: that allowed you to tag/select files then copy, move, delete, etc. them as a group. TurboPascal on CP/M 80 had an IDE.

Principles of interactive computer graphics, second edition, William M Newman and Robert F Sproull, 1979 was the 'bible' it covers elements of interaction, still missing from Windows today: 'gravity' of window edges to screen edges and other windows, pop-up context menu items that surround the cursor/pointer rather than the hard-work we have in Windows, character and symbol (gesture) recognition...

What IBM did was create a stricter open standard for PCs and that allowed low cost computers. Lots of other 8bit PC companies were experimenting with 16bit, but the IBM PC killed them.

Microsoft has lots of highly talented technical people, and they have produced some brilliant products. And they had savvy business people running the company. And they had some good luck. They were able to ride the storm of big head-smackingly stupid mistakes. But recently, they seem to have lost the magic ingredient, the rudder has fallen off, they have confused friend and foe. The magic ingredient was to make it easy for a developer to look good in front of his/her boss or customer - now they make it easier to look stupid (virus pop-up window, incomprehensible help documentation, ...). Who's at the helm? One minute attacking Linux and open source, oops backlash, the next trying to make friends. At one time it was fairly easy to play DVDs, to transfer CDs, downloaded music to your MP3 player.

also see:

http://en.wikipedia.org/wiki/Domain/OS

0
0
Bronze badge
Gates Horns

@MS is not always wrong

@And Clover - I find that assuming that MS *is* always wrong is a viable working hypothesis...

0
0
Anonymous Coward

Tamarin

Considering that there already exists a pretty good (beats most current implementations by far) open source (MPL/GPL/LGPL) implementation of ES4 (provided by Macromedia/Adobe) that is being integrated into Firefox/Mozilla/IE, it's not so far-fetched that MS fears for their JScript/.NET implementation. Too bad people fall for MS.

0
0
Bronze badge
Gates Horns

MS is always...

Good for his monopoly... bad for the rest of us.

0
0
Gates Horns

shame

As an ActionScript developer I have to say this is a real shame. I've found AS3.0 to be an excellent programming language (spoiled only by the flakiness of Flash Player!) and E4X is amazingly powerful.

Whenever I have to program JavaScript I feel like I'm stepping back in the stone age - even in comparison to ActionScript 2.0 it feels ancient and clunky. Wot, no strong typing? I can has Interfaces? No, apparently not!

Perhaps there are security issues with E4X in Mozilla but that doesn't mean we should chuck the baby out with the bathwater - these things can be fixed.

0
0
Coat

Standards

I've seen standards committees work from the inside. I am not impressed with "standards."

Developers -- be it the individual or the corporation -- take what they want and "extend" what they need. If a product is good, it catches on, regardless of whether it is fully "compliant." (Has anyone ever seen a C compiler fully compliant with the standard? I haven't.)

Standards committees are a lot like the folks who brought us "New Coke." They don't know what the consumer wants, don't care what the consumer thinks, and are more concerned about the "legacy" they leave behind than the harm their myopia and ham-handed authoritarian actions cause.

I cannot speak of the spat between Adobe and Microsoft. Two schoolyard bullies in a fight should not be big news. If a group of people think they are incapable of working toward an "ambitious new standard," then they should step away from the keyboard, concentrate on ossification, and let more "ambitious" caretakers take the reins of the new protocols.

The folks who like ES 4 should continue to develop in it. The folks who like it should form their own group. (Not like that hasn't happened before...) Let the market decide.

Even if the market makes a bad decision, it's technology. It won't last long. (Honey, can you get the door? I think I hear 180 Billion Lines of COBOL waiting to be replaced...)

0
0

Ignore MS

Compatibility between ActionScript and JS will do far more for web technologies than having MS aboard. This is a blatant attempt to foster their own proprietary .NET C# & XAML technologies (et al).

Adobe, Mozilla, Brenden - get Opera on board and roll it yourself. It's about time MS's refusal to support standards was sidelined.

0
0
Bronze badge

I think it's the right decision but fix the bugs

Bear in mind that I've only read about the new standard, not used it, most of what I saw there I didn't like. If anything I'd rather have JS cleaned up round the edges. It was intended as a dynamically-typed prototype-based language and putting in classes as they intended only helps those who don't understand that there's more than one way to do inheritance.

Static typing actually might help but I find just plain argument type assertions work fine, although it's a bit wordy. It should be straightforward to produce a tool to do compile-time type checking, so that's not an issue.

But...

It would be just bloody grand if MS would actually FIX THE EXISTING BUGS, for example in the regexps (cost me days of wasted work) and basic stuff, like, ooh, let's see, their try except stuff ***WHICH DOESN'T WORK***, like I posted on <http://blogs.msdn.com/jscript/archive/2007/10/29/ecmascript-3-and-beyond.aspx>

// doesn't work; finally not processed

try {

throw new Error()

} finally {

WScript.Echo('here, in #finally#')

}

// but this does:

// note dummy try/finally around it

try{

try {

throw new Error()

} finally {

WScript.Echo('here, in #finally#')

}

} finally {}

Plenty more in that link above from a bevy of well-irate programmers. MS is just depressing and arrogant to the point of abusive at times.

0
0
Tom
Silver badge

Why have a standard when you can have a lockout

Of course an up to date JavaScript would mean that SilverOrdure wouldnt be 'necessary' and Open Source developers could write browser software that would make MS and Adobe pointless.

I just hope FF manages to get E4X in asap so we can bring browsers into the 1990's where they were heading before Adobe and MS got involved.

0
0
Flame

Tome beat me to it...

.. code it up and get it into FF and Opera, then encourage the Web community to do their creative best with the new features. These sites can then be labelled "Best viewed with Firefox and Opera", to encourage the growing migration away from Internet Exploder, and give IE users a "Sorry, you will get a basic page because you need to upgrade to a more modern browser" message.

That should generate some healthy debate. Microsoft never bothers to address standards properly (OOXML...? Ha!), so leave 'em behind with Silvershite... the real world can move on to the 1990's, as Tom rightly says...

0
0
Unhappy

Namespaces are badly needed.

A lot of people are trying to use multiple javascript frameworks then namespaces would be a life saver.

I mean lets say your Content Management system is based on JQuery and you want to adapt a module for it written in mooTools.

:(

0
0
Bronze badge

@David Wilkinson

Permit me to ask a silly question.

I haven't needed namespaces for my work but when I wrote a javascript library (for internal use) I invented my own privacy-enforcing policy using the conventional, well established trick of assigning functions/variables to a single object and exporting that, something like:

var lib = new Object();

lib.connect_to_server = function() {...}

lib.get_result_set = function() {...}

<etc. for pages>

what's wrong with that? Where does this solution fail?

If you have to use libraries that don't do this then it's the fault of the library, not the language.

0
0
Bronze badge

clarification

I didn't make that very clear.

Once lib has been defined (and it was done in a -huge- function that just returns the lib object, so the details within are inaccessible) then the user creates it:

var my_lib = make_lib()

and then uses it

my_lib.connect_to_server(...)

0
0
Boffin

Duh!

BlueGreen,

What are you drinking? The more useful frameworks (e.g. Prototype) use Javascript prototypes, so you don't have to waste time adding redundant code to add functions to every created object!

Sheesh.

0
0
Bronze badge

@AC

Tea, thank you.

I think you misunderstand. Check my code again. The only object that gets stuff added to it is the single object I refer to as 'lib' within the function, or 'my_lib' outside (same object though). It represents a collection of objects which comprise a library - effectively it is my library - and by tacking them onto a single object it prevents cluttering the global namespace.

Though I didn't say it explicitly, the make_lib() function is called once only. It's defined as a function not so it can easily create loads of identical copies of the library, because that's pointless, but so that the clutter of defining many functions can be defined within, and stay within, a single (albeit massive) function. If I didn't do that then I'd be defining the functions in the global namespace which is exactly what I was trying to avoid.

Prototypes aren't relevant here.

Put another way suppose I wanted to add a hundred functions to my app. I could just define them directly:

function add(a, b) { return a + b; }

function mult(p, q) { return p * q; }

function ... <etc, 98 more times>

Now I've added 100 names to the global namespace, and I can say:

var yy = add(3, 4)

which is pretty obvious, but my 100 definitions can clash with other people's work, or I could do this:

function make_lib() {

var lib = new Object();

lib.add = function(a, b) { return a + b; }

lib.mult = function(p, q) { return p * q; }

lib.... = function ... <etc, 98 more times>

return lib

}

I know have one (not 100) new object; that being the single function make_lib, and I instantiate it thus:

var my_lib = make_lib()

and use it thus:

var yy = lib.add(3, 4)

So, my question remains, is this a sufficient solution to David Wilkinson's namespace problem, and if not, where does it fail?

0
0
This topic is closed for new posts.