Friday, May 12th, 2006

Ajax Experience Day 3: Panel

Category: Firefox, IE, The Ajax Experience

With key people present from Mozilla and the IE team present, today’s Ajax Experience panel is focused mostly on browser issues. A rare opportunity for Ajax developers to talk directly with the people who define our day-to-day constraints. As I write this, it’s thirty minutes after the panel finished and there’s still a decent crowd in the front talking to the speakers.

  • Alex Russell – Dojo Toolkit
  • Stuart Halloway – Ajax/Java/Rails Consultant
  • Brendan Eich – Firefox Lead
  • Laurel Reitman – Microsoft IE Lead Program Manager
  • Douglas Crockford – Yahoo!, creator of JSON, general JS evangelist

Here are some notes from the panel…

Why no byte code?
Various reasons. Compiler is a hassle. Can send malformed bytecode and make it take a long time. Was experimental in 1995.

SVG Integration in IE7?
Laurel: No, won’t make it, but we’re looking at it.

Ben: What would you like to see?
Brendan: DOM ?standardised. Local storage – offline in first-class, cross-browser, way.
Laurel: SVG and canvas – heard a lot around the conference. Also heard a lot about offline storage, important too. CSS spec. Accessibility space – Mozilla has done some great work there.
Stuart: Would be really cool to have a test suite that verified the browser does what it’s meant to be doing. Some browsers have done better than others in adopting agile/testing practices – formally having those things would help show which browsers are doing well at standards compliance, etc.
Laurel: Not just standards compliance, also what the community’s asking for.
Brendan: Sure, there’s a difference between real-world standards and those written by W3C etc. It’s not going to be downloaded with yout browser, but something we’d like to collaborate on.
Alex: Safe JSON (de)serialisation. Increasing 2-connection limit would make a lot of things possible. Next version of Windows: when a system builder, or someone bundling windows, has to ship the latest version of IE. Also fast DOM queries.
Laurel: Key word – Security. (wrt JSON)
Brendan: On the map for JS 2 – Safe (de)serialisation with JSON.

What have you given up hope on – impractical or will take 10 years?

Alex: If you’ve been coding JS for a long time, (you feel like anything’s possible) :-).
Laurel: Good to be here at the conference, hear what people want.
Brendan: It’s difficult to have security and power. We need better security models, not just a dialog model that says “Do you trust XYZ.com” becausse most users ignore it.

Robustness of applications

Douglas: Run Yahoo! Mail Beta all day in FF, doesn’t fall over. But others fall over quite readily.
Laurel: Hard to answer, depends on the implementation.
Brendan: Have to test long-running scenarios as well.
Laurel: Agrees. We do stress testing, monitoring of bug reports from end-users, etc.
Stuart: AFAIC if you don’t have a test, it doesn’t exist. As developers, we have a responsibility to meet browser manufacturers at least halfway, produce automated tests … Obviously it’s extremely hard to get coverage (if test takes hours to run). We do have tools like Selenium etc that will help us make it more obvious by way of automated tests where the problem lies.
Brendan: We’re using JSUnit, want to look at test strategy. Moz also looks at bug DB etc., please contribute.
Alex: Nice to grep source of Firefox.
Stuart: MS has a ton of v smart people and a long history of watching industry grope towards something and then jump in. Suggests MS will become a huge open-source provider. Other possibility is that they’ll fail.

What about accessibility and which toolkit should you use? (Prefaced with “I have two questions no-one has asked yet” as everyone keeps asking these at this conference)
Douglas: I’d like to see better affordances in the browsers indicating what its acessible attributes are.
Laurel: Great work done by IBM and Mozilla, we’re seriously looking at it.

Legal or corporate battles on continuing to work together more

Laurel: Patents are one of the biggest problems.
Douglas: Time to close the US patent office (Applause).

In the future, much higher expectations about what websites can do – will mom and pop be able to do it?
Laurel: Toolkits helping to deal with X-browser incompats, making it easy to do
powerful things.

FF lots of bug fixing at the same time as new stuff. Innovation in IE?
Laurel: Can safely say it’s not going to be five years before the next big improvement in the browser. Expect to see a lot of good work…

Alexa tracks popularity by page clicks, but that doesn’t happen much with Ajax.

Douglas: We now have a lot of info about what was going on in the page. But don’t have an accounting system for everyone, what needs to happen.
Brendan: (From another question) FF 3 – Q1 2007.

Just-In-time Compiling

Brendan: Looking at advanced optimisation techniques. ?Hard JITting is hard without type info, which isn’t there now but will be there in the future. Garbage collection difficult – everyone has to watch out for, ongoing area of R&D.

Anyone looking for a complete replacement of HTML, JS, etc. Flash?

Alex: Lots of people are trying, I wish them luck.
Brendan: Flash is a plugin, plugins are second class, that won’t change. If Flash were open or open-source, would be merged in ways that would be wonderful, but don’t think it’s going to happen. W3C people trying to standardise in that area – MS for XAML, FF for XUL, etc. Different languages, different runtimes, IP considerations and compatibility constraints.
Laurel: Even with web today, can use notepad/vi and create some compelling things.

Exposing hooks for IE to build any GUI with it?
Laurel: Can already do it, e.g. AOLExplorer.
Brendan: Sure, a lot of hooks in IE. With Gecko, can write your own ?app.

Is anything we, the users of your tools, aren’t doing which you wish we
would take advantage of?

Stuart: Would be great to see people picking toolkits. Taking advantage of JS as a language, prototype-oriented etc.
Brendan: Functional programming is trickling down – it’s a better style for a lot of JS. I’m not up with the latest JSAN.org

IE7: Fix for Select box, overlapping
Laurel: Select control, can now see over it now. And transparent PNGs. Native XHR.
Ben: Issues about dealing with IE7?
Alex: At one point, NS was wearing the crown, now it’s IE6. From the perspective of a scripter, IE7 is not significantly different. In the same way the CSS community made the point that IE6 wasn’t good for CSS, we said the same about IE7 for JS.
Panel comments about talking to vendors, it’s important to give feedback, etc.

Mashup support

Laurel: Biggest challenge is secure cross-domain.
Douglas: Next thing will be third-party widgets running on the same page, the model doesn’t partition these things.
Brendan: Still under research, pushing towards it over the next couple of years. We don’t sandbox enough right now.
Stuart: Even developers don’t understand the security model within the browser, how much authority you give it. Let alone general users.

Combining frameworks
Stuart: Don’t want to end up where everyone using WebWork must use Dojo, everyone using Rails must use Scriptaculous etc. Should be able to pick things on features, mix and match. It’s not actually hard to combine these things together. Would be 10 minutes of work to fit Scriptaculous and Prototype with Dojo packaging, maybe let’s at least agree on using Dojo packaging.

DOM Compatibility

Brendan: DOM isn’t transparent

Toolkits – Seems like could incrementally keep raising the bar, agree on a common subset of syntax, etc.

Alex: Rate of change issue. e.g. DWR’s use of $() (Joe Walker later clarified this at the panel – not DWR’s issue, just the overall problem about ordering of scripts, overriding issues etc). Even if we decide on something, end up with serious versioning issue. If something’s really really important, maybe should standardise on ecmascript or DOM bindings.
Brendan: XHR is being standardised. Took C a long time to get through various API wars etc. Kind of early.
Stuart: Hard to standardise. e.g. Many people haven’t been exposed to functional programming, others have been but don’t like it. So how do you standardise when people don’t agree on the basic matters of programming style?

Competition is good. Ajax benchmarking initiative?
Brendan: Benchmarking is tricky. The browsers always game it (specific benchmark). I’d like to see a developer-driven effort.
Laurel: Need a broad set of examples, things people are really doing.

MS has an incentive not to innovate to much with IE
Laurel: Can’t speak for executives, but my role on the team is to make IE good, etc. I think both can peacefully coexist. BTW We’re hiring. Investments on Windows Live etc show MS is committed to the platform.
Brendan: If I were Adobe, I’d be pretty nervous. (Might expect action too if web apps take off.)

Posted by Michael Mahemoff at 8:34 pm
12 Comments

++---
2 rating from 231 votes

12 Comments »

Comments feed TrackBack URI

Eich on plugins?

Eich on plugins? I wasn’t able to attend this “browser issues” panel at The Ajax Experience, but Michael Mahemoff’s notes attribute this to Brendan Eich of the Firefox team: “Flash is a plugin, plugins are second class, that won’t change. If Fla…

Trackback by JD on EP — May 13, 2006

Brendan –

Just a question for Brendan, why should Adobe be nervous of M$, since Flex 2 will be out in months and with M$ will be done in 2007. Also, the developer platforms for Adobe will be more than just Vista and XP SP2

Comment by Patrick Whittingham — May 15, 2006

Some points of clarification:

1. I said pretty clearly that JS bytecode was never shipped around from server to client because in 1995, that was what Java required: a compiler, the hassle for novice programmers of even understanding what bytecode and an offline bytecode compiler were, and so on.

Remember (and I said this on the panel), <script src=””>was not introduced until Netscape 3 in 1996. But the main point is that JS was designed to be “script embedded in HTML”, not “programming language you compile”.

2. I said plugins are second class citizens, and I stand by it. It’s not a controversial position, it’s a fact. I heard other browser folks including Laurel agreeing after the panel. Plugins are hostage to the “plugin prison”, a rectangular cell that doesn’t always interact well with other elements when rendering, keyboard-navigating, etc.. This is inevitable given the plugin API.

For plugins to be first class, we would need a cross-browser API of such depth and complexity that it would allow plugins to participate in the layout process (calculating preferred dimensions, negotiating final size, possibly even non-rectangular size), as well as partake of browser event flow and shared rendering stack.

Standardizing that large an API is tantamount to standardizing a browser’s codebase, since any such API (in C or C++ especially) can’t abstract away from execution model, rendering system, native widget vs. non-native widget, and other concrete implementation choices that different browsers make differently, on different OSes.

Note I did not say Flash is second class. You can make first-class graphical presentations in Flash today (text handling is not as good as in browsers, in general). But then you are talking about Flash as a full page plugin, or as a standalone application host.

3. I think Adobe should fear MS because MS has more engineers and more money, and they’ve shown time and again that they can embrace, extend, and extinguish (or at least compete fiercely) with other players, no matter how entrenched the other players’ leads in their markets seem. The reports I heard from Mix ’06 were impressive.

My view is longer-term than this year, and nothing is for certain. But it would be foolish to discount MS even if they come to market with WPF* in 2007.

/be

Comment by Brendan Eich — May 15, 2006

One more point that I made at the panel, which also was not reported here, but was in the first comment, by Erik Arvidsson, at http://weblogs.macromedia.com/jd/archives/2006/05/eich_on_plugins.cfm: if Flash were open source, it would be blended in amazing ways with at least a couple of browsers, with consequent pressures to standardize the results. There are IP barriers to do with audio and video formats and their decoders, which might limit the results to be more graphical than multimedia — but with open source, we would have the best chance of first-class Flash-like content and HTML content merging.

The same is true of Java, btw. Java being virtually closed source all but guaranteed that it would die off, relegated to games, a few charts (but Flash dominates), and real estate virtual tours. Those applets with Flash alternate tours show how Flash loads faster and behaves better, even if still in a second-class “plugin prison” — it’s not all about open source, in other words — but neither plugin experience is as good as a unified content model could be.

/be

Comment by Brendan Eich — May 15, 2006

Yay, wordpress or whatever is at fault here. I wrote

“Remember (and I said this on the panel), <script src=”…”> was not introduced until Netscape 3 …”

but of course I used plain angle brackets, and the entire tag was stripped.

/be

Comment by Brendan Eich — May 15, 2006

Brendan, Thanks for your clarifications, I fixed up the “script src” in your comment above.

Comment by Michael Mahemoff — May 17, 2006

Brendan: DOM isn’t transparent

Hey Brendan, who’s the vision man for Firefox, cuz it aint you. I’ll believe someone (anyone) has a handle on the FF codebase when we finally get “inline-block” after all these years.

Comment by Fnustle — May 17, 2006

Fnustle, or whaver your name is: that brief paraphrase of my words about the DOM still not being standardized interoperably, “DOM isn’t transparent”, wasn’t a vision statement. It was an answer to a question.

But you weren’t there in the audience, were you? If you were there, sign your name instead of acting like a troll, and let’s talk about what I actually said and what you heard. Or let’s get past that and talk like real people.

If your idea of “vision” is inline-block support, you need glasses :-P. As a matter of fact, inline-block support should appear in Firefox 3.

None of these little pieces (JS2 is just one piece; inline-block an even smaller piece) makes a vision by itself. The simple vision statement for the near term with Firefox is two-fold:

To make Firefox more pleasant and usable and simple and secure for the tasks that most users do every day (with extensions for the more demanding users and special cases).
To advance the state of the web platform in small increments, so that the web continues to win against proprietary and less open platforms.

That’s it, from 10,000 feet. If you have a better realistic vision for the near term, please lay it on us. In the Mozilla community we don’t put anyone on the “visionary” pedestal — we’re open to all comers.

/be

Comment by Brendan Eich — May 18, 2006

I do have a better realistic vision, but maybe not for the near term: DOM standards compatibilty. The standard — unfortunately or not — is not W3C. It is IE. The open source community needs to get over itself and start dealing with the way the world is, and not the way the world should be. “Inline-block” is not a small deal, not with the way Mozilla deals with inline elements. I and thousands of designer/developers like me would say it is certainly more important than JS2. But it alone is only a single example of the huge number of differences between the layout and DOM of the two major browsers: the one we can change and the one we cannot.

Comment by Fnustle — August 19, 2006

Yes dont let him get at you a little knowledge is better than none at all !!

Comment by Doug Harvey — February 8, 2007

I’ve been really slow getting into Ajax but know it is important that I start soon.

Comment by MJ99 PHP Scripts — March 13, 2007

can you recomend a good source book on Ajax as have read a number of stuff but its not giving me the full explanations.

Andy

Comment by Andy — March 30, 2007

Leave a comment

You must be logged in to post a comment.