MS, Mozilla Clashing Over JavaScript Update
jfruhlinger writes "JavaScript has become a crucial part of Websites built on AJAX underpinnings, which makes the upcoming revision to the ECMAScript standard crucial for the future of the Web. But in today's browser environment, no one vendor can impose an update path — which may set things up for a nasty conflict. A fight is being fought on blogs between Mozilla Chief Technology Officer (and creator of JavaScript) Brendan Eich, who wants to the new ECMAScript standard to be a radical upgrade, and Chris Wilson, architect of MS's IE team, who would rather keep JavaScript as is and put new functionality into a brand-new language."
Either way, we're gonna need a bigger bug list.
But they got along so nicely the last time Microsoft invited the Mozilla Developers over for a trip to the factory!
Oh, I hope this doesn't sour their play time together!
Let me guess, the new language the MS goon wants is named something like:
MSScript or IEScript or All Your Browsers are belong to Us Script
And I'd bet he wants to base it on the CLR too.
It seems they could both radically improve javascript and add in support for additional scripting languages. It would come at the price of increasing the size of the browsers, but that seems a small price to pay for the increased flexibility for developers.
agree on using and implementing the same HTML and CSS standards. What? Never in a million years? OK, there's your answer for fixing/replacing JavaScript.
We're all hypocrites. We all have hidden parts, it's the contrast between them that make us more a hypocrite than others
I know you're joking around, but if you really think Javascript is the problem, then just disable it. Much more effective than a popup blocker.
Thank God for evolution.
Opera's Haarvard suggests that it's about Silverlight, and Microsoft trying to close the web. Mozilla, Opera and others are pushing to extend open web technologies, but Microsoft is saying, wait, the web doesn't need to be extended at all! Well, except with Silverlight and WPF...
If they're serious about turning the browser into an application platform, there needs to be a multithreaded language with full DOM access, whether that is Javascript or something else. An application where the UI stalls the processing or the other way around is just not acceptable. Since Javascript multithreading has been rejected before, because it's supposedly too difficult for the typical script author, I suspect that Microsoft may have the right instinct here to go with a separate language for "pros", keeping Javascript simple for things like mouse rollovers and other eye candy.
By the time that a good chunk of all browsers actually support ECMA 4, it's going to be a "nice to have" feature that nobody's going to be too keen on.
The road forward, in true hacker fashion, is probably to write translators so that part of your PHP, Ruby, Perl, Java, or C# code magically runs on the client, treating ECMA 3 as a vague intermediate language.
ECMA 3 can be the x86 assembly language of teh intarweb. No CPU actually executes real x86 instructions anymore, they translate it into internal RISC/VLIW-ish operations. Very few programmers write much of any raw x86 instructions anymore.
Of course, this may or may not be handy for the other ECMAScript implementations like LiveScript.
Gentoo Sucks
Avoid the two big warring parties that are too big to get anything right, strip down your runtime and spend more time being less concerned with government or browsers. Opera is the Ron Paul of browsers in that it seems a lot of us use it online, but you never see mention of it in the "real world," and this article is part of that trend. Why?
technical writing / development
A whole other language? Give me a f**king break. They already tried that crap with c#.
What don't those retards understand about the word "standards"?
As a user, I really couldn't care less which way it goes.
Just don't break things that work now!
As a developer, I really don't care, either.
Just don't break things that work now!
Honestly, if we're going to have a new version that's significantly different and "updated," just fork: Keep the original code that works well as one version and then rewrite it as the basis for the new one. The first thing that comes to my mind is KDE4: It's a hell of an idea, but I think they'd best keep 3.5.* around until they're done with 4.0.
In short, give people a choice: Let me choose if I want to write for the stable venerable base or the new pretty whizbang version.
OK, maybe I'm missing the point here but AFAICS no-one's arguing against the new draft; instead, the argument about whether you accept the new syntax inside tags or not. One side says yes, other says we should keep that for older JS and put the new stuff inside tags or similar so we can tell ahead of time which one we're supposed to be dealing with and make sure we don't break existing web code.
I don't see anything about closing the web or stomping on the little guy or anything like that. Where's that coming from?
I would say start a new Language. If they *upgrade* JS how well will it support older browsers. I am not talking IE 5 or anything, but say mobile phone browsers etc? If developers start creating new web pages with the new version of JavaScript are people going to have to upgrade everything? I think it would be better to start a new language so developers can support both. Have a JavaScript page and a XYZNewLanguage page. Sort of like how they have a Flash and a non flash page. So gradually they can phase out JavaScript in replace of a new better language.
I smoked pot once. But I DID NOT inhale. Will you hire me?
Javascript is an ugly, inconsistent (in and of itself as a language let alone the browser differences) beast, and I don't know of too many people who enjoy dealing with it. If you are going to radically change the functionality, why not start from scratch? Leave "Active"xxx and "Java"xxx out of it.
Use something that, by nature, has flexible data types, expandability and clarity built into it. My vote would be for Python, but I'm sure both Mozilla and Microsoft would feel differently. In a perfect world, both sides would quit pretending that JavaScript should anything to do with Java and quit pretending that a HTML scripting language should be a portal to the OS.
I know it's somewhat indicative of a tinfoil hat, but that's basically what I and many others do, using NoScript.
If I trust the website enough to run javascript, then I add it to my whitelist. I don't see the need for javascript on most of the pages I go to, and would rather not have my computer running unnecessary code. Seems to my totally uneducated POV that it'd slow my computer down if I have 20 tabs each running javascript stuff, when only 2 of them ACTUALLY need it. My RAM is precious to me. =(
I've actually had dreams about all the major browsers coming to an agreement about consistent standards with HTML, CSS and Javascript. I have actually had dreams about designing an elaborate webpage layout for Firefox and then having it turn out perfect when it came time to load it in IE. But then I woke up and went about another busy day of using tables and NOT divs for webpage layouts...
*sigh*
/* No Comment */
The catch is that in order to take advantage of the new language features, developers will potentially have to do twice as much work. Already JavaScript's event model varies between browsers. In my ideal world there'd be a single language and all modern browsers would support it fully.
Wanting to create a new language instead of supporting an upgraded JavaScript shows one thing, how bad the IE codebase for JavaScript handling might be. This majorly smells like those situations where after a long update and extension period a code becomes so hard to handle that it's better to drop the whole thing and start a rewrite from scratch. Of course, if you argue for a new language, this probbably isn't such a big issue, since you'd need to write a new handler code for that anyway, and nobody will know what your reasons were.
Of course this is all just speculation. Wouldn't be the first time I'd be wrong, still, the smell is really strong.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
Well that's what GWT, OpenLazlo et al do already anyway. The thing is you can't get all the features of the underlying language that way. The key is to making the source language so much better than Javascript that my complaint sounds like saying "the problem with C++ is that you can't get all the features of assembly." (And I mean within the source language, not with things like asm blocks.)
Personally I like Javascript as a language and think it's a shame to see roadblocks to it's development happen because of the nature of the platform it usually runs on. I'd like to see something like GWT where the source language is Javascript instead of Java - that is a Javascript to Javascript compiler where you could add whatever local features you need and have the compiler throw away the fluff and stick in cross-browser compatible shims.
more of the same on Twitter.
Go ahead and try just random surfing with JS disabled, it is horrid. Half the sites out there now are mostly unusable with JS turned off. I keep trying, and keep having to go back and turn it back on. It just *sucks*. I wouldn't mind if the so called web "masters" would provide a more basic implementation of their sites as an option, but most don't. Hell, they can't even be assed enough to provide alt image tags. And those all flash sites, what a serious PITA. Now some sites offer options and it's great, want an example, how NASA runs their domain, they give you three options, full blinkenlight scripted flashing pulsating bloat down to basic text only. That's how it should be. Trying being on dialup with perhaps an older machine and surfing, or say for the folks with accessibility issues, without the option for low res non scripted content, it walls off half the net and it is getting worse daily, and that is leaving out all the ongoing horrid javascript exploits that keep occurring. Frankly, we won't ever have anything close to a more secure web as long as these "masters" insist on using active content. Even slashdot here doesn't quite "get it", turn off JS and you lose the ability to reply to the main thread. You can reply to replies, but not to the main article.
Huh, I hadn't realized that NoScript has a whitelist feature. That sounds like a good approach actually. Obviously I want Javascript working on a place like GMail, but I don't need accordian boxes everywhere, much less the insidious popups. Thanks!
Thank God for evolution.
The trouble is, Microsoft has a point. Original HTML, up to, say HTML 3.1, was limited but a reasonable design. Most of the attempts to extend past that point have been disappointing. CSS is a collection of attributes in search of an architecture. Page layout with "float" and "clear" is too limited and doesn't work well. (The "three column problem" is well known, and workarounds using layers or absolute positioning often result in text on top of other text.) Javascript is a mediocre language. (Could have been worse; see TCL.) That's the current mess.
Papering over the problem with a layer of "toolkits" just resulted in a proliferation of incompatible toolkit layers. That wasn't the solution.
But Microsoft will try to "fix" the problem with a closed, ambiguous system that requires frequent updates. That's what they do with everything else.
I don't see a good way out of this. Who can provide leadership? Adobe? They can't even make Dreamweaver work right any more.
Browser compatibility of those javascript(s) and jscript is a nightmare.
There is a spark in every single flame bait point.
Wilson wrote that the proposed new standard may result in complications and incompatibilities with existing Web sites and applications.
So, it works the same as always then? Everything seems normal with the new standard.
What I want to see is a giant red T-Rex fighting a massive four-colour Butterfly...with the T-Rex stomping the Butterfly, completely altering the future.
He who knows best knows how little he knows. - Thomas Jefferson
You wanted to be funny, but I do agree with you somewhat. Javascript adds unnecessary size to a lot of web pages. Why, for example, is it necessary to use javascript to cause the browser to follow a link? Or to refresh a page? I haven't seen many particularly novel web sites that actually justify the amount of javascript that is out there. I should be able to browse the web on a 9.6K connection without waiting 5 minutes for 100kb of javascript to load for less than 10kb of content.
Palm trees and 8
Lets call it C# or linq instead of java and xsl2 just so we can force our own standard upon everyone.
thank God the internet isn't a human right.
Microsoft are right IMHO, JavaScript is a horrible language in many ways which are well known. I would much rather see a more modern language designed from scratch designed for the future of the web rather than hack in new features to JavaScript beyond the scope it was originally designed for. We also need better development environments for JavaScript as debugging it can be a royal PITA, while Firefox + extensions help it isn't perfect, a proper debugger would be great :)
Javascript is intentionally designed to be less functional than any of the languages you've mentioned, and with good reason...A client side language with the sort of feature set that perl or ruby or python has would be death on a plate in the context of a modern web browser; you'd go to a webpage and it wouldn't just slip you a trojan--it'd reinstall your OS.
Client side languages need to be concerned purely with the cosmetics of the interface. Any single step beyond that opens up some extremely scary security concerns.
ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
As usual, Microsoft is attempting to wipe out an existing standard in favor of some new bastardized monster which it will control. Everyone will have to play catchup to Microsoft's ever-shifting language target, web developers will more than ever be stuck writing everything twice, once for IE and once for everything else. To further its monopoly, it will screw developers and consumers.
I mean, and what the fuck is wrong with updating a fucking language? Christ, they've been doing it with C for the better part of four decades, Fortran and Cobol for longer (adding OOP functionality and other radical new ideas). Microsoft has done it tons with its own Basic dialect, which barely resembles the old MS-BASIC found on Trash-80s and the like.
The world's burning. Moped Jesus spotted on I50. Details at 11.
I think Microsoft royally screwed up with outlook web access. They added XMLHttpRequest to the browser so outlook web access would work more like a desktop app. They built an application on a technology that did not require full access to the latest version of the win32 api and x86 assembly language and it was off to the races. Most of Google, Yahoo and indeed the entirety of Web 2.0 was built on this mistake. They are desperately trying to put the web back in the original box they intended it to be in which is people without access to the latest version of the full Win32 API, and an X86 processor will be denied access to all online content.
Javascript, like HTML, has grown to handle tasks it was never envisioned or intended to do when it was first created, and that has tremendous implications in the security space (cross-site scripting, cross-site request forgery, etc). Why not just scrap the HTML and Javascript specs and start over with something designed with security in mind from the get-go? Swapping Javascript for Python or Ruby only means that we get to write/deal with exploits with more syntactical sugar. Let's fix the darned problem once and for all.
I'd prefer to see scripts specify which language interpreter they're tested under, and the browser (or other executing object) retrieve an interpreter for it, caching them (and bundling popular ones if necessary). Why should old scripts stop working because they fixed something I never used in its interpreter, and left out the things I did use?
--
make install -not war
You want to give a website the ability to run client side perl?
Considering the amount of havok that is caused using javascript, a language that can't even actually write to a file, I can't even imagine the chaos that would be caused by perl, with all of it's methods for reading system states, and manipulating files and output devices.
ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
I find it incredibly annoying when links are done in javascript. When I follow a link, I usually middle click on it so it opens in a new tab. With javascript, if I try to open the link in a new tab all I get is a blank page. More bloat and less convenience... *insert offtopic slashdot snipe about how this could also describe windows vista*
Did you know that in Opera you can right click on a web page, select Edit Site Preferences and disable Javascript, or just disable the features the site abuses. No extension needed! And it runs perfectly fine on older machines since it doesn't leak memory like sieve like certain competing browsers. It's also free and cross platform just like them.
And it has fewer vulnerabilities -
http://news.softpedia.com/newsImage/Internet-Explorer-vs-Firefox-vs-Safari-vs-Opera-3.png
Plus since it has a tiny market share it's very unlikely anyone will bother to target it.
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
ITYM?
What's that short for?
*sigh* back to work...
What do you mean contribute something. They must be contributing something because they own the market share. Oh sorry do you mean to the open source i don't want to pay for anything community? The community where copy writes don't matter? Where paying an employee to think and then patenting your investment is wrong? Open source is like the rich teenage kid, always wants daddy to hand them everything. Open standards, free software blah blah blah
Do you really think it is a good idea to insert a whitespace meaningful scripting language (Python) into whitespace meaningless HTML? The level of indenting in HTML has no effect on the rendering, but change the indenting in Python and you've borked your script.
Seriously, Python would be the WORST language to use for scripting in HTML.
Javascript is actually pretty good, the only reason it has a bad name is from the different browser implementations and different DOM accessing methods. Fix that, and add some more convenience libraries / functions and you are set.
iso and/or w3c could actually DEMAND full operation of the ecma standard in applications, and hand down some sort of ecma certification
im sick of these companies arbitrary implementations!!
its time for interoperability and compatibility
the amount of time and money spent by developers/designers to handle these different browser implementations is ludicrous
these standards organizations should start doing their job and start making sure companies are implementing these specs properly
its this sort of stuff that has sabotaged vrml and others in the past.
by allowing anyone to interpret and implement their own interpretted version we, as developers of web applications, get left with the clean up
its time for these companies to start being more exact
and for the standards organizations to start making sure their standards are being implemented correctly
back in the day we didnt have no old school
Amen to that. It's makes my browsing exp much more enjoyable. Highly recommend it.
Morality, filters both ways.
My guess is Microsoft realise that compatibility with JavaScript, HTML and other open standards is questionable in most browsers and they absolutely do not want to make it any better. After all, if the open standards were adhered to (and improved such as with ES4), who would care about Silverlight or .NET? I think that's the bottom line here. ES4 makes many fundamental improvements to JavaScript. It's not hard to think that ES4 + HTML + a strong Ajax lib might render Silverlight irrelevant. And Microsoft sure can't let that happen. Better to talk up problems in js and subvert every effort to improve. Meanwhile they'll push Silverlight as the solution to all the problems they're partly responsible for. The sad part is that Flex and venerable Java are still better solutions than Silverlight but we know how the industry loves the next best thing even if there is no need to.
"Embrace and Extend" not working, Microsoft goes with "Repudiate and Close".
I expect a Dilbert strip about this any day now.
668: Neighbour of the Beast
But if MS creates a new language and it's beloved of "web developers", it won't take long to be implemented within Firefox, Opera and Safari. If not beloved and not supported, it'll die.
Deleted
JavaScript as it is now is a beautiful thing. Having Microsoft create something new is just their way of killing Javascript like they killed Java's future by adding their own features and confusing developers. Contrary to one post, Javascript does a lot more than just rendering ads. The best thing about Javascript is ease of programming. You don't have to be a professional programmer or web designer to create fun, useful stuff using JavaScript. There are plenty of functions in the public domain that novices can use to enhanced their web pages. What ever Microsoft creates will require a whole new object oriented, template based language which will be wonderful for anyone who has 6 months to learn it. The one thing needed for JavaScript needs is some security tweaks. It scares me anytime there's a new vulnerability found and researchers tell folks the easy solution is to disabled JavaScript. Bill
I'd like to see something like GWT where the source language is Javascript instead of Java - that is a Javascript to Javascript compiler where you could add whatever local features you need and have the compiler throw away the fluff and stick in cross-browser compatible shims.
You'll probably not get this wish any time soon. An essential design choice in GWT is that the source language uses static typing. This is what allows for the resulting "binary" (javascript) to be as small as possible (everything is monolithically compiled as one unit, and so the compiler can dead-strip any code that is provably never called -- and that "proof" hinges on static typing. Incidentally, the static typing is what makes fancy method/member completion in IDEs like Eclipse/Netbeans possible too. You'll not be seeing tools like that for JavaScript any time soon.
GWT is a brilliant design. I'm so happy someone thought to create it. I realize there are a couple of other things out there in a similar vein, but GWT is the only one that focused on building excellent web applications, rather than trying to make fat-client-apps-in-a-browser or X11 emulators.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
You can't say "it's better to do this in a new language" or "it's better to extend the existing language" in abstract.
The right question is "Is this feature more trouble for implementers and users than it's worth?" If yes, it probably goes in. Either way, it can go into the new language.
Microsoft may have perfectly ordinary maintainer's qualms here. They don't support the full set of standards they're supposed to already; in addition, they've got non-standard extensions already that may clash in various ways foreseen and unforeseen. And people, if not exactly ecstatic about the state of the product, at least can live with it.
If maintenance ain't going so well, and lots of people depend on the stuff that's already there, a developer naturally starts thinking about clean sheets, or fresh fields of snow, or whatever, so long as it isn't digging the hole he's in any deeper. Other people may or may not be in the same boat; in fact, that's really the question. The most commonly used implementation is an important data point, though; they'd be perfectly within their rights to say, "go ahead, but we're not on board."
It may be entirely a coincidence that this opens the door to all kinds of skullduggery. On the other hand, nothing really is stopping them from taking the IE ball and going home on the next revision of the standard, offering ActiveVisualWebScript or whatever to future standardization efforts as a fait accompli.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Incidentally, you may want to investigate JSNI -- GWT's JavaScript Native Interface. It allows you to write incantations in your Java code that can call out to other JavaScript libraries -- if there's something you'd like to be able to exploit within the scope of a GWT project.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
MS is right unless the new language is backwards compatible with the current javascript.
Old javascript needs to keep working.
I have looked at ECMAScript V4 and it is much better than V3. I see major changes, all for the better, The question is how backward compatibility is it? AND How much backward compatibility is needed. Like HTML, JavaScript is evolving, like it should. Is XHTML a different language than HTML 3.0?
My feeling is it should just go to the new version, get it in FireFox 3.0, start testing it there. see what happens.
shaun
Wow, that makes so much sense. I've never been able to explain why they would introduce something like XMLHttpRequest. I was unaware that its history was tied to outlook web access. I think you're right: they screwed up to our benefit, and now they're trying to put the genie back in the bottle. Thanks for that little history lesson!
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
At this point I don't like the thought of either approach. In the case of Microsoft's approach, adding a completely new scripting language, I can foresee another 10 years of attempts by them to lock web developers into using a Microsoft defined framework while at the same time making compliance within other browsers difficult. They will make sure that other browser development teams are always trying to hit a moving target and stretching their resources, while MS sits back with 10 times the developers and makes this new scripting language ever more integrated with whatever they are calling an operating system that year.
But I don't really like a "radical upgrade" approach as proposed by Mozilla either. While it is the lesser of two evils, I can foresee many many security issues, unless the radical upgrade is designed from the ground up with curtailing XSS vulnerabilities and the like in mind. Also, as we head blithely into a Web 2.0 world (never did find the RFC for "Web 2.0"), I see more and more processing dumped in the lap of the web client that has to render the web page. Where we used to begin to get annoyed at web pages that took more than a few seconds to load, somehow we are now okay with waiting 20-30 seconds for some Javascript heavy page to render in addition to the loading time. Not everyone out there writes good efficient Javascript code such as Google.
Let's fix what's broken with Javascript first. Let's make XSS attacks hellishly difficult to create and fix the sandbox that JS is always threatening to break out of. Sure, let's add an extension or two so that AJAX functionality has more inbuilt support, rather than being what it is now: a massive hack of XMLHttpRequest. Let's even work at simplifying handling of browser differences in the DOM and increase the efficiency of the interpreter for what is unfortunately a very clunky interpreted language.
But while we're doing this, let's not break it, okay? Not everyone out there is a typical Slashdotter. I know people who are very proud of having constructed their own websites in (awful non-compliant) HTML with a few Javascript bells and whistles too. If we give those people a "new and improved" scripting language that is much more difficult to write, then we take away something that made the web so exciting at its very start in the early 90s: the fact that anyone with just a small amount of technical knowledge could publish rich content to be viewed anywhere the Internet reached. I know, backwards compatibility can be a bitch at times.
Take this gem:
"As I've frequently spoken about publicly, compatibility with the current web ecosystem -- not 'breaking the Web' -- is something we take very seriously," Wilson wrote on the Internet Explorer team blog this week.
This from the company who had to be sued over breaking Java in the first place? This from the company whose latest OS, Vista, is incompatible with a vast number of wireless routers that have been running for years with XP? Wilson is fulla shit! The only compatibility Wilson is concerned with has to do with maintaining Microsoft's domination over the web ecosystem. He has and will have no problems breaking the Web if Microsoft is the only one left standing.
Now, that being said, there are only two things that Eich et al need to worry about concerning ECMAScript:
1. Don't break anything that works right now.
2. Don't break anything that works right now.
One of the reasons I no longer develop with Microsoft is because I got goddamn sick and tired of rewriting everything whenever Microsoft released a new version. That includes Word and Excel macros, web pages that were too IE specific, Visual C++ code, etc, etc. If ECMAScript causes problems with existing JavaScript that works right now, today, why then I will be looking for another tool. And it probably won't have much to do with Microsoft's solutions (fool me once, etc) OR JavaScript (fool me once, etc).
Do any of these guys know what the hell 'standard' means anymore?
I actually wrote (Not Vista, that's a sack of crap, no matter who wrote it), but I used the Not sign instead of the word, and for some reason it's gone from my post
Just browsing comments, a lot of people think Javascript is pretty horrible. I've developed a few internal web-based tools and always managed to produce nice looking Javascript that does a good job. Unless you try and use IE with it. I develop with Firefox as I can use Firebug to debug through the problems that crop up.
This last week I've been doing some javascript for a commercial product and it all fell apart in testing with IE. IE worked for two or three screens refreshed dynamically with Javascript - just enough for me to decide hey! cross-platform! But after that it went mental. I've had to change loads of stuff with heavy reference to a similar application that was tested and proven - the main problem being that there's no useful debugging tools I could find for IE and so much stuff just doesn't quite work.
Javascript is quite a nice language, it just has a poor implementation that you basically have to work around unless you're in the position to impose Firefox on the users.
does anybody else give a runny shit what Microsoft thinks? Do we have to ask their permission every time we release a new browser now?
Advance Javascript, open the web, put out new browsers, implement CSS3, and let wet-blanket Microsoft take its bat and ball and go home like it always does. They'll just punish their own users by keeping them in the Dark Ages. The rest of us will go on enjoying the rewards of technology innovation. As usual.
Yeah, I know, I'm an anonymous troll. But it's the frank truth.
Your criticisms seem to be aimed at HTML and CSS, and at attempts to make up for their failings with Javascript toolkits. What Mozilla is pushing here is significant enhancement to Javascript in order to remedy many of its failings while maintaining backward compatibility. Microsoft, on the other hand, is trying to limit changes to the language. According to Eich, Microsoft is criticizing the ES4 proposal without offering concrete alternatives. Instead, he says, they are developing their own language in secret.
I think Javascript's a pretty good language. Certainly it's not perfect - few languages are. PHP, C++ and Perl spring to mind as being particularly flawed, but they have been indispensable nonetheless. Javascript has a huge installed base of runtimes and many programmers are familiar with it (so there's lots of bad code, which may be why JS has such a bad rep). We know how conservative most developers are about learning new languages (especially ones that don't look like C or BASIC), so there would be a significant cost and risk to trying to switch horses from Javascript to something else. Browser compatibility is another matter altogether - but we know who is causing the trouble there.
Javascript is practical and flexible; the main problems I have encountered are weak support for OO and larger projects - problems the ES4 effort appears to be trying to address. Microsoft's argument is for making minimal changes in favor of some unknown future language. If they really are working on that language in secret, and are able to complete it while Javascript is mired in controversy, the outcome is unlikely to be good for the rest of us.
i'm curious, how silverlight interact with the DOM model, html elements, enable/disable inputs?
That's exactly it. Some people are fond of saying "You know, it was actually Microsoft who invented AJAX because they had XmlHttpRequest() first" but if Microsoft had known that they'd be enabling a general-purpose platform for application delivery -- one that doesn't require Win32, or even a full desktop computer at all -- they'd have found another way or not done it at all.
Tired of FB/Google censorship? Visit UNCENSORED!
Of course MS does not want to upgrade java script, it is a threat to their platform.
Got Code?
Fact is, noone can make a progress until they both sit down and agree. Bot Microsoft and Mozilla have a huge market share, so noone will make a page that doesn't work in either browser (exception might be that Silverlight thing or anything available as a plugin).
So yes, they should define a new language or a new versoin of a language, whatever, it's engine of course shouldn't mix with old implementation not to break everything. So in a way I favor MS's approach, unless there will be a HUGE effort to mantain separate Javascript engine after it goes into the maintenance mode (and especially when most web sites start using new standard).
The ECMAScript 4 is backward compatible. Brendan Eich:
my favorite is the jackass that replaces an input type="submit" with an input type="button" and adds a keydown event handler to submit the form when return is pressed and an onclick event handler to submit the form when the button is clicked.
Do you even lift?
These aren't the 'roids you're looking for.
Hey thats not true, my 386 16mhz router is still running true protected mode x86 instructions right on the hardware.
You seem to have some facts wrong, so your viewpoints are off.
MicroSoft has not released Silverlight for Linux, go look at the downloads page (/silverlight/downloads.aspx). They probably never will.
Miguel de Icaza of Mono/GNOME/Novell fame has led the effort to make a Linux implementation called MoonLight (http://www.mono-project.com/Moonlight). Supposedly, Microsoft will not sue for the infringement of their intellectual property, http://www.microsoft.com/interop/msnovellcollab/moonlight.mspx -- but that is a promise, not a license, so those are legally tenuous grounds to walk on. If they were serious, then they would grant a license. The problem is that it would have to be an open source license.
Do not delude yourself or others: Microsoft sees Linux as a threat to their OS. Microsoft uses Silverlight to control Internet user interfaces and fend off adoption of Adobe/Macromedia's Flash, Java applets, and the web standard of SVG, and even AJAX/HTML/CSS as well as all other UIs.
JavaScript has always operated in a sandbox: so I disagree about your notion of "developed in a trusting world" because any compromise is lethal, no matter what the point. Designing a sandbox around JavaScript is pragmatic security design -- much like Flash, Java applets, and much unlike ActiveX's origins. So if you've ignored the security patches of JavaScript (to keep it secure) and if you've never benefited from an AJAX web site or HTML form validation, then I can forgive your comment.
Of course, people who do not design for graceful degradation of any technology in a web page might have caused your comments, but the web benefits from dynamic applications in web pages: there's no installation necessary.
You can keep your HTML 1.0 web circa 1993 -- I remember it fondly, because nostalgia wins the truthiness argument. I'm happier with the possibilities of web applications based on open standards delivered by the Internet versus proprietary OS applications because it fosters competition and advancement in the market.
My opinions are my own, but you may share them!
I have to agree with microsoft here, some of the suggestions that were made for the ES4 standard were quite frankly mad. The current draft has removed some of the more ridiculous ideas like the adding in the E4X support which involved introducing new syntax for dealing with XML. I don't think that adding domain specific features like this to the core language makes sense at all in a language that is general purpose. The spec still seems to suggest trying to form some sort of hybrid of prototype and class based OO which I suspect will lead to both bad implementations and unmaintainable code. The ES4 group also seems to have decided that simply gluing on features from python is a good idea (for example list comprehensions), I like python but I'm not sure that this is the best approach to extending javascript.
I think that some of the work the WHAT WG group have done is actually much closer to what the ES4 group should be looking at - making a standard library that is richer. For example the HTML 5 draft has an API for SQL that could easily be used as the basis for a new standard object in JS.
Unless a real good reason can be shown for creating yet another programming or scripting language, then we should stick with what we have. If new functionality is needed, then why not add some new standardised object type.
I should note that I am always sceptical when Microsoft says we need a new scripting language, because they usually try to keep control of it and make it another reason to stay with Windows. This is not to say other companies have not tried to control the programming languages they have created, but the reason Microsoft's approach usually annoys me is because of their lack luster cross-platform support.
All this said and done, a few things could be improved in Javascript, including
- ability to have typed methods
- ability to have multiple methods with the same name, but different signature
One thing that needs to be noted in all this is that Javascript is a scripting language and not an excuse to shove the whole web site logic onto the client side.
Jumpstart the tartan drive.
Brendan is completely right. ..), SVG, new Javascript version will make for a new generation of browser.
This is all about open web.
Browser technology was somehow lagging behind what's used (ie flash...) and need to improve for the future web.
HTML5 (video, canvas
IE will probably try it the proprietary way.(at least at first)
Concerning Javascript, it will allow complex site to better work with modern browsers (Mozilla based, Opera, Safari/webkit) providing a better user experience and security, while still "just work" for IE via a compatibility layer...(until MS somehow catch up, which they have already done in the past)
This will be interesting to see how the situation evolve in the mid term when some of this technology starts to be available in more browsers (ie in one/two years)
Microsoft doesn't really believe in evolution when it comes to development environments and UIs, preferring radical departures from the past. I'm not surprised that instead of adding features to Javascript, they'd prefer a whole new language. It fits their model, since radical changes require radical reeducation, a service in which they make money. This is why they didn't add the features ASP needed but instead blew it away with .NET. This is why Vista fucks with things that worked fine in XP - just so they could cause feature churn and sell more instruction. Contrast this to open source environments, which change gradually and incrementally. If you knew Unix in 1978, chances are you'll do okay on Linux's command line. If you knew PHP in 1998, you also know it today.
The flag just makes more sense than the constitution. - Judas Gutenberg
I would be rather less paranoid than you. Microsoft is rapidly moving to a service and web model. Not very happily, but moving. When there is a reasonable user base in Linux and a business model to make money, they will follow the users. They don't want to leave the customer with no choice but Google and Adobe, neither of whom are any more magnamious that Microsoft.
The market is focused upon neat features and gee-whiz issues. Doing this with the OS and applications is what both made Microsoft sucessful and dug them into the security hole they are trying to work their way out of. I am an old fart and remember one of the old security dictums - Thou shall not mix data and executables. Scripting does so. It makes lots of neat features possible, but it also significantly reduces trust. For certain applications, such as banking, or high value financial transactions, trust is far more important to me than features. For others, the neatness may be more important.
I am actually buying a new computer so that the computer I use for my banking can be hardened and restricted and will not run any of my children's games or web snap-ins. It will be running Vista with all users running as normal users, sidebar disabled, and IE7 will be running in enhanced security mode.
I allow my kids machines to run flash and javascript because there is nothing valuable on them and neither my wife or I use them.
XMLHttpRequest comes from the golden age of the browser wars when the WWW was the hot new thing which was set to change the industry, and the head of this new company called Netscape was claiming that the WWW would "reduce Windows to an unimportant collection of slightly buggy device drivers". The web was new and out of Microsoft's control. They had no choice but to tackle it head on and gain control of the browser market any way possible, even by bundling it Windows 98, which got them into antitrust trouble with the US government. It was Netscape vs Microsoft in a features arms race until Microsoft finally gained control and market share. Netscape then opted to more or less leave the browser war. With the browser war won, the stream of features stopped and after IE 6 the stream of new innovative browsers stopped to. This effectively froze the functionality of the web browser as a platform for years to come, stopping it from encroaching on any more desktop territory.
It is only relatively recently with IE 7 that the world learnt that Microsoft's Internet Explorer team even existed still. Despite the popularity of Web 2.0 style graphic effects and GUIs, Microsoft still doesn't dare extend their browser and the web platform with more functionality. Any new functionality must come in a standard that Microsoft can completely control, Silverlight that is. It is kind of ironic that the features that Microsoft brought out to try to win the first browser war are also powering Web 2.0 sites all these years later. Microsoft also gave us "design mode", WYSIWYG style editting functionality in a browser too, by the way.
This concludes the history lesson for today.
(I didn't know about Outlook web access. Very interesting!)
--
Simon
Absolutely, they shoot themselves with that XMLHttpRequest...
They loose every inch of web business sector. No Browser, No HTTP Server, No Search Engine, No multimedia format (flash won the war).
And now they try to f*ck up the current axax movement with that silverlight.
No thanks...
[My english is better than most other people's Turkish, so please point out mistakes politely. Thank you.]
This is a bit off the topic, but communism actually can work reasonably well when it's practiced on a small scale by willing participants who all know one another directly. It tends to fall apart when strangers from across wide areas with different values, resources, and interests are forced into it. It also tends to fall apart when combined with idealized notions the participants don't really buy into, like mutually interchangeable sexual partners, no labor-saving devices, or unusual cult-like religions.
Small self-sufficient communes function about as well as large extended families do. You piss some people off, and they get over it. They piss you off, and you get over it. Some people leave and stop talking to the group. The Amish live in a nearly communist situation, and they're just fine. They have buy-in from their members.
There's a commune not far from where I live of non-Amish Protestant Christians who interact as capitalists with the outside but share the wealth internally. They have a dairy, a restaurant, a few stores, and a few other things supporting their church, school, and faith-centered drug rehab center. There's a communal foster home for troubled teens near here, too. They have a school, several homes, farmland, livestock, and accept donations. The foster parents take care of their own kids and the foster kids, and the money and farm work is all shared among the households. It works, because that's the way they all want it and the struggles are shared among them.
The Soviet Union, for example, tried to combine by force several nations of people with their own languages, cultures, natural resource differences, religions, and industries. A restaurant manager in Minsk didn't see the struggles of a construction worker in Vladivostok, and the two likely didn't agree to be communist/socialist in the first place. It's a very different type of thing. The scale's different. The agreement is different or nonexistent. The common bonds outside the economics are thinner. It's just not the sort of thing that's going to stretch to that situation. Anything you're forcing millions of people to do is not likely to gain much appreciation for the perpetrators or their ideals.
Capitalism, though, is a very naturalistic market type. You want something, and you need to do something to get it. You give something up in order to get it, or you decide it's not worth the trouble. There's no enlightened common interest necessary. In fact, enlightened self-interest isn't always a big hit either. Capitalism can largely function on pure greed, even though helping yourself through helping others is more sustainable. That is the reason capitalism is so successful -- it's simple, and it doesn't overestimate the goodwill of man for his fellows. The funny thing is, with computer modeling and research into complexity and chaos theory, there's just now more to learn about how and why capitalism works than ever. It's like the KISS principal, genetic algorithms, neural nets, network effects, and feedback loops all applied to moving goods and services around in the real world. We're just starting to understand the value of those methods in software, but the markets have been doing it for centuries with decent results.
Now, if we really want to help people in poor countries, we should seriously look into getting education, skills, and capital investment up. That way they can participate in capitalism. Unfortunately, capitalists in relatively peaceful and secure areas don't invest much in areas where their assets will just be burned, seized by warlords, or looted. Getting those areas that lack investment stable is a prerequisite for getting investment into them, but getting investment into them is also a prerequisite for getting them prosperous and therefore stable. Gradual investment in progressively more market-centered areas is probably the best route. Start with water, food and medicine. Then do housing, utilities, and schools. Then transportation, security, and local self-sufficiency. Then big business inve
was that it used the same operator for concatenation and addition. That's just all kinds of stupid for a loosely typed language.
I would like to use MS' idea, but have somebody, anybody, else implement it. A new language is okay, as long as Microsoft stays out of the process of making it, since they have extreme interest in creating vendor lock-in.
The problem is once something becomes (even de-facto) standard on the web, it will never die.
It doesn't matter if the standard is crappy or not. Look at all leftovers from browser wars (DOM0, quirky box-model, framesets, all now-deprecated HTML elements) -- browsers still must have first-class support for all that garbage.
Even if you add a brand new, super-cool language with excellent security model, Javascript won't die. Revolutions don't work on the web (see how far application/xhtml+xml has got and how well XHTML2 is doing). Browsers will just end up with new things to implement, new incompatibilities, more code to maintain and larger attack surface.
They want people to use windows and not the web for applications. Google apps and java scare ms to death. People might actually ... gasp .. not have to use windows.
.Net is a way to fix this by having everything done on the server end.
IE stopped innovating the second netscape became irrelevant with the exceptions of security fixes and anti phishing schemes with IE 7. Now that the web is no longer a threat the focus is back on the proprietary windows desktop but this obnoxious firefox thing happened. (In microsoft's eyes)
Also javascript is viewing as a page source so even if ms came out with a proprietary api it would not take long before it could be reverse engineered. The push to
http://saveie6.com/
then i completely agree
Trolls here aren't supposed to make witty comments but I salute you none the less.
OK, I fully admit the history of javascript is something I'm not extremely knowledgeable about. I also am aware people are using javascript outside of the browser these days. However, since to date, javascript is primarily a browser based language, why don't they use some of the fundamentals that the browsers use? Simply, make the new version (and future versions) declare their version to the browser, and the browser can then handle how to run. Microsoft can treat it like a new language, Mozilla can handle it they way they want to, and people running older browsers will be oblivious to it all (as long as however it identifies itself doesn't break the previous version). So the new version would have something like //ECMAScriptv4.00
at the top of every line of javascript that needs the new interpreter. True, we spend more bandwidth, but in todays age of gzip compression everywhere, is it really going to matter?
Firstly, at the time there were a huge range of "safe-for-scripting" ActiveX objects that could be created in IE. This was Microsoft's way of clutching every corporate shop that dared to use one in a death grip, instantly destroying their potential to have the versatility that a web application would normally bring. XmlHttp, found in the MSXML library, was just another safe-for-scripting object. At the time the web curious were already exploring a number of ways to do asynchronous calls, most commonly being hidden IFRAME updates, but there were a myriad of other options, including plenty of third-party XmlHttp type components, and even some Java Applet techniques for doing this.
This was a hugely growing need, and while Netscape was beaten to the ground and slowly regrouping Microsoft seemed to lead by default.
The point, I suppose, is that the invention of "AJAX" was absolutely, positively inevitable. Microsoft's influence in those early days is entirely the result of its monopoly, not its technical leadership.
I have to say, I agree with Microsoft on this one. No doubt they have some sinister motive that I'm missing, but on the technical point I'd rather not see major changes to javascript. Radical upgrades to well-used languages are rarely an improvement as they have a habit of breaking so much existing code (you know the languages I'm on about...) Far better, in my opinion, to let javascript keep doing what it does and put all the new features into a separate language. It needn't add (runtime) bloat to browsers if the interpreters are modular, loaded as needed; and these days who cares about a few extra megabytes of hard disk bloat?
"'I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'"
- JRR Tolkien.
The purpose of the HTTP protocol on the WWW is to DISPLAY pages composed of images and text.
It never had to be any more complex than that (and wasn't until Javascript reared its ugly head).
Now, many web sites are directly or indirectly seeking to take control of your machine (google-analytics comes to mind) by downloading programs onto your computer and running them through your web browser.
Its *My computer*. Its *My memory*. Its *My CPU time*.
Thou shalt not use it (or steal it) without my previous permission [1].
And that is why my primary Web browser is Firefox with NoScript enabled for all sites except a few, such as gmail, where javascript is actually required.
It is for these reasons that I view scripting languages attached to web pages as EVIL. Only when all scripting applications say "may I run on your machine (and this is what I will do)" will one have an acceptable paradigm.
1. I would love to see a class action suit by people running unused CPU cycle programs, e.g. Folding@Home, SETI@Home (which is useless), and the many other @Home derivatives against web sites, perhaps even Google, for downloading "programs" which will consume memory and CPU time *without* my permission.
It might make enterprise development easier if you're forcing users to have a certain browser platform available, but it will make extranet web development an even bigger nightmare.
It's bad enough as it is already:
if(browserSupportsPlatformA)
doSomethingThatBrowserSupports();
else if(broswerSupportsPlatformB)
doTheSameThingButInADifferentWay();
else
doSomeFallbackCodeSoSiteIsntTotallyUnusable();
And then you'd have to somehow write fallback code in a different scripting language in case one scripting language is completely unsupported.
It's bad enough as it is. And you know exactly what will happen: web sites will be built for only two browsers (maybe three if you're extra lucky), so you have no choice but to have those browsers installed, even if you hate them, while the browsers (such as Opera) that actually *follow the correct standards* are left out because they don't render websites as expected because those websites are built to suit Microsoft's and Mozilla's deviant specifications.
The whole browser architecture we have is absurd. Web development is almost like having to write XML files that are deserializable in two or three different XML schemas. The JavaScript DOM is at least common enough so that you can easily go to the W3C website and quickly see what you can do in all three or four major browsers... The last thing we need is less compatibility.
I learned to program with VB, and still think its an acceptable language, and I agree with you 100%. Newlines mark the end of statements unless you add a '_', you Dim As, or just Dim (strongly typed or not, wtf?), and thats all I really can remember.
As someone who has written a 1000+ line AJAX app in the last 6 months, I can tell you that cross-browser incompatibilies already make programming javascript a bitch. I can't remember too many specifics, but I know that mozilla javascript implements arrays slightly different than IE, and it was a pain in the arse to CONSTANTLY patch around DOM issues. The breakdown of my time was probably spent 20% design, 20% code, 60% patching for IE.
For fairly well-defined problems. GSM isn't a great cell phone standard, but it has allowed European cell phone manufacturers to take over the global marketplace while American cell phone companies with splintered standards have had to play catch up for more than a decade now.
C++ is an example of horrible design by committee, with ever shifting basic functionality and over complexity. But the updates to C (by committee) have been very reasonable and useful. Germany's design by committee of power plugs has been great for Europe, and has even taken over Britain's mishmash of plugs that has been a plague and a bane to the folks of the island. The metric system has worked out pretty well for everyone.
When the problem is old and simple, committees do a great job of explicitly laying out the pre-existing consensus. When the problem is new and interesting, with no clear solution, committees produce a self-conflicting hodge-podge solution that is always behind the times.
It's not necessarily post-facto, but just not innovative. They're not the same thing. I'm not sure how much "innovation" is really needed for the next generation of js. I'd hope that the problems and their technical solutions are pretty clear by now, and just implementation and standardization are needed. If that's the case, design-by-committee is probably the best thing that could happen.
Sounds like a lot of people are addressing this from the anti-MS, pro-Mozilla Foundation standpoint.
The next version of ECMA Script will break just about every piece of legacy javascript. That's a decade of history and development in the crapper. People have just begun to release real and functional javascript libraries that open up a whole world of opportunities and going with a new standard not only destroys those libraries but it puts a serious hamper on the evolution of the web in general.
Even if we throw in a tag to make legacy javascript viable, every legacy page out there would have to be updated - meaning all of those abandoned or hardly maintained web sites with tons of useful information are going to be broken - so instead we'll have to wade through 200 word ad filled pages looking for the information we need.
Re-implementing javascript breaks the web as we know it. As such, it is a bad idea. If you want to extend the experience, implement the new language as a new alternative language - like VBScript.
How would you all be reacting if there was talk about re-implementing C or heaven forbid Ruby.
It's pretty clear why Microsoft wants a new language: they think they can get away with designing it and imposing it on the world, after patenting it and making one of their bogus covenants.
ECMAScript 4 is a nice language, and a good evolutionary development from the current version of JavaScript. And if Microsoft wishes to, they can view ECMAScript 4 as a "new language" too; we can have bold old and new JavaScript in the same browser.
I have to agree with MS on this one. A radical update to Javacript has the potential to break more than I would care to think about. Major web applications can take months to simply test and years to design and implement! Major platform changes of this type are an unacceptable risk in the enterprise setting. Now, I fully agree that JScript is a horrible and broken implementation of the ECMAScript standard, but let's face it: JScript's own problems aside, Javascript as a language is not acceptable given what people are trying to do with the web. It was meant to provide limited dynamic capabilities to mostly static information delivery. That was yesterday, now let's take a serious look at today. I'm sorry if I'm offending any scripting fanboys, but weak typing, the lack of threading, the lack on non-prototypical OO features, the lack of a serious class library (including real data scructures), etc. all get in the way of delivering truly powerful client/server apps.
As I view it, casual web browsing and using a large-scale web application are fundamentally two different things, and demand two different approaches to development. Let ECMAScript/JScript/etc. stick around; it's sufficient for small-scale or casual needs. But if we're really talking about delivering large-scale, complex applications over the web, Javascript costs countless hours of productivity, and does limit the potential for what web applications might be able to deliver to users.
I'm completely in favor of creating a new language to meet the needs of tomorrow's web applications, provided that Microsoft and open source vendors work together in an open and honest fashion. This will only become a reality if all parties cooperate and make it a true standard. But on principle, yeah, Microsoft has the right idea on this one. (In my dream world, I would love to be able to deliver bytecode via HTTP, execute it in a tightly controlled sandbox, but still use the DOM as the UI delivery mechanism, but somehow I doubt that'll happen!!)
-James
I'm having nightmares of the reincarnation of C++ into javascript. Oh the horror!
Actually no, I use it to. I frikking hate JS as much as the next person.
I'm just sick to death of seeing it posted here and it does have the flaws I mentioned.
I am just trolling though, sorry.
Microsoft's dream since 10 years is to rent web applications, since it will allow them to earn more and more money.
It's impossible to program Office with the current Javascript language.
So, Microsoft is trying to push Silverlight (since it's its own baby based on C#).
The battle that will result may see Microsoft's largest defeat.
First, this is a political battle, and every opponent has to make concessions, and M$ are not good at that.
Secondly, M$ is no more in a position to dictate how the Web should work, since the users have now a large choice of Web browsers (Safari and Firefox in particular). They still behave as if the Web was IE-centric.
Thirdly, Microsoft imposed his OS by crushing its competitors one by one. Due to the progress of Apple and GoogleOS, it's not any more possible.
Frankly, I don't see how Microsoft could win this battle.
If they count on their own forces, they will fail, like they failed with Vista.
If they expect a large developers support, they are wrong, since nobody (I mean nobody important) is supporting Silverlight.
If they count on a miracle, I think they had their share.
Once a technology standard will be decided, everything will depend on large Web companies, like Google.
I'd say backwards compatibility -- it makes it easier for people to run their old DOS and Windows software.
The CB App. What's your 20?
My understanding is that Silverlight replaces the DOM. It is xml markup at its core. I'm pretty sure it is like flash, embedded as an object and run by a plugin.
Mozilla wants to extend javascript with breaking changes, but they want to stick with 'language="javascript"' which means your code will break in old updated browsers. Why?
WTF is wrong with adding 'language="ECMAScript4"' or some such? Browsers are going to have to be updated to use the new extensions, why not just make it explicit and call it what it is, a new language?
Jorgie
Vista? For your kids? What a horrible idea. What's wrong with Windows XP SP2? It's proven and stable. Not so with Vista.
And why IE7? I guess you don't care about the web being open and free?
And the computer may not have sensitive data, but I'm sure you don't want the Internet to gain another node in a botnet or to be a spam delivery node.
"At best, we have a fundamental conflict of visions and technical values between the majority and the minority,"
That's great since i am part of the minority which uses undocumented routines from the JS open standard. And perhaps, it is better a barely documented Mozilla's open standard, than a totally undocumented but compatible, Microsoft's closed standard.
What bothers me is that they worry about making compatible ECMAscript 3 & 4, and there are totally undocumented, uncompatable functions betwen diferent versions of the same standard.
Now i see it. Programming language's history, is one of my strongest know-how.
?
IE 7 runs well and is a safe default for them to work from, particularily since they are running as limited users and don't have install rights. I like Firefox with NoScript, but I have enough knowledge to have some idea of what to enable and what to disable.
It can host a variety of scripting languages such as Python, Ruby and, surprise, even JavaScript, as well as a couple home-grown languages such as Groovy and the purpose built JavaFX Script
Now before you shriek in horror at the thought of a JVM running in a web browser, Sun have made a renewed commitment to the browser via the soon to be released Consumer JRE, which aims to relieve some of the bloat and provide an improved experience.
Still no official 64 bit browser plugin but the IcedTea folks are working on a substitute.
That's not what I was talking about, though it does have its share of security holes.
What I mean is that you're endorsing M$' proprietary 'standards'. If there's one browser that can be credited as holding back the web because of its wrong and vastly incomplete implementation of web standards, it's IE.
Webmasters know what browser you use to visit their site, and it's because most of the world still uses IE that they won't get their act together and correct their shitty code (which only renders correctly on lax IE), and/or remove their stupid browser detection scripts.
Please support open web standards and use any browser but IE.
The worst threat for the web is a byte code based VM.
That would open the door to proprietary rich web apps. Mozilla and standards must fight to block any project that would favor byte code VM adoption and keep the web "source based".
Really what is the difference? A radical enough change to Javascript meaning it is in effect no longer Javascript it a new language right?
So unless they are wanting to jump away from the whole family of language that Javascript sits in the totally new language will have lots in common, probably as much as a radical revision?
I can't believe that nobody's pointed this out.
.NET and the CLR.
.NET runtime in the browser. Probably a sandboxed one that can only access the DOM and browser. But you still get all the .NET benefits, like multithreading and bytecode compilation. And all the .NET drawbacks, like you can't implement it outside of IE because it's patented from here to hell and back.
Microsoft wants a new language for client-side scripts. Just-so-coincidentally, Microsoft has this new "language" ready to go for us. It's called
C#, VB.NET, J#. Whatever. Microsoft wants a
See Silverlight? That's the tip of the iceberg.
Open your eyes, people. This is Microsoft.
Have you ever, honestly, been to a website that freezes Firefox?
Yes, I have. There's a dating/forums site called plentyoffish that regularly freezes Firefox for me (at least as of 2.0.0.8). Sometimes the browser recovers quickly, sometimes it recovers slowly, sometimes I give up waiting and kill it.
It's official. Most of you are morons.
For the love of god people, stop talking about javscript and java in the same sentence! They're not the same, and not related. http://en.wikipedia.org/wiki/Javascript#History_and_naming
"During My Service In The United States Congress, I Took The Initiative In Creating The Internet." -Al Gore
Sheesh where do these little trolls come from? When Microsoft actually innovates and does something revolutionary and good for the entire internet, it was an unwanted mistake and they want to undo it? You need some help people. Seriously.
They're working on it.
The crucial factor is having faith in the technology and convincing backend Java EE experts to endorse a rich client interface over markup based solutions such as struts, JSF or whatever 'framework of the month' they read about on TheServerSide.
<script type="application/ecmascript; version=4">
No need to change existing pages.There are many implementations of C Oh look, Ruby as well.
Sun has new language for client-side scripts.. Just-so-coincidentally, Sun has had a variation of this new "language" available in your browser for a decade! It's called applets and the JRE.
Python, Ruby, JavaScript, Groovy. Whatever. Sun has a Java runtime in the browser, a sandboxed one that can only access the DOM and browser. But you still get all the Java benefits, like multithreading and bytecode compilation. And all the Java benefits, like it's implemented for IE AND Firefox on Mac, Windows, Linux and Solaris. Further, it is available under the GPL, so you can port it to any other platform.
See this web page for details of Sun's leaner faster in-browser JVM.
Eich is acting the ass. Not just because he attacks Wilson personally and Microsoft generally without addressing Wilson's concerns, but because he's ignoring (or ignorant of) engineering rule #2: Make Before Break.
From what I've seen of it, ES4 is pretty good. But Wilson is right: It's too big a departure and should be introduced as a new language (C/C++ anyone?). That assures we don't break a lot of web sites while ES4 stabilizes. The various Javascript instances, with no new features—only bug fixes and performance enhancements—will become rock-solid for those who don't need ES4 capability. Years from now, when all the backward compatibility bugs have been excised from ES4, we can retire Javascript. But not a moment sooner.
I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
Open source and open standards doesn't mean you can't charge for your software, it means you can't milk your customers for money long past your product's usefulness.
From what I've read, XMLHttpRequest was originally just a COM object implementing HTTP that the MS XML library team whipped up as part of building that library. (Hence the "XML" in the name; everything in that library begins with XML.) It got added to the browser because it was built by Microsoft. Any class library is exposed to the web in MSIE if it is flagged as safe for the web, and the mindset is to expose everything (and set the kill bit later when people start exploiting it).
I haven't seen anything substantial that says it was created for OWA. Not saying it wasn't, just that I haven't seen it.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
A single language implementation can't just be plugged into both browsers?
I think Javascript is fine for any application reasonable to do in a web browser. Rather than worry to much about features I'd rather they work on performance. Javascript performance just isn't good enough for major UI or multimedia work. In some cases threading might help with this but I don't know that it's a major factor.
The only feature I think absolutely needs to be added to Javascript is built-in behaviors. Otherwise, If they're going to add features they should add some functionality for working with multimedia, SVG, and possibly 3D more easily - to fill the hole between current Javascript and Flash.
Anyway, you really shouldn't be using Javascript for mouse rollovers and eye candy unless you have very specific needs that can't be done by CSS.
As a developer that works on many websites I'll side with the creator of Javascript and stick to whatever standard he sets forth. If I have to let Microsoft do without features because they refuse to keep up then I don't mind doing so. I always try to design stuff so that if scripting doesn't work everything will still be usable anyway so it won't really harm my users to much. I already have to provide work arounds to keep IE6 and IE7 working reasonable.
If we're going to replace Javascript then I vote for some variant of Python with built-in DOM support and strong networking features.
Not quite part of the Javascript spec but I'd also like to see a tweak to (X)HTML so that authors can declare that script written outside the HEAD section to be ignored. This would make avoiding XSS issues so much easier and wouldn't be any issue to any developer using behaviors or similar methods to attach their JS as needed. I'd also like to see browsers allow users to select an option to disallow JS outside of the HEAD element.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
The man responsible for IE is in no position to lecture anyone about compatibility and security. Wilson telling the inventor of javascript to shut up and do as M$ says reminds me of this:
We can see where that effort went. Embrace, Extend, Extinguish.
Albatross is a fine name for a blog run by anyone at M$. Everyone who works there has made a deal with the devil and the entire company history hung around their necks. If Wilson wants credit for, "enough intelligence to make my own lies up," he can have it. If he wonders why the world might be hostile, instead of the hotbed of helpful, fuckable pawns his company likes, we can always remind him of what his group did to Netscape.
In 1997, when I was on the ECMAScript standards committee, meetings mostly consisted of Netscape and MS reps shouting at each other while the rest of us twiddled our thumbs.
My only contribution was a scathing indictment of the idea (I think from MS, but I'm biased) of putting a hard memory limit INTO THE LANGUAGE. Guhh.
Is this why my Gmail has been sucking as of late?
....
I've been using it for over 2 years on Firefox and it's been awesome
All of a sudden its slow as hell to just open the inbox page - it just began to suck big time - real laggggy for everything
I just got upgraded to Firefox 2.0.0.9 and it seems better now
---- "Logoff! That cookie shit makes me nervous!" - A. Soprano
Once we can get this one basic feature of JS 2.0 working on all modern browsers, then we're ready to talk about things like ES4.
As for other browsers, I use Opera and Firefox as well as IE. I use Opera as a static HTTP renderer if I am doing something relatively dangerous -- all media off, including images, all scripting off, cookies and cache cleared on exit, etc. I use Firefox with NoScript to handle things like ordering supplies from sites with which I do not want to associate full trust. If I fully trust a site, I use IE trusted zone. No other browser that I am aware of supports the zones model, let alone a finer-grained trust model. Thus, I use the combination of IE with Zones, Firefox with partial trust, and Opera with no trust to control my risk exposure appropriately.
Go read some Douglas Crockford.
Javascript is about as powerful as Lisp or Ruby, and certainly no less powerful than Python.
If it's the syntax that's bugging you, write a preprocessor and shut up.
Don't thank God, thank a doctor!
First prove that the whitespace is a bad idea. You're going to indent like that anyway, isn't it simpler just to...
No, nevermind.
First, prove that this flamewar about whitespace has anything at all to do with the requirements that it be a script, that it be client-side, or that it be in a web browser. For that reason alone, this should be -1 Offtopic.
I can think of a few valid reasons why Python wouldn't work well for this, at least without some serious hacking. Whitespace isn't one of them.
(And if it was, like I keep telling people -- write a preprocessor, if syntax is all that keeps you from liking a language.)
Don't thank God, thank a doctor!
Both can be wrapped in libraries. And this has been done.
Trust me on this -- I do HDi (HD-DVD) development. There are fairly big differences between Javascript on HDi and Javascript in a Web browser -- but there are actually a lot of library functions we can port over from the Web, and very little we have to do from one HDi implementation to another. You mentioned Microsoft's Javascript implementation -- actually, that's JScript, so called because they are legally not allowed to call it JavaScript -- but JScript powers some HDi implementations, and completely different scripting engines power others.
I'd say, yes, screw two languages -- but not for the reasons you said. Screw two languages because porting between entirely different languages -- for instance, Perl to Ruby -- can be MUCH more work than porting between Javascript and ECMAScript, or between ECMAScript and HDi, or...
Don't thank God, thank a doctor!
The downside of Silverlight is the possibility of patent issues. If that ever goes away, and particularly, if Silverlight ever gets vetted by a standard body, it looks good.
Here's why:
You want the old Javascript? Fine.
You want the new, Mozilla-sponsored, v4 or whatever of ECMAScript? Fine.
You want Python, Ruby, or Java? Go right ahead.
A bytecode engine in the browser is both long overdue, and this is why. This way, no one gets to bitch about the language in the browser (though I like Javascript just fine for most purposes), as you can run just about any language there.
(Ok, Java did a bytecode engine in the browser, but Java applets sucked. I think Silverlight has the potential to suck a lot less than Java did.)
Don't thank God, thank a doctor!
What is really needed is a new open rich GUI standard that is not necessarily tied to JavaScript or ANY language. Why tie a GUI engine to a particular language? Both proprietary and open-source keep doing this more or less. JavaScript is not the real issue. (But since it is a common web standard, it shouldn't be ignored.)
What's really needed is an open standard that allows rich desktop-like GUI's to be created for a web browser or web-browser-like tool. I'm tired of the limitations and goofiness of DHTML + DOM. They may be fine for e-brochures, but suck for business-oriented GUIs and are too tied to the get/post HTML model to clean up. It's like being stuck with 1984 interfaces. Desktop GUI's roughly reached a pinnacle in 1994, but the web never got there.
Table-ized A.I.
Even without eval, Javascript alone is sufficient to do this in, provided you start with something that's sufficiently like Javascript.
Maybe you can't change syntax, but with ECMAScript 3 today, you absolutely can muck about with just about anything that's browser-specific, be it in the API itself or in your own (already written) functions or classes -- that's what's cool about a dynamic, prototype-based language -- until you basically have a cross-platform library with all the platform-specific crud in there, and your actual Javascript, while it's executed "natively", is also fairly lightweight, platform-agnostic stuff.
Don't thank God, thank a doctor!
Why?
Don't thank God, thank a doctor!
the point is that HTML already uses indenting to some degree, and has rules that make sequential whitespace unimportant in most cases combined with stylistic constraints like not line breaking inside attributes. embedding a langauge where whitespace is significant inside a markup where whitespace is insignificant is retarded. what happens when you want to invoke python inline in an onclick for example, and need to start a new line? you cant use the HTML's level of indenting because python needs its own, so what do you do? break back to column 1? in a multi-line quoted string? what about when a script tag starts at a certain level of indentation?
basically you're a moron.
As I understand it, the basic way this will work is, if there's no version number requested by the script, some heuristic will be used, in such a way that pretty much any script will end up being run the old way.
The new way would be to specify a version. For example:
<script version="4.0">
This both solves your problem, and makes the Microsoft argument irrelevant. Ok, yes, IE will have to throw resources at it -- boo frickin' hoo, you're Microsoft. Don't you have Developers? Developers? Developers? Developers?
But for the existing Web, everything will continue to work on new browsers. All we'll see is that some new websites will only work on the new browsers, and not on the existing ones. Which is fine, really, as most people are getting auto-updated to the latest browser as a matter of course.
Don't thank God, thank a doctor!
Wow. Sorry about that. Mod me down, hard, please.
Looks like the way it works is, a few things that were obviously broken in Javascript are finally getting fixed. This will break code that relies on the old (broken) behavior, but it should be possible to write code that works on both. (If this is what I think it is, it can be solved with a search and replace.)
And it looks like Microsoft is arguing for what I suggested, while Mozilla (and others) are arguing that any <script> tag should run the new version.
As for "just don't break anything", I think it's worth it, really. Frankly, again, assuming the features are what I think they are (and I don't seem to be batting 100% right now), it's kind of like all that code for x86 which assumed that certain things were 32 bits, or that you could always use an int as a pointer, etc. Notice, also, how there's tons of code that just compiles and runs fine on x86_64, with zero effort on the part of the developer, and really no thought put into supporting it -- they simply used best practices.
Don't thank God, thank a doctor!
And that is why I really, really want the patent issue to go away. It really depends how Microsoft uses those patents.
If they are actually about making a new open standard, and not locking Linux out once and for all, they may eventually give up control of those patents.
In the meantime... Silverlight, if I understand it, can actually do hardware-accelerated vector graphics and animations, controlled from "script". And the "script" is a bytecode language, thus you can have closed code if you want it, or open code in any language that can compile to it, not just Javascript. And, hell, Silverlight can probably do threading, too! (Something even ES4 doesn't seem likely to fix.)
But this just brings to mind... What we really need is PNG.
See, if you remember, back in the day, there was GIF and JPEG. The problem was, GIF was patent-encumbered, and thus, GNU, in particular, refused to implement it, and others did implement it, at their own risk. There was much furor over it -- campaigns against GIF, threats to sue people writing GIF software without paying a $5k fee (at least) for the patent...
Two things happened.
First, the free software community invented PNG, which is like GIF, but better in absolutely every way, except that old versions of IE didn't support it without a plugin, and new versions still don't support it as well as Firefox. Basically, PNGs use a different but better compression algorithm, support all the features GIFs do and more, and are pretty much the only image format you will ever need for lossless images. (If your image is really that big, use Jpeg.)
Second, the GIF patent (actually a patent on the compression involved) expired, way back in 2003. So, we can now use GIFs if we really want to, even though they've been completely obsoleted by PNGs. There's now no legal or convenience reason not to use GIFs, only the technological reasons -- and on technological merits alone, GIF loses. Hell, I do HD-DVD development, which is kind of Microsoft's baby, right? We use PNG images pretty much exclusively. I think the spec might support JPEG, but I doubt it supports GIF.
So, if mono is really doomed to patent bullshit, we need to pull that off again -- invent something like PNG, get it supported in Firefox. I'm not sure we can do it this time, though.
But sorry, (X)HTML5/CSS3/ES4 is not that. In part, it's not that precisely because web standards people don't take your attitude -- each of those components try to be as backwards-compatible as they reasonably can.
Don't thank God, thank a doctor!
As a user, I really couldn't care less which way it goes. As a developer, I really don't care, either (because I'm going to write in another language and transform/compile to Javascript, if at all possible).
Just make it better overall! You're always going to have slight regressions. Maintaining 100% backwards compatibility is a recipe for pain and complexity tomorrow. Us web developers are used to extensive testing on our end, anyway, so you couldn't ask for a better environment in which to be allowed to break backwards compatibility.
If we actually followed "don't break things that work now" we'd still be using horses instead of cars. I'm embarrassed to be a computer scientist when we've got the equivalent of horses 'n' buggies and people are afraid to change it because slashdot might not look quite right for a little while. Boo hoo. Better to fix it now than later.
That's only one aspect, which is IE's lenient parsing. That doesn't stop M$ from implementing HTML and CSS fully.
And it doesn't address my argument of advocating closed standards. We all know M$ wants to control the web, and we all know how they let their browser rot for almost 5 years because the competition was crushed.
The model you're advocating is broken. No website can be trusted, and IE's model was broken from the start. Web browsers should be relatively secure from the start. They should never expose themselves. Only visiting trusted sites doesn't cut it; trusted sites get hacked with malicious code. The answer is secure browsers.
Who should be the ultimate arbiter of JavaScript's future? Obviously Netscape, the company that invented it.
Since Netscape is no longer with us, MS should obviously inherit its rights. It's traditional and customary: you kill someone, you get to keep their possessions and cast their votes.
I am sure that there are many other solipsists out there.
Because by trying to be backwards compatible, and they'll have to be backwards compatible no matter who wins the pissing match, it's just inevitably going to lead to more browser bloat.
This is just silly. ES4 is backwards compatible with ES3. That has been the number 1 priority of its design, and if you had bothered to actually *read* something about it, you'd know it. But no, that would require some effort and it's better to just post some random, unfounded rant. So I'll summarize it for you: VMs and interpreters that can run ES4 scripts will have no problem handling all that legacy JS that you claim will be thrown to the gutter.
So, you either spread misinformation because you are ignorant, or because you are an astroturfer on Microsoft's payroll. I don't really care; just stop the FUD. Microsoft's agenda in this is more than clear. They have just released Silverlight, the CLR and, surprise!, an ES3 implementation for it. I don't think I need to comment this further.
Did you know that when you start using Opera for serious browsing it can take in excess of 40 seconds for it to shut down when you can no longer endure how fucking SLOW it is?
:)
Not to mention that *disabling* javascript is the wrong way to go about it in my mind (and apparantly the minds of many). One should *enable* it when it's necessary.
Add to that that it's closed source so you have no idea if they're selling your information to satan, it's progress bars are a joke designed to make you think Opera is faster, and it's UI is uglier than windows 95 hit by a truck, and you'll start to realise just why it's market share is so low..
Yeah. I tried using Opera. I was back to firefox in about 4 days.
I really don't care about the implementation details, as long as they maintain excellent compatibility with legacy Javascript. Whether I have to write , who gives a damn!?!
-Billco, Fnarg.com
I have to use Konquerer or IE to access Scottrade (members area).
Also Firefox is slow, bloated, and crashes frequently on Windows and Linux.
Irina Romanov
my favourite is the web browser that doesn't automatically submit a form when enter is pressed even though there is a button element within in that has type="submit"
Invaders must die
If you actually take a look at the spec, or if you have spent any amount of time programming actionscript in Flash CS3, you will no doubt have noticed that, with some exceptions, such as JS's dynamic properties, ES4 is basically Java, but where the types are defined as such: var x:int, y:string instead of int x and String y.
The "extra features" part I mentioned was actually me thinking about how great it would be to get that one extra feature in Javascript plus the ability to enforce a certain inheritance model (just for consistency within one project). This all got in to my head after listening to Bruce Johnson talking about GWT on Technometria (and fwiw I thought he said "static typing").
more of the same on Twitter.
Its not a technical battle, exactly - ES4 takes a lot of what's good about JS, from an advanced lanaguage perspective, but loses a lot of some of what makes it good as a lightweight language (IMHO). Which is fine - its increasingly not used as simple glue...
I say not a "technical battle" though, in that Yahoo and MS (or at least their reps on the working group) just seem to believe its not Javascript anymore: The analogy here would be if the there was an attempt in Java's early life to call it "C++ Edition 2". I kind of agree on the merits of that argument, but (though I might change some of the, well, changes in ES4) think that the "open web standards" coalition really needs to go this way *directionally* to compete... more thoughts on this in my JS flame war blog post from a few days ago.
graphically speaking
Given Google, the rise of Firefox and to a lesser extent Opera, and the growth of new middleware vendors, the paranoid cry "MS wants to control the web" seems rather farfetched to me. THe web is far too large and has too many actors for MS to try and control it.
Treating all web sites equivalently is inappropriate security policy. The question is how do you implement a differentiated fine grained security policy to match your risk and benefit issues. Zones are useful, but too coarse. I have approximated it by using Zones with IE, Firefox with fine-grained NoScript policy, and Opera as a static text renderer.
Very nice language!
...) ... much, much more!
* Iterator protocol (including StopIteration exception)
* Generators (via yield statement)!
* List comprehensions!!
* String slicing
* Native datatypes (Vector, Map,
* Generic function templates
* Classes!!!
* Control over initialization
* Type-reflection
* Clear module and namepsace systems.
* Interfaces
*
What's missing:
* contract programming (pre/post-conditions and invariants)
* built-in unit-testing
* literate (in-code) documentation
* keyword arguments (but they've added var-args at least)
On thing I don't like:
* dropping "return" at the end of short functions. That does not improve clarity at all.
I'm not sure it's so smart to put all this in a browser language, but it's really a great language definition.
POF works fine for me in Firefox, but I also use Noscript, adblock, and so on. Only once in a great while will the site not work, and this is only regarding the picture previews when viewing a profile, not allowing one to see the small thumbnails get enlarged.
POF also works great for meeting women! (So does OKCupid).
Firefox js is slow, maybe by design.
My javascript game HylZee runs very slow on firefox.
I'm not so sure that I'd trust these guys to specify a new version of js.
Hey don't blame me, IANAB
According to Wikipedia, the guy who runs the site wrote it in ASP.NET, so it's hardly surprising. /ducks