Friday, November 2nd, 2007

Brendan Eich’s Open Letter to Chris Wilson

Category: JavaScript

The debate on ECMAScript Edition 4 / JavaScript 2 continues with Brendan Eich, CTO of Mozilla, posting an open letter to Chris Wilson, Lead Architect for Internet Explorer. This is largely a restatement of the mailing list posting we covered earlier, but contains a more organized and formal rebuttal to some of the ES4 / JS2 critics that have been flying around recently.

Here’s hoping engineering concerns triumph over politics. The parties concerned read stories and comments on Ajaxian, so post comments on this story to make your voice heard.

Posted by Ben Galbraith at 11:02 am

4.1 rating from 46 votes


Comments feed TrackBack URI

Brendan’s open letter is clear and documented.
Thank you so much for exposing MicroSoft sneaky maneuvers and political agenda for anyone to see.

Comment by Mathieu 'p01' Henri — November 2, 2007

Brendan and chris need to remember why open developers have such a problem with m$, because to forget it would doom them both. M$ wants (to force) the world to use it’s tools – not because they are necessarily better, but because they would increase their “locked in” market share; EC4 seems to be following a very similar path.

Javascript succeeded because it did what it did fairly well and was usable by any browser; VB/J/.net-script sucks for numerous reasons, but mainly because it can only run in IE (thus, not really for anyone using FF/safari/opera/etc).

As far as I’m concerned, you are both being fat-heads – as soon as you both make your browsers FULLY JS1.7/CSS3 compliant, neither has any room to bitch about the other. If you can’t even make your products FULLY compatible with well-documented open standards, what makes either of you think that you should have a voice in a new language?

ps All of my ‘new’ english words are patent free!

Comment by black mold — November 2, 2007

It’s not in Microsoft’s self-interest to have a robust standards-based open platform that will make the choice of OS irrelevant.

Maybe Microsoft will succeed–where they have so far utterly failed (e.g., MSNBC)–in replacing Office/Windows revenue with advertising. Then it can be about mind-share. But I doubt this will happen.

Netscape and its progeny and cohorts need to get it through their heads that they will never, ever beat Microsoft by trying to build a platform on top of Microsoft’s.

Google (Mozilla), Adobe, Amazon, ebay, etc. need to make a pact to build an open OS platform. It doesn’t matter whether it runs open or closed applications, but the OS would be open and allow fair competition. That is the only way to beat Microsoft or any who would like to replace them–like Apple.

Comment by bb — November 2, 2007

Wait… what? Do people really use washcloths?

Comment by Zach Leatherman — November 2, 2007

It seems clear that MS has a tentative strategy: push Silverlight as an “open” language that replaces JS, Flash, and SVG.

But we don’t want a new semi-cross-platform language that promises all kinds of built-in doo-dads but really just makes it more difficult to do what we want to do. Silverlight was not developed with input from the Mozilla people, or the Adobe people, or the W3C, etc. It is a MS technology that will always work best in MS products, and even there will be crippled in various ways to prevent us from developing in the ways we want (e.g., using our own local servers, our own text-editors, our own image manipulation programs, our own workflows, etc.).

The Open Web, on the other hand, created by consultation, agreement, technical merit, practical consideration, and level free-market competition, has provided us with amazing tools that get better and better. JavaScript at this point isn’t a great language because of it’s innate superiority, but because there are millions of code snippets, tutorials, hacked-in support in a million tools; it’s source code can be read and analyzed; it is plain text like HTML; and it’s technical merits and abilities have greatly improved over the years.

MS will resist any incremental improvements to the web for as long as they can — indefinitely if possible.

This message that you are reading is meant to put pressure on MS to support the standards. MS, if you object to new features, do so early on in the mailing lists; if you have a better idea, pitch it early on in the mailing lists. As it is, I urge the IE team to fix the well-documented JS bugs in IE 7, the well-documented CSS bugs, to join in the HTML 5 effort, the JS 4 effort, SVG, etc. That is the direction I as a developer would like to go. Your products are now an annoyance to me and many others, and your sneaky tactics are incredibly off-putting.

I am leaning more and more to urging my clients away from IE all together; until now I’ve allowed them to keep their IEs for the sake of expediency and because of the market-share. But MS’s insistence on holding up technological improvements has irked me something awful, and this might be the last straw.

Comment by jamie — November 2, 2007

Microsoft guys must stop hijacking other people’s efforts to make JavaScript 2 meet its goals and be a standard thats useful for those who use it and benefit from it.

Stop having those “me and my own stuff” ideas of putting C#, Ruby, Python etc in the browser BY TRYING TO KILL JS2. Of course you guys just don’t actively kill it, you just “ignore it” and deviate peoples attention to your super cool stuff.

JavaScript 2 (just by itself and not this dirty politics) will fail just if developers will no longer be able to program like they do these days. ECMA-262/Javascript 1.x is brilliant for doing small/medium things but when projects start to grow bigger its a major pain in the butt.
All these frameworks are the prove of it.

A = Do things just like people done it in the past
B = Seamless support to the new stuff
C = Microsoft not hijacking anything, and at least have respect for it

if( A && B && C == true )
// Don’t really know but its not looking good.

Comment by Pedro — November 2, 2007

…I am looking forward to JavaScript continuing to evolve into a better language with ES4. Brendan seems to be purely and simply interested in evolving JS in order to engineer an improved language. From my seat as a developer, I believe that’s the right mindset, and that’s what I’d like to see. M$’s mindset of keeping JS where it is and not evolving it is really a strange point of view that I don’t understand. Certainly smacks of an agenda, imo, especially when considering their history.

Comment by Mark Holton — November 2, 2007

While there are some good ideas in ES4 it feels errily similar to the jump in ease-of-use between ASP and ASP.NET.

Both JS and ASP were pretty straightforward to learn. Although not perfect, they served us well. The departure to .NET added a whole other layer of complexity. The language got too wordy and became too object-oriented for its own sake. It really didn’t make programming any easier. The changes were made to encompass the goal of the *platform*, not the applications, nor that of the development community.

While improvements in JS do need to be made let’s not make the same mistake. Javascript is not C#, nor should it be. Fix what’s broken (security and performance issues), keep it current with the needs of the development community (Ajax) and leave it at that.

Comment by James MacFarlane — November 2, 2007

bb — well said!

Microsoft is very much interested in keeping Javascript as a not-so-powerful extension language. Microsoft will be against implementing a Javascript runtime that brings Javascript into the same enterprise-level space as the so-called “real” languages. If Javascript gets optional static typing, JIT, 10x faster performance, packages, etc., then you can bet your thumbs people will flock to it (even more than today) to develop all kinds of rich application that will make proprietary languages and operating systems completely irrelevant.

The only possible option Microsoft sees, if it must allow an open enterprise-level dynamic language to proliferate on the Web, they at least much be in charge of the standards so they can constantly be ahead on the implementation curve. But ideally Microsoft would prefer t close-off and to appropriate the entire Web.

Microsoft is a cancer on the world. Their intention to own and control everything is not compatible with an open and fair society.

Comment by Leo Lipelis — November 2, 2007

To roustabout: Your vivid metaphore aside, I don’t see any practical reason why it’s a bad idea to cherry pick the best ideas from other languages. This is how Ruby got to be so good. I think the biggest advantage that Ecmascript 4 has at this point, is that ActionScript 3 implementated of an old draft of Ecmascript 4. From that, the EC4 team have been able to learn a whole lot from what Ecmascript 4 might look like in practice. It hasn’t been all good for Actionscript 3, as many of the complaints now leveled against the current draft of EC4, (namely that it fundamentally changes the character of the language) are evident in AS3.

But wait- This hasn’t gone unnoticed by Brendan and the EC4 team, and I can clearly see the steps they have taken to avoid AS3’s problems in EC4. The type system is truly unobtrusive- And virtually unprecedented in any language. EC4 will enable a whole new way of programming never seen before. 1> prototype your program using loose dynamic typing, and lightweight syntax. 2> Optimise, and reduce bugs by adding the static typing syntax to your already working program. 3> package it in a firstclass, unhacky way.

I’m really excited about this, and it saddens me to see the huge amount of resistance, FUD, and closemindedness about trying something new. Look guys, EC4 isn’t going to make the javascript you know and love go away. All your current programs will still work. You’ll still be able to script in exactly the same way you always have. You’ll still be able to do your cute functional programming tricks with closures. The only thing EC4 will do is make a lot of the futzing around with making clever libraries uneccesary so developers can, if they so choose, focus on more productive tasks. I hate jumping on bandwagons, but it does look to me like Microsoft is just sticking their foot out at the last minute to trip up Brendan’s triumphant home run, here.

“as soon as you both make your browsers FULLY JS1.7/CSS3 compliant” Firefox *is* fully JS 1.7 compliant, and in fact, already includes many of the features in EC4. If you were afraid of what EC4 would do to the Javacript landscape, then stop waiting around. The demo is already here.

as for CSS3, that’s still in draft mode, and it’s a pretty crappy draft at the moment from the reports that I’ve seen.

Comment by Breton — November 2, 2007

James MacFarlane: Bare in mind that ES4 is backward compatible with ES3, which means ES3 code will work in ES4 engines. There won’t be any jump per se.

ES4 really improves ES3 in a way that will help developers produce much cleaner code.

What do you mean by security problem with ES3 ? The only potential problems I can think of are due to eval( evilStuff ) and new Function( evilStuff ). There isn’t much to do about them : remove them at the risk of not being backward compatible, or keep them and warn developers of their potential misuse.

As for the perfomance, ES3 isn’t really slow, it’s usually DOM manipulation that slows down an app. Anyway, I expect strong typing will boost performances like it did with AS3 compared to AS2.

In short I can’t wait to put my hands on ES4, and if it is without MS, so be it.

Comment by Mathieu 'p01' Henri — November 2, 2007

Agreed with Roustabout in tone and content. Reading over the ES4 proposal for the first time, my only thought after my state of shock and awe subsided is that Brendan is in the clutches of the dark forces of inelegance. (This is really the same guy who gave us the brilliance that is javascript?) Anyways, what the web needs is a better DOM in the guise of a thousand tiny but critical changes pointed out by the drudges in the trenches and not big language changes like ES4, although there are many incremental improvements that would certainly make life easier.

Comment by Fnustle — November 2, 2007

“Brendan is in the clutches of the dark forces of inelegance. (This is really the same guy who gave us the brilliance that is javascript?)”

I might get hit hard for this, but Javascript isn’t really that elegant at all. You only get this impression because it has been standing on the shoulders of giants. (Self and Scheme), which actually are elegant and simple, and lovely and all the things you think Javascript is.

What Javascript actually is, is a mishmash of the best languages dumbed down just enough to make it palatable to coders that get scared whenever they don’t see enough curly brackets. It’s harsh, but I think it’s fair. (particularly since I’ll admit I’m one of them) Then programmers get into javascript thinking it’s just going to be another C type language, see the elements from scheme and self and get excited. But when Brendan continues doing what made Javascript originally great- Shamelessly stealing the best ideas from other languages, you guys all stammer and get scared. What a fickle group you are.

Comment by Breton — November 2, 2007

Maybe you should go read the ES4 proposal again then. As others have said before, it is BACKWARDS compatible with ES3, so you can still practice your script kiddie skills, while framework developers can actually build robust libraries without the added headache.

Comment by /dev/urandom — November 2, 2007

There’s no bullying MSFT. Brendan just needs to go forward w/ ES4. JS Frameworks will write switches for it, and the waterline will rise to some median-version of ES4 several years down the line. Just the way it worked for XHR.
IMHO, Opera and Safari have such fast engines, you’d think Moz would be more interested in improving their ES3.

Comment by Brad — November 2, 2007

Brad: about JS performance, we’re working on it now. Some easy wins once we remove bogus security checks that have slowed things down in the last year (both Firefox 2 and 3). Opera’s latest engine is fast, and the Webkit guys are going strong. It’s great to see competition force higher performance from interpreters. Our goal remains effective JIT compilation of typed *and* untyped code, evolving Tamarin and SpiderMonkey together. More soon, I promise.


Comment by Brendan Eich — November 3, 2007


Comment by Olmo Maldonado — November 3, 2007

Brendan: Opera’s js performance between 2 to 4 times faster than Firefox’s (based on my own performance testing, which covers nearly all DOM methods and quite a few Array functions too). Opera also certainly gives the impression of rendering its pages faster than Firefox, and sure enough, when you go generate a lot of html content using js, Opera displays that content many times faster.

If Firefox did not have the plethora of extensions that it does, I would be using Opera as my default browser. I’d love to have a bit of both worlds though, so I implore you to focus on this apparant lack of performance (in both areas if possible). That doesn’t mean I don’t think Firefox is a great browser (double negative :P), but there is certainly room for improvement.

Comment by Anonymous — November 3, 2007

This is crazy. Never have I seen something be such a big deal about the future of a language. JavaScript has that rut that it’s really up to a browser vendor to implement it. These are indeed crazy times. It’s like what we had been doing for HTML in the 90’s…. CSS in the early part of the century, and now it’s happening with JavaScript.

Comment by Dustin Diaz — November 3, 2007

nice… great info, looking forward to the new info …I’ll throw out a ‘Brendan++’ as well!

Comment by Mark Holton — November 3, 2007

I’m all in favor of ES4.

Also, look whose browser usage share has been slipping since its peak in 2004 —

Comment by Will Peavy — November 3, 2007

While we’re on the subject of a next-generation scripting language for the Web, I’d like to offer my two cents on the matter:

What the Web needs now is not love, sweet love. What the Web needs now is not more features, new concepts and more bloatware. What it needs, in my opinion, is -less-. There should be an effort to create a scripting language that fits the web, not a scripting language that happens to be embedded in web pages. You should strive to simplify the language and its usage. You should try to include security measures from day one, as well as features that benefit Web development, like a Ruby DSL.

You shouldn’t let Prototype or jQuery or Dojo or whatever do that for you. Instead, the language should be aware that it is being used exclusively for Web development, and not become Ruby, Python, Java or any unholy hybrid thereof. The language should then delegate the computationally expensive but common actions to the underlying C code. This will result in cleaner, more easily written and maintained code as well as faster and less memory-hungry engines. That said, there are two main problems I see today that must be solved.

One is the issue of backwards compatibility. The way I see it, most JS scripts today are marked as “text/javascript” so there’s really nothing stopping you from supporting the “old” JS as well as supporting a new and improved “text/melonscript”. Said quite simply, backwards compatibility shouldn’t hinder the further improvement of the Web. Just gently phase the old code out of existence.

Second is the issue of taking this language and pulling it out of the Web environment, like putting it on the desktop, or on a server, or using it to script a well-known browser’s user interface. Again, my solution is a simple “don’t”. The world has enough scripting languages already. There’s no need for another one. Make a language that fits the Web, not one that will power the next manned mission to the moon.

As a last note, I don’t think Microsoft should have any say in this area. They’ve repeatedly tried to screw up the Web and competition by designing browsers that flat out refused compatibility with open standards and thus deceiving users who know nothing about Web development. This should be unacceptable. IE should be left in the dust of newer standards while it gradually loses the ability to render most of the Web, unless it conforms to standards imposed on it by other, less self-centered organizations. I am tired of adjusting for IE, telling people why IE isn’t safe or reliable, and I’m especially tired of IE “fixing” markup that is by standards not correct.

Thank you for taking the time to read my comment,
A Web Developer Who Needed To Let Out Some Steam.

Comment by Anonymous — November 4, 2007

The irony is that all this debate only makes Microsoft look like some sort of participant in Internet technologies. Arguing General Relativity with Paris Hilton doesn’t make her a physicist. Though MS employs smart people, the nature of that corporation is to funnel their creativity and intelligence towards a slowing down of innovation. And for that, they must be deemed a force of stupidity.. i.e. stupid.

Comment by javacrypt — November 5, 2007

This whole thing only convinces me even more than javascript will not be the platform of the web going forward. Something like Flex or Silverlight will win out. We just have to wait and see.

nate grover

Comment by Nate Grover — November 7, 2007

Leave a comment

You must be logged in to post a comment.