×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

ECMAScript 4.0 Is Dead

Soulskill posted more than 5 years ago | from the long-live-ecmascript dept.

Programming 168

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

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

168 comments

I'll wait for... (5, Funny)

jfclavette (961511) | more than 5 years ago | (#24627355)

ECMA Script 3.11 for workgroups.

The joke works this time !

Re:I'll wait for... (0, Troll)

JebusIsLord (566856) | more than 5 years ago | (#24627385)

Everytime there is a 3.x in a fucking version #, some asshole thinks this joke will be funny. IT NEVER IS. Slashdot, I love you, but you are NOT COMEDIANS. STOP TRYING.

Re:I'll wait for... (1, Offtopic)

odiroot (1331479) | more than 5 years ago | (#24627709)

Every day. Every post. Same old memes.

Re:I'll wait for... (-1, Offtopic)

Anonymous Coward | more than 4 years ago | (#24628759)

parent is currently with 0, Insightful... mod_groupthink is behaving really strange these days...

I, for one... (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#24627715)

...welcome our unfunny slasher overlords.

Establishing de facto (open source) standard ? (0)

Anonymous Coward | more than 5 years ago | (#24627461)

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.

Re:Establishing de facto (open source) standard ? (5, Interesting)

maxume (22995) | more than 5 years ago | (#24627591)

The Microsoft stuff in the summary is just trolling. Mozilla and Google are both on board with abandoning the current work called ES4.

Re:Establishing de facto (open source) standard ? (5, Interesting)

boorack (1345877) | more than 5 years ago | (#24627805)

Maybe. Remembering earlier articles about ES4 and political mess about this, I dunno what to think.

My opinion: I need a modern virtual machine with capabilities comparable with Flash/Silverlight applets and level of integration comparable with javascript engines shipped with browsers. Compatible across browsers. Language independent (I would like to program this in Python) - maybe with some kind of intermediate representation (bytecode?). Capable to run bigger, non-trivial apps. Well designed. Open sourced and not patent encumbered.

Currently there is nothing satisfying my wishes. Pure javascript has somewhat limited capabilities (especially in multimedia area) and isn't fully compatible across browsers. Flash is proprietary and doesn't work well on some platforms and is just an applet (not well integrated with the browser itself). Silverlight is proprietary and does not work well outside windows. Java applets - along with their bad integration with browser itself and huge startup overhead - are IMO examples of bad design. Any ideas ?

Re:Establishing de facto (open source) standard ? (2, Interesting)

maxume (22995) | more than 5 years ago | (#24627835)

No, no ideas, but ES4 was only going to give you about 1/10 of what you want anyway, so you don't lose all that much here.

it's the libraries and frameworks (2, Insightful)

speedtux (1307149) | more than 5 years ago | (#24627925)

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.

Re:it's the libraries and frameworks (2, Interesting)

Tim C (15259) | more than 4 years ago | (#24628611)

This environment could even be emulated in Silverlight, allowing things to run without any install on Windows.

Doesn't the CLR (as part of the .Net Framework) ship with Windows as of Vista?

Re:Establishing de facto (open source) standard ? (2, Informative)

aliquis (678370) | more than 5 years ago | (#24627943)

Re:Establishing de facto (open source) standard ? (2, Interesting)

andy9701 (112808) | more than 4 years ago | (#24628491)

I haven't looked into SproutCore much, but isn't it just a framework built around JavaScript? If that's the case, how does that solve the multimedia part of the GP's request?

Re:Establishing de facto (open source) standard ? (1)

Kent Recal (714863) | more than 4 years ago | (#24628589)

What does the zillionth javascript framework have to do with his (legitimate) request?

Besides sproutcore looks less than impressive, even by javascript metrics. It took ages to load, yet the few available widgets feel sluggish under linux. Oh and ofcourse the layout blows up when changing font-size...

Re:Establishing de facto (open source) standard ? (1)

seanonymous (964897) | more than 4 years ago | (#24628665)

Yes, sproutcore, because mobileMe is such a success.

Sproutcore is yet another javaScript framework.

Re:Establishing de facto (open source) standard ? (1)

dn15 (735502) | more than 4 years ago | (#24629189)

Yes, sproutcore, because mobileMe is such a success.

While there were issues accessing the web interface I think those were the result of back-end problems or server overload. I don't believe the problems they experienced initially were actually inherent to the sproutcore-based webapps.

Re:Establishing de facto (open source) standard ? (1)

ropak (1331105) | more than 4 years ago | (#24629405)

OpenLaszlo would be much better example since you can 'export' to dhtml or flash if you want. That's theory but... sounds nice.

Re:Establishing de facto (open source) standard ? (1)

love_encounter_flow (907752) | more than 4 years ago | (#24628873)

i absolutely second the sentiment that what is needed is a sort of CLR (common langugae runtime) / parrot / bytecode machine implementation, on top of which languages can be implemented. that clr could be expressed in some sort of "high level assembler", on top of which language implementors can pour their syntactic icing that essentially makes bytecode accessible and readable. one could even envision some sort of "universally accepted plugins"---code that is identified by a URL, verified by secure digests, and written either in the clr or some platform-specific code according to use. popular plugins could provide services such as displaying certain image formats, playing sounds, or represent widgets, and the user wouldn't have to download them anew for each website (as is already posssible when site A references http://x/foo.png [x], then when site B references the same image, it may be retrieved from cache). levels of trust could be community-derived and user-configurable, so that some things that have attained a high score in terms of tested use would just load without acknowledgement, while code without that trust level would need explicit consent.

Re:Establishing de facto (open source) standard ? (1)

Bill, Shooter of Bul (629286) | more than 4 years ago | (#24629253)

I understand your desires, for mine are the same. I think 90% of it would be solved if their was greater native browser support for SVG & SMIL [w3.org].

Re:Establishing de facto (open source) standard ? (2, Interesting)

Lerc (71477) | more than 4 years ago | (#24629575)

I have an idea. I'm working on it.

My initial idea I laid out here [screamingduck.com]

Since writing that I became aware of quite a few things also exploring this area. I'm currently putting together a proof-of-concept plugin using vx32 [wikipedia.org].

It should be possible to make something speedily executable on non-x86 with just a few restrictions and a bit of instruction-metadata.

Importantly. The spec is much simpler than any existing VM model so an open spec with multiple implementation methods should be quite feasible.

Re:Establishing de facto (open source) standard ? (1)

Stan Vassilev (939229) | more than 5 years ago | (#24627811)

Mozilla and Google are both on board with abandoning the current work called ES4.

In particular a very curious choice on Google's part, whose GWT implements Java on browsers.

The current decision is that we don't need ES4 as we don't need packages, namespaces, classes, early binding and types on a web language.

Makes you wonder how GWT happened then.

Re:Establishing de facto (open source) standard ? (1)

maxume (22995) | more than 5 years ago | (#24627895)

My impression is that packages, namespaces and classes wouldn't have worked particularly better than the current mess at the same time that they made the language that much bigger.

Re:Establishing de facto (open source) standard ? (2, Insightful)

try_anything (880404) | more than 4 years ago | (#24628885)

I think their primary roles would have been for basic libraries, for generated code such as SOAP bindings, and other code that ordinary web-developers would not write. They would work quite well for that and allow better robustness and possibly better performance (less dynamism -> more JIT compiler optimizations) for core functionality like parsing XML and drawing graphics.

The only way I can imagine that those features are "unsound for the Web" is that ordinary web developers would not bother to understand and use them.

Unfortunately, many of the people who write Javascript these days stubbornly identify themselves as non-programmers. They resist learning anything that smacks of a "real" programming language. There could have been an ugly struggle between people trying to force these features on web developers and web developers clinging to Javascript's current free-form dynamism. On the face of it, it might seem that web developers are just lazy to avoid learning a few new language features. It also sounds quite silly for them to say, "I'm a programming idiot; I can't write code," despite slinging around complicated DHTML, CSS, and Javascript. They're obviously intellectually capable of learning and using a "real" programming language for "real" programming.

I think their basic point is sound, though. The job of writing the Javascript for web pages often falls to the web designers, and they should be allowed to program in a simple and dynamic language that suits their artistic temperaments and lets them focus their minds on their creative specialties. They do have artistic design responsibilities that programmers do not, after all, so it doesn't make sense for them to invest as much time in learning about programming as programmers do.

Re:Establishing de facto (open source) standard ? (1)

TheRaven64 (641858) | more than 4 years ago | (#24629085)

less dynamism -> more JIT compiler optimizations

Not entirely true. Less dynamism means more static compiler optimisations. It can lead to more JIT optimisations, although those optimisations are often a lot more complicated. (And, yes, I do do research in dynamic language optimisation).

Re:Establishing de facto (open source) standard ? (1)

try_anything (880404) | more than 4 years ago | (#24630033)

I'm tempted to disagree with you, but given your qualifications (and my lack thereof) perhaps I'd better phrase it as a question. If we're just talking about a browser language for the next five to ten years, won't static code be much faster than dynamic code for most if not all of that time? It took Sun years to make Java fast, and it seems like optimizing Javascript would require much more sophisticated techniques that would take even longer to reach users. I'd be very happy to hear I'm wrong, though, because it would make this news much less depressing.

Re:Establishing de facto (open source) standard ? (3, Insightful)

Dzonatas (984964) | more than 4 years ago | (#24628189)

>The Microsoft stuff in the summary is just trolling

That is true because MS actually voted for more security of an individual's IP rights than what ECMAScript 4.0 offered. One problem for example, under ES4, is that containers of code may also contain code that is owned by someone that never gave permission to distribute code. ES3.1 is not a solution, but it achieves that some desired advancements without a greater lack of security in a trade-off.

Re:Establishing de facto (open source) standard ? (1)

mabhatter654 (561290) | more than 4 years ago | (#24628339)

isn't that how .dlls have worked for years. Pretty much any dll can call any other one. Isn't that the basis of how things like scrip-o-licous and prototype work, allowing your pages to bind into the common javascript. Javascript is a DOCUMENT scripting language, not designed to keep the user or user agent from knowing or reusing the code.

Microsoft and Adobe are not being genuine here... the only way to implement what they want is in complied languages... like .net or Flash... gee imagine that.

Re:Establishing de facto (open source) standard ? (1)

Dzonatas (984964) | more than 4 years ago | (#24628447)

Microsoft does realize that only pure compilations are safer, but their take on the situation apropos to this topic was to invent a new language entirely and not either 3.1 or 4.0. What happened is that 4.0 become a buzzword under Web2.0 technology, and so 4.0 was design based on Web2.0 and semantics that are getting quickly outdated. In that regard, it is not like dlls.

Re:Establishing de facto (open source) standard ? (0)

Anonymous Coward | more than 4 years ago | (#24628691)

call me a nazi, but just a correction: script.aculo.us

Re:Establishing de facto (open source) standard ? (0)

Anonymous Coward | more than 4 years ago | (#24628877)

Of course it is (trolling). My first thought when I read it, was that a more accurate description would have been that if this proposal had made it, it would have been the result of Adobe's interests.

I've always had a feeling that Adobe's DNA contains more predator segments than Microsoft's.

MS got a tremendous jump start when IBM (with its reputation in the business world) picked them to provide the OS for the PC, and a second shove when IBM said PC clones couldn't use IBM's PC-DOS, forcing everyone who wanted to be compatible directly into MS's hands. If that hadn't happened, Gates & Co might still be selling BASIC interpreters as their principal product today.

Adobe never had such luck, they had to fight their way up all by themselves.

Re:Establishing de facto (open source) standard ? (1, Insightful)

Anonymous Coward | more than 4 years ago | (#24630011)

I have to disagree; the summary isn't trolling. Looking behind the scenes it appears that Microsoft wanted to kill it so it wouldn't compete with Silverlight. (Notice how one of the things they said wouldn't be included 3.1 that was included in 4 was namespaces and packages. It was claimed that they weren't good for the web, but oddly they appear in Silverlight.)

Also, as far as Mozilla and Google being on board-this seems mostly due to the fact that Microsoft almost unilaterally killed 4 claiming they would never support it.

I'm disappointed. If you've played with AS3(based on an earlier draft of the ES4 spec) it allowed you to code in a more classical OOP fashion, but you still had access to dynamic language features that people love about JavaScript.

At this point, many, many people have attempted to graft a more traditional OOP framework on to JS(going so far as to abstract the prototype inheritance that exists with JS)-none of them have been completely satisfactory (which is why more keep coming out). The latest one of note was John Resig's which was somewhat decent.

I am tired of people saying "You can do anything with JS". While JS's dynamic nature makes the simulation of a wide variety of language features possible, it would be far better if some of these were standardized into the language itself instead of having everyone invent hacks for things that would be available in almost any other language. This does not lead to increased productivity or efficiency.

Re:I'll wait for... (1)

BPPG (1181851) | more than 5 years ago | (#24627493)

I dunno, After going from 4.0 to 3.1, 3.11 sounds more like a step backwards. Or forwards?

Re:I'll wait for... (2, Funny)

mangu (126918) | more than 5 years ago | (#24627641)

ECMA Script 3.11 for workgroups.
The joke works this time !

Dude, that joke is so 1993!

The current version is going from 4.0 to 3.5.9

Re:I'll wait for... (0)

Anonymous Coward | more than 5 years ago | (#24627727)

Well, they should have used EMACS, not ECMAS...

Fucking Microsoft (-1, Troll)

Anonymous Coward | more than 5 years ago | (#24627371)

Now that ECMA is in the palm of their hand, they can fuck over as many standards as they like.

Fuck Microsoft.

No. Fuck you. (-1, Troll)

Anonymous Coward | more than 5 years ago | (#24627639)

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.

Re:No. Fuck you. (-1, Troll)

Anonymous Coward | more than 5 years ago | (#24627761)

what is the fundamental problem with JavaScript that another language won't have? Tip: Don't bitch about the DOM incompatabilities or event handling because you'll look like a retard.

ES4 not dead (5, Informative)

omfgnosis (963606) | more than 5 years ago | (#24627383)

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 [openwebpodcast.com]

Re:ES4 not dead (1)

Z00L00K (682162) | more than 4 years ago | (#24628297)

And notice that the adoption of scripting of web pages are slow in order to allow the web pages to be useful even on older browsers.

Most of the functionality in JavaScript 1.5 is sufficient for what you normally want to do.

The only problem is that JavaScript/ECMAScript from a language point of view isn't really good. A strongly statically typed script language would have been better since it would have allowed the developers to catch a lot of bugs that now occasionally blows up in the face of the users.

Re:ES4 not dead (1)

Hurricane78 (562437) | more than 4 years ago | (#24628457)

Wrong. It's the other way around: The adoption of new browsers is slow, because if a user hoes not absolutely has to, he's not going to upgrade.
It's like with making products easier: As soon as you "simplified" (aka. dumbed down) your product so that even the most stupid retard can use it, nature will develop an even bigger idiot to complain how "complicated" an "non-usable" it is.

My tip: If you wait, they will be extinct anyway. There's no need to support dumbing down, and to annoy more users than you help, when you can just take the warning labels off of everything and let the problem solve itself.

Re:ES4 not dead (1)

omfgnosis (963606) | more than 4 years ago | (#24629703)

Nice to see misanthropy is alive and well. :P

Evidently the art of UI design isn't a strong point for you. Usability and good UI needn't dumb down an application.

The way I look at it is, good UI designers can produce two types of applications: easy to use and powerful, or specialized and intended for an audience that will need a UI more complex than for a general audience.

Re:ES4 not dead (4, Insightful)

rycamor (194164) | more than 4 years ago | (#24628565)

The only problem is that JavaScript/ECMAScript from a language point of view isn't really good. A strongly statically typed script language would have been better since it would have allowed the developers to catch a lot of bugs that now occasionally blows up in the face of the users.

That would be the worst possible thing to happen to Javascript. I know, I know... let's not get into a religious war over static/dynamic typing. There are valid points for each in different contexts, but a language in Javascript's problem domain is probably one of the worst contexts for static typing.

Keeping the language small, clean and simple should be the priorities. If you want Java in the browser, well... that's already available.

Re:ES4 not dead (1)

omfgnosis (963606) | more than 4 years ago | (#24629637)

"And notice that the adoption of scripting of web pages are slow in order to allow the web pages to be useful even on older browsers."

I don't really think that's the case. The adoption was slow because it took a long time for browsers with good support for scripting and the DOM (the API the script interacts with on web pages) to become dominant. Even now, the browsers in the vast majority (IE 6 and IE 7) have terrible and buggy and slow DOM support, and the only saving grace for powerful web appsâ"even nowâ"is that there are really, brilliantly nerdy people who have taken the time to build compatibility layers like Prototype and jQuery.

"Most of the functionality in JavaScript 1.5 is sufficient for what you normally want to do."

And if it's not, extending it is not at all difficult.

"The only problem is that JavaScript/ECMAScript from a language point of view isn't really good."

Are you kidding? I think it's excellent. I don't agree on the benefits of static typing, and I find AS3 a real pain in the ass to write because of it. I know how to validate the data I'm receiving according to the standards I expect. The reason JS has been so problematic for so many people is because, like PHP, the language attracts a lot of unskilled, untrained developers. That's not a shortcoming of the language, it's just due to placement.

Let's pull a Microsoft (0)

Anonymous Coward | more than 5 years ago | (#24627387)

Mozilla and Adobe should just go ahead with v4.0, keeping it public so Apple and Opera can use it, too.

Harmony is a good name.... (4, Insightful)

QuietLagoon (813062) | more than 5 years ago | (#24627395)

What is needed in the JavaScript world is not more features, but more consistency of implementation across the various browsers.
.

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.

Re:Harmony is a good name.... (4, Insightful)

Goyuix (698012) | more than 5 years ago | (#24627427)

I would disagree (to some degree) that more features are in fact needed. For example, E4X (and a native XML doc object) being standardized in the browsers would be a huge benefit.

That being said, I think that a lot of the feature bloat going into the proposed v4 was really not all that great. I think this is generally a step in the right direction.

Re:Harmony is a good name.... (4, Insightful)

hedwards (940851) | more than 5 years ago | (#24627653)

Quite so, a lack of standardization amongst the implementations has been a serious problem for years. Allowing developers to use the entire spec as is without fear of problems going between browsers would be a huge step forward for JavaScript.

Perhaps add in a few fixes for annoying parts of the language and similar, but overall if it's just made to be consistent across browsers, that would go a long ways.

Re:Harmony is a good name.... (1)

bussdriver (620565) | more than 4 years ago | (#24628625)

YES! But the next revision...

1) They NEED to release a long list of test cases that can be run against implementations.

2) How about having toString() output JSON? (at least specify exactly what it should output.)

If anything new:

Access methods for Object():
    Allows a function to monitor read/write/exec of an object's properties (EXTREMELY useful for client side patching of implementation bugs.)

A Console object loosely modeled after FireBug with a focus on unit testing. Implementation optional; but no errors if its used.

Perl level RegExp (look ahead)

A few of the Mozilla additions

Hash: an Object without ANY properties, any methods would be 'Class methods' not object methods.

Re:Harmony is a good name.... (4, Insightful)

pembo13 (770295) | more than 5 years ago | (#24628001)

I would ask for a safe JSON parser as well as I prefer JSON to XML (which is quickly becoming overused)

Re:Harmony is a good name.... (5, Informative)

omfgnosis (963606) | more than 5 years ago | (#24627437)

"What is needed in the JavaScript world is not more features, but more consistency of implementation across the various browsers."

With the exception of a few later-added methods (on Array for example), that's already there. The inconsistency is in the DOM, and that's not something ECMA covers.

Re:Harmony is a good name.... (-1, Troll)

Anonymous Coward | more than 5 years ago | (#24627725)

But we don't want a monoculture here, everyone using similar implementations will mean a bigger target

Re:Harmony is a good name.... (1)

TheRaven64 (641858) | more than 4 years ago | (#24629121)

I know of two other projects known as Harmony. One was an attempt to reimplement Qt, to allow KDE to be open source and remove the need for GNOME (Trolltech effectively killed it be releasing Qt under the GPL and removing most of the need for it). The other is an open source J2SE implementation. Harmony sounds like a great name for causing confusion.

Another Win for Standards Based Innovation? (0)

Anonymous Coward | more than 5 years ago | (#24627405)

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.

I'm skeptical (2, Funny)

joe 155 (937621) | more than 5 years ago | (#24627467)

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

Can I just point out (-1, Flamebait)

Colin Smith (2679) | more than 5 years ago | (#24627485)

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.

 

Re:Can I just point out (4, Interesting)

kevin_conaway (585204) | more than 5 years ago | (#24627671)

[Can I just point out] 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.

You can point that out, but you'd be wrong. JavaScript hasn't recently "become" anything. The last major revision that all browsers supported was in November 2000.

It is a beautiful, expressive and quite powerful language that is just now starting to shine after years of being misunderstood by people like you.

Re:Can I just point out (1)

Metasquares (555685) | more than 5 years ago | (#24627853)

It's a nice language overall, but OOP in Javascript is a real pain in the neck. I wouldn't mind a more traditional class structure.

Re:Can I just point out (4, Interesting)

fimbulvetr (598306) | more than 4 years ago | (#24628311)

OOP !== Class based OOP

JS isn't a class based OOP language, it's prototype based OOP language - the two are _very_ different. I can understand why it's a pain in the neck. It's also a pain in the neck to force a square peg into a round hole, but is the blame on the person who made the square peg or on the person whom thinks that the square peg should indeed be able to be put in the round hole?

Re:Can I just point out (0)

Anonymous Coward | more than 4 years ago | (#24629901)

Javascript is half-assed, broken implementation of prototype OOP. Look at Io [iolanguage.com] for a real implementation of the ideas developed by SELF.

Re:Can I just point out (-1, Troll)

Anonymous Coward | more than 4 years ago | (#24628291)

It is a beautiful, expressive and quite powerful language that is just now starting to shine after years of being misunderstood by people like you.

Yeah, it's such a beautiful, expressive, powerful language that I have to use a browser plugin that disables it on all but a minuscule fraction of the websites that I surf. All just so that I can be reasonably certain that if my machine gets compromised through my browser, it won't be because of some bullshit javascript pwnage.

Poor misunderstood javascript, indeed. :-(

Re:Can I just point out (0)

Anonymous Coward | more than 4 years ago | (#24629967)

What does that have to do with the language? You can write crap programs in all languages. How about you discuss it in more substantial terms like how much time is needed to X in that language? Does it save you keystrokes vs. another language? Does it make the code easier to understand?

Ha ha! (0)

Jane Q. Public (1010737) | more than 4 years ago | (#24628639)

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.

Re:Can I just point out (-1, Troll)

Anonymous Coward | more than 4 years ago | (#24628793)

You can point that out, but you'd be wrong.

no, he's right.

now starting to shine after years of being misunderstood by people like you.

No.. he's right. It's a pos language. It's a god damned mess from all perspectives.

Re:Can I just point out (0)

Anonymous Coward | more than 4 years ago | (#24628909)

It is far from expressive. It's full of php-esque issues, such as no namespaces, and a very poor OOP system. Misunderstood, yes. As something it's not, yes. A good solution? No.

Re:Can I just point out (1)

Z00L00K (682162) | more than 4 years ago | (#24628393)

I agree that JavaScript/ECMAScript is horrible, but it's what we have.

At least it's not as horrible as VBScript.

But I sure would like to have had a language with strong static typing, which in effect would have made it very similar to Java. By doing this we would have had at least some bugs straightened out before deploying to a large number of users.

The inconsistency between browsers is also a catch, but it could have been a lot worse.

Re:Can I just point out (1, Troll)

Locutus (9039) | more than 4 years ago | (#24628481)

exactly what Microsoft is doing its best work to cause. Javascript and all the tech in AJAX which allows application-like browser-neutral pages is a massive threat to Microsoft's income.

I don't know what Microsoft had to do with this but their position on any industry committee is purely to find ways to either stall the project or make sure they have ways to dilute it on Windows. They have no other reason or purpose. IMO.

LoB

Re:Can I just point out (1)

labyrinth (65992) | more than 5 years ago | (#24630407)

You do realize that the HTTPRequest object which makes AJAX possible was introduced by Microsoft in the first place?

Re:Can I just point out (1)

Locutus (9039) | more than 5 years ago | (#24630551)

ok, so you are saying that they produced "HTTPRequest object" with the W3C? I doubt that and would figure it was probably originally tied to some Windows-only technology. Even if in the far off chance they did submit this to the W3C, I'd bet that they would take it off the market in a heartbeat if they could.

And I don't doubt they have some good developers. They, as a business, don't put solutions or customers first so that their shareholders are rewarded. They know their shareholders are rewarded only because they've got Windows in a monopoly position and keeping it there with anti-competitive tricks and methods is what they do and have done.

If the cure for cancer came out on a Mac or Linux, Microsoft would crush that and the result would be more like a Kleenex for the common cold. IMO.

LoB

Scariest Part of the Article (0)

Anonymous Coward | more than 5 years ago | (#24627507)

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.

Crockford and Standards (5, Informative)

kevin_conaway (585204) | more than 5 years ago | (#24627573)

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 [yuiblog.com]

He gives some insight into how ES4 got to where it is today and its impact on standards in general

Re:Crockford and Standards (1, Insightful)

lysse (516445) | more than 4 years ago | (#24628527)

This was the sentence of Crockford's post that really leapt out at me:

It went off the rails when people started to just make new stuff up.

That's generally true of standards committees. When they're documenting existing practices and seeking consensus and convergence between them, they're in their element. When they decide they can start inventing, rather than consolidating, they lose the plot altogether...

What a damn shame (3, Insightful)

Stan Vassilev (939229) | more than 5 years ago | (#24627741)

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.

Re:What a damn shame (2, Informative)

DCstewieG (824956) | more than 5 years ago | (#24628015)

With a good build/deployment script you can combine all of your CSS and JS files together, giving the advantage of better compression and less HTTP requests. If you have it set up in that way, you can split your script into as many files as you want.

Images are a bit different, you can't do much outside of spriting where you can.

This is not to say a JAR equivalent wouldn't be preferred, just that there are things you can do today.

Re:What a damn shame (1, Informative)

Anonymous Coward | more than 4 years ago | (#24628397)

>modern web application typically has to download a ton of CSS/JS/image files

This is trivial to fix for JS/CSS, either via runtime tool or build system. It takes about 10 minutes to add a servlet to combine and compress JS/CSS files in Java via the JAWR library, for example.

Re:What a damn shame (1, Informative)

Anonymous Coward | more than 4 years ago | (#24628405)

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

Um, that's exactly what "sugar" means: a more readable syntax that hides the implementation details.

Harmony will have classes -- they will merely be implemented as syntactic sugar on top of lambdas and prototypes, instead of being new constructs altogether. This change is irrelevant from the point of view of anyone other than a language implementor.

Just another example (1)

Jane Q. Public (1010737) | more than 4 years ago | (#24628675)

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

Classes are not out of the question. (3, Informative)

Tiles (993306) | more than 4 years ago | (#24630025)

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 [openwebpodcast.com] 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).

for those of you who complain, (0)

circletimessquare (444983) | more than 5 years ago | (#24627865)

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)

Re:for those of you who complain, (1)

Locutus (9039) | more than 4 years ago | (#24628555)

and this should not surprise anyone. Cross platform technologies are a threat to Windows and since over 80% of Microsofts profits come from Windows, cross platform technologies are a threat to them. So don't wonder why Microsoft keeps pushing stuff which only works on Windows or pushes for things which slow down adaption for open standards.

LoB

A real pity (4, Insightful)

shutdown -p now (807394) | more than 5 years ago | (#24627883)

ES4, as proposed, was destined to become a truly beautiful language, applicable for far more than its present Web scripting role. It was something I was actually looking forward to. And now - they've essentially codified the status of ES as the "Web scripting language", and discarded all the "too hard" stuff from the spec because it didn't fit the role. Which is quite surprising, since, given the popularity of GWT, one would think that ES3 implementations do lack something that people want.

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.

Re:A real pity (1)

Tacvek (948259) | more than 5 years ago | (#24628075)

I agree that packages are not generally useful for the web, but why not keep it as a language feature. Mandate that a parser accept it, but perhaps only mandate that core packages be supported, and that an implementation does not need to provide a means to add additional packages.

I really don't understand the AS 3.0's "namespace" feature. That looks like access specifiers to me.

The packages feature sounds more like C++'s namespaces to me. (Although C++ classes are also (effectively) namespaces, to the point that static members of a class look a lot like just items in the namespace of the class [except for the access specifier implications]).

But the literature makes it sound like the AS 3 namespaces are more than just access specifiers, so I'm not sure what they really are.

Early binding may not be appropriate for the web, so I have no real idea how that should be handled. Making it completely an option would make porting code between AS 3 implementations potentially much harder than they should be.

I hope taht instead of killing the ES4 but just basically pause it, to return to it once they have released a 3.1 as a stop-gap measure.

I just fear that they implement some ES4 style features in 3.1 in a way that is not compatible with ES4.

Re:A real pity (1, Interesting)

Anonymous Coward | more than 4 years ago | (#24628231)

ES4, as proposed, was destined to become a truly beautiful language, applicable for far more than its present Web scripting role.

Barf. What we need is a trim lightweight browser scripting language. You want to write an desktop app, write a bleeding desktop app; don't bloat up javascript.

Re:A real pity (2, Informative)

shutdown -p now (807394) | more than 4 years ago | (#24628847)

Barf. What we need is a trim lightweight browser scripting language. You want to write an desktop app, write a bleeding desktop app; don't bloat up javascript.

JS was never "lightweight" in any sense of the word - neither in terms of language features, nor it terms of performance of typical implementations. If you want a truly lightweight scripting language, designed as such, see Lua.

get some language experts (-1, Flamebait)

speedtux (1307149) | more than 5 years ago | (#24627897)

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.

Re:get some language experts (1)

rycamor (194164) | more than 4 years ago | (#24628797)

Yes, what suckage. Who on earth wants a simple, dynamic, low-cruft language with first-class functions, closures, lambdas and a prototype object system that still manages to look like the C language family? Evil, evil, evil...

Note: I don't consider myself enough of a language expert to judge your first assertion, but your second assertion makes me strongly suspect the first. That you would claim Brendan Eich has no business being associated with language design doesn't exactly help your case.

Re:get some language experts (1)

TheRaven64 (641858) | more than 4 years ago | (#24629219)

Who on earth wants a simple, dynamic, low-cruft language with first-class functions, closures, lambdas and a prototype object system

Hardly anyone, it seems. Otherwise, how do you account for the popularity of C++?

Is it coincidence? (0, Offtopic)

dvh.tosomja (1235032) | more than 5 years ago | (#24627937)

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.

Why is JavaScript is so popular? Lamda Functions (1)

Anik315 (585913) | more than 5 years ago | (#24627951)

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.

Re:Why is JavaScript is so popular? Lamda Function (2, Interesting)

Z00L00K (682162) | more than 4 years ago | (#24628443)

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.

Re:Why is JavaScript is so popular? Lamda Function (2, Insightful)

rycamor (194164) | more than 4 years ago | (#24628865)

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.

Re:Why is JavaScript is so popular? Lamda Function (1)

TheRaven64 (641858) | more than 4 years ago | (#24629277)

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

Re:Why is JavaScript is so popular? Lamda Function (2, Interesting)

Anonymous Coward | more than 4 years ago | (#24629711)

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.

Oh sweet jesus! (0, Troll)

FlyingGuy (989135) | more than 4 years ago | (#24629227)

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? Not so. For the most simple web page, ie: text of a single page it is as simple as MyPage = NewDocument and after that is is MyPage.Text = "Welcome to Sally's web page, gee I am SO cute!" and that is all it takes.

No you can do this one better by implementing a set of pages as a collection of pages, eg: MyCollection = Collections.New(...) and from there on all your pages are no accessible from MyCollection, so creating a new page is as simple as MyCollection.NewDocument(...) but for single web pages a collection is not required.

These concepts would bring a new set of functionality to the web, a level that cannot be achieved with the current way of doing things. A new paradigm is required to bring the web into the future, to provide the same functionality as you get with any desktop.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...