ECMAScript 4.0 Is Dead
TopSpin writes "Brendan Eich, creator of the JavaScript programming language, has announced that ECMA Technical Committee 39 has abandoned the proposed ECMAScript 4.0 language specification in favor of a more limited specification dubbed 'Harmony,' or ECMAScript 3.1. A split has existed among the members of this committee, including Adobe and Microsoft, regarding the future of what most of us know as JavaScript. Adobe had been promulgating their ActionScript 3 language as the next ECMAScript 4.0 proposal. As some point out, the split that has prevented this may be the result of Microsoft's interests. What does the future hold for Mozilla's Tamarin Project, based on Adobe's open source ActionScript virtual machine?"
ECMA Script 3.11 for workgroups.
The joke works this time !
Now that ECMA is in the palm of their hand, they can fuck over as many standards as they like.
Fuck Microsoft.
It's not dead. There will eventually be a Fourth Edition of ECMAScript, it just isn't the focus now. The ES4 proposal wasn't ever enshrined as the actual Fourth Edition either.
I was really skeptical about the concessions made by the ES4 side before I listened to some of their rationale; it wasn't so much concessions to the 3.1 side, it was that the things they were dropping didn't adequately solve the problems they were put in to solve.
There's a great talk about it here: http://openwebpodcast.com/episode-2-brendan-eich-and-arun-ranganathan-on-ecmascript-harmony
Mozilla and Adobe should just go ahead with v4.0, keeping it public so Apple and Opera can use it, too.
.
It is good to see the standards committee taking a breather from major new features, and instead focusing upon the alignment of behavior of functionality across the various browsers.
Hopefully, there will be a robust and rigorous compliance test suite as a deliverable of this standards process.
Another win for standards based "innovation". Let private companies innovate and submit to standards bodies. Otherwise you get crap like this and XHTML 2.0.
It might be (a bit) naive. Maybe Mozilla (along with, say, Google or other companies) should implement a well designed language independent virtual machine for a browser with modern features and ECMA 4.0 spirit ? Along with MSIE bindings. Shipped with Mozilla by default. Open source. Microsoft will have no chance to obstruct this effort. After (successfull) rollout it would be proposed to ECMA as a standard ?
Just wondering.
Brendan Eich may claim it to be dead, but I'd really rather wait for Netcraft to confirm it before actually basing any decisions on this news...
*''I can't believe it's not a hyperlink.''
That Javascript as a development platform, as it seems to have become, is evil. It's just horrible from an efficiency, performance, security and architectural point of view.
It seems to be the future.
Deleted
What scares me most from reading that article was this part: "In fact The Adobe CEO has stated they are moving their entire application suite in the next 10 years to the Flash platform, so this language spec is serious stuff."
Our computers are getting faster but we're getting more power hungry applications that don't do much more than what came before. This goes agaisnt the current popularity of small and cheap laptops.
I invite everyone to read Douglas Crockford's latest post on the YUI blog entitled: The Only Thing We Have To Fear Is Premature Standardization
He gives some insight into how ES4 got to where it is today and its impact on standards in general
Years after years and ECMAScript was a pile of shit. I certainly don't have JavaScript activated when I browse. Hopefully, MSFT will kill the standard, causing ECMAScript to superseded by... oh I don't know... SOMETHING THAT ACTUALLY WORKS.
Go Microsoft.
Long live ECMAscript 5.0!
Knowledge is power. Knowledge shared is power lost.
...welcome our unfunny slasher overlords.
Such a damn shame to let ECMAScript edition 4 go in this way.
The small shame is for Adobe's efforts, who entered the ECMA standards body to contribute, donated the entire engine to Mozilla and plenty of other efforts to get this going. But AS3/Flash will not be affected in a big way from this.
The web community as a whole will be. That's where the big shame is: for all of us, web developers. I see that packages, namespaces, classes and early binding are out, likely forever.
Classes are not "sugar", we do need those paradigms when creating bigger applications, because they are more rigid, more readable, more maintainable, understandable. I love lambdas, prototypes and all that, but that's the lower level, the implementation inside a class, inside a package. Those are not interchangable paradigms.
ES4 and AS3 have managed to add those higher constructs to the language, while maintaining full compatibility with all flexible features of ES3 (the JavaScript currently used in browsers).
The reasoning behind dropping all constructs appears to be the preconceived notion that JavaScript must exist in the form of disparate text files loosely connected to each other, something that doesn't scale to bigger efforts at all (and which makes Flash much more viable for such deployment), hence packages and early binding are out. What a mistake.
Who's to say we won't see JAR-like environment where bigger libraries can be compressed together, and some preprocessing can be done to ease the load on the client CPU/bandwidth? I've been praying we get such deployment option soon as a modern web application typically has to download a ton of CSS/JS/image files to build an average GUI nowadays. Why isn't this the focus of ECMA's efforts, but instead the focus is to maintain the status quo and reject us basics that have proven themselves in time to work well in all environments out there.
If you doubt this would work, look no further than Java/Flash applets distributed over the web in this fashion (and Flash is very widely used nowadays).
What ECMA has achieved with their decision, is to basically stagnate the browser environment, and empower third-party cross-browser plugins to eat more from the advanced web application market share, because Adobe's Flash, Microsoft's Silverlight are not even thinking of dropping their mature OOP features, just because ECMA said we don't need them.
as i do, about all the different dhtml and javascript implementations across different browsers, be very scared
here is a vision of the future where different browsers use different script languages
its as if internet explorer never decided to support javascript in the mid1990s but still gained massive market share, forcing us in the industry to code for sites in javascript and vbscript
(shudder)
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Oh well; Microsoft scores one here, considering that Silverlight 2.0 will be scriptable using Python and Ruby out of the box.
By the way, the whole fuss about MS being behind this is pretty stupid and unfounded. MS was actually one to jump on the ES4 bandwagon early, along with Adobe - their early implementation of it was called JScript.NET, first released in 2002 with .NET Framework 1.0, and it does in fact still ship with all versions of .NET, and is an officially supported .NET language. They certainly wouldn't have any trouble extending it to the more recent spec, should it become standard. Now, I guess it will just be quietly dropped in the next version of the framework.
People who write bullshit like "But early binding in any dynamic code loading scenario like the web requires a prioritization or reservation mechanism to avoid early versus late binding conflicts." have no business being associated with language design. It's no wonder that JavaScript sucks so badly as a language.
Any ideas ?
The problem with Java and the CLR in browsers are mostly with the libraries, not the virtual machines. So, I think the thing to do would be to start with, say, the CLR and develop an open applet environment and browser integration based on it. This environment could even be emulated in Silverlight, allowing things to run without any install on Windows.
Just few seconds ago, I ported simple C demo using libmozjs.so into freepascal, and now you telling me JS is dead? And yes, all following "Latin and pascal is dead languages" jokes will be moded as troll.
Although JavaScript is not very good as an application language, it can do some really neat things which makes it very interesting to language nerds which is why it is so popular.
One thing is that functions are also objects which means they can be returned and taken as parameters by other functions. This is called lambda coding. Function pointers do not allow you do to quite the same thing since they can't be dynamically generated and modified. It makes certain kinds of mathematical programming very easy. For instance functions can be dynamically defined to return the derivative function of another function.
Not many languages allow you to do this. Ruby, Python and Perl, JavaScript and ActionScript all allow lambda coding, but Java, C and C++ don't probably for performance reasons since the runtime environment of the compiled program itself requires a compiler. The latest edition of C Sharp I think does though.
In any case, since JavaScript allows this it would nice just have a compiled version of JavaScript with lambda coding and classes. I think that's what they are shooting for with Harmony so I'm not really that disappointed with this decision.
JavaScript is popular only because it exists in almost every browser since a long time ago. This means that if you code something for a browser in JavaScript you know that it has a reasonable chance to work for the most commonly used browsers.
The use of JavaScript outside the environment of browsers is very limited, and exists only in specialized applications where it may be useful to have a script language. But then it competes with other script languages like TCL/Tk.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
It is an ugly, gutteral, non-expressive, but quite powerful language.
If you want a beautiful language you would get a lot closer with Ruby. JavaScript is many things, but beautiful or easy to use it ain't.
... of how Microsoft seems to prefer to win through destruction of others rather than production of their own.
Not that we need another example. How many have we had already? Does anybody doubt?
In my case, I really didn't START to like Javascript until I began to read up on it's functional capabilities.
I think there is more to Javascript's popularity than what you say. It is actually a fairly nice little language, and hopefully when a few annoyances are cleaned up in version 2.0 it will be used outside the browser more and more. In fact, anyone who has done some serious Mozilla application programming with XUL realizes that there is no reason Javascript must be restrained to a web browser context to be useful.
I'm waiting for Javafx. It looks pretty interesting to be honest.
Java Script is a really bad joke. Not that there is anything better at hand, but it is utterly and completely in drastic need a of "Lift up the radiator cap, and drive a new one underneath it treatment" and damn soon.
Right along next to it, is the Document Object Model, yet another thing needing the same treatment,
.
And right along with those two is CSS, a good idea gone horribly wrong.
So what do we do? How do we fix this, how do we build something that everyone can agree on? The short answer is, more then likely we cannot. Why? Because there are to many ego's involved, to many pet languages involved, to many pet methods and styles.
But with a lot of "We are going to ram this right up your ass, everyones ass, because it will be so clean and functional you won't have a choice but to bend over and take it." attitude AND aptitude we can succeed.
The idea of DOM is great, because it creates a known method of manipulating the bits and parts of an web page to effect the best possible user experience, but the loosely coupled nature of JS, DOM and CSS just keep making the whole thing just become to overwrought with complexity and errors.
The way to fix this is IMNSHO is to rebuild it into one entity.
Wait for it......Ohhh the horor!!!!!. No kids it is not a horror, it is supremely logical. The very notion that you treat a web page as if it was a bit of paper is ludicrous! It is not a peace of paper, it is a digital screen capable of all sorts of neat tricks, and the engine that drives it is superb. The notion of paper needs to be simply left behind, move on, it was a hell of a go, but it is time to grown up, but into what?
The web browser needs to transform into a sand-boxed window manager. How is that again? A window manger, huh? The idea sits in front of ALL of you every day. The GUI desktop moves things around, arranges windows, covers them up allows them to be moved, adjusts for sizing, everything we desperately try to implement in CSS and DOM but pretty fail to do.
How do we accomplish this? Well not without a lot of yelling and screaming. But consider this, if you had the same level of control over your your web page presentation as you have over any GUI application, how happy would you be? Personally I would be ecstatic! I mean Wooooo-Whooooooo! Just think of the level of control you would have, you could build perfectly interactive web pages that would vow to your and more importantly, your audiences every whim.
As a set of verbs and nouns JS is not that bad. I would tweak it a little a little but not much. What I would do though, is make DOM ( or an equivalent name ) be derived from JS instead of having JS simply be able to connect to it, for example, a web page would begin with a call to JS ( or the equivalent name ) MyPage = NewDocument(...) and that would pop open the new page, fresh and clean. After that you start laying out the sections, eg: UpperLeft = MyPage.CreateArea(...) rinse and repeat until you have all your areas defined. At that point, you begin to fill in all the areas by making calls to UpperLeft for things like control's, backgrounds, colors, scrolling text area's and the like. At that point you could then have a successor to CSS be a value passed to UpperLeft that would then style it as you desire.
This would eliminate some of the biggest problems with CSS, ie: the box model and DIVS freeing you up to really concentrate on the content. In addition there would be a menu model in there. Trying to do menus in CSS is at best a dark art and at worst damn near impossible, depending on what you want to do. How about something like TopMenu = MyPage.New.H[V]menu which could then be fed a very small XML hierarchy ( and by the way, I HATE XML with a passion you can only imagine but in this case it makes sense ) that would populate the menu, it handles the layout of the thing, you simply provide it colors, sizes, content and the OnClick call's
But this will make web pages WAY to complicated you say
Hey KID! Yeah you, get the fuck off my lawn!
I think you are confusing a few things. Lambda calculus is a simple universal model of computing invented by Church. A lambda expression can reference variables explicitly inside its scope ('bound') or outside ('unbound'). By performing a beta reduction, you explicitly bind a variable in a lambda expression. This is what the lambda operation in Lisp does.
It sounds like you are confusing the fact that functions are objects, and the fact that functions are closures. The fact that they are objects lets you pass them as parameters and introspect them. The fact that they are closures allows them to reference variables in their enclosing scope even after the enclosing scope has exited.
JavaScript is a Self derivative, and Self is a Smalltalk derivative (with Lieberman prototypes instead of classes). All languages in this family have closures as first-class objects, including newer ones like Io. For Ãtoilé, I have written a Smalltalk compiler which generates code ABI-compatible with the GNU Objective-C runtime, which allows us to mix Smalltalk and Objective-C in the same project (actually, in the same object), so we get exactly this advantage from a compiled language (for various other reasons, Smalltalk is still slower than Objective-C).
I am TheRaven on Soylent News
I think I get what you're saying but the difference between function having closures and functions being objects, but I just intended to point out that unlike JavaScript, Java, C, and C++ don't allow first class functions (which I refer to as lambda functions) though they do allow first class objects and function pointers though
First class functions and Lambda functions in Lamda calculus are the same thing. I also used the calculation of a derivative using a lambda function as an example which is something from mathematical calculus which may have added to the confusion.
Classes are syntatic sugar. That's what the working group found, when it discovered that most class-centric features can be boiled down to simpler APIs such as .freeze(), .defineProperty(), &c., all of which are being implemented in ES3.1. Classes, then, would only be user interface to what can already be implemented using these features.
ES-Harmony is about standardizing new features that already work in (three out of four) major browsers, without changing the syntax of the language. Brendan Eich of Mozilla in the Open Web Podcast already discussed how script versioning will allows coders to use different language versions in the future. So syntax changes are not out of the question, they're simply being postponed until after ES3.1.
Until then, users will still have all the power of classes in their code, just without the ease-of-use of a "class" keyword (which will be a lot easier to implement after ES3.1 is proven and tested).
> What is needed in the JavaScript world is not more
> features, but more consistency of implementation
> across the various browsers.
While I agree with you about the need for greater consistency of implementation, I don't expect that will ever happen. Microsoft does not want that to happen; and will do all it can to prevent cross-platform and cross-browser adherence to agreed standards where those standards will reduce its monopoly position - even to the extent of hijacking standardisation processes.
http://www.consortiuminfo.org/standardsblog/index.php?topic=20071125145019553
http://www.consortiuminfo.org/standardsblog/index.php?topic=20051116124417686
my god, and nobody asks why slashdot, thereg and others tell us that standards are dead ? The bottom line of this story is about "kill standards, let money be innovative" with crap software. Who the hell cares about standards compliance ? Me ! I'm fed up with writing compatiblity layers ! Human being should be ashamed of its lack of ability to comply with standards ! Please, people, do believe in standards, this is the only way to go next stage. Don't listen to all these pseudo journalists trying to make you feel sad about practical and beautiful solutions. And also don't forget to look at epiphany-webkit, the only browser with 100% acid3 test !
Scuse me while I build up and then destroy this straw man, followed by a head-first dive into rhetoric.
ECMA sounds like a bad skin disease... ... I knew this girl once, she wasn't that bad looking, you know, but man did she have ECMA all over... gave me the creeps!
he pointed out that it is a development platform for Web 2.0. There are many web development frameworks that do quite well, with only just enough javascript to support ajax and nothing more.
Having stated that, it is also true that if you want smooth cross-browser compliance, Flash with actionscript has been the only way to go for quite a while. And given that, then Microsoft might just have shot itself in the foot again, because Flash and actionscript are more consistent cross-browser than JavaScript has EVER been... and Microsoft's competitor Silverlight is -- as usual -- too little too late.
I agree but its not just its functional capabilities. It has a really nice (if limited) syntax. True, it is in many ways just a knockoff of C or C++ but that, to me, is part of its appeal. It is far less cumbersome than either and that makes it fun.
Time flies like an arrow. Fruit flies like a banana.
> The web browser needs to transform into a sand-boxed window manager.
> How is that again? A window manger, huh?
Every time you add power to a scripting language, you invite abuse. Considering how well MS has *NOT* sandboxed stuff inside IE, absolutely the *LAST* thing the web wants/needs is "more powerful" web apps.
The article at http://www.theregister.co.uk/2008/08/15/webbased_clipboard_hijacking/ describes the latest Flash exploit. It appears to come in via Flash in 3rd-party banner ads. It causes Flash to rewrite the user's clipboard once a second, with a URL to a malware-laced website. The logic is that if you're doing a bunch of cut-n-paste, you may not notice that you've pasted something other than what you've intended. These malware URLs will end up being pasted into people's email messages and web postings.
This is an "equal opportunity attack". Because Schlockwave-Trash is so ubiquitous, the clipboard-hijacking is affecting all major OS's (Windows and Mac and Linux) and browsers (IE and Firefox and Safari).
The problem is that Flash is not a mere player. It's a programming environment complete with scripting language (Actionscript). This includes stuff like System.copyToClipboard() It's not a bug, it's a feature. Yet another reason to block Flash. I use the Flashblock extension for Firefox.
We should send a message loud and clear to web developers...
You may send *DATA* (including text/pictures/sound/movies etc) to my browser, but *YOU MAY NOT EXECUTE YOUR CODE ON MY MACHINE*!!! If I wanted the Russian Business Network to be able to execute their code on my machine, I'd run Windows and IE with ActiveX enabled.
I'm not repeating myself
I'm an X window user; I'm an ex-Windows user
I'd love to see Haxe ( http://www.haxe.org/ ) supersede Ecmascript.
{{.sig}}
Original post says
That is wrong, ES3.1 is the smaller increment and repair of the current third standard, and "Harmony" is new features beyond that. Doug Crockford, who seemed opposed to much of ES4, wrote:
Some of the features that were in ES4 were reasonable, so a new project, called Harmony, is starting which will look at adapting the best of ES4 on top of ES3.1.
TopSpin's summary is pretty crappy!
=S
ecmascript schmecmascript already! There's be no fun in web development if you didn't have to try and hack around subtly different incompatible implementations of more-or-less thae same goddam thing.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."