The AJAX Experience, Day 2

Today was an incredibly long day of sessions—effectively 12 hours (I originally typed years) of activity. It started with Brendan Eich and a presentation about the ever-evolving language that is JavaScript. It was titled Faster Than Light JavaScript and really had more than its fair share of bad jokes in it (I loved every one of them). It wasn’t as detailed as I may have liked, but it was fun to hear the story, from the man himself.

My next session was probably not appropriately titled. I was expecting a very different session than the one I attended: “Analyzing AJAX Performance” which seemed to be more of a primer on using IE8’s Developer Toolbar (which looks suspiciously like Firebug). Gaurav Seth basically espoused the same method that is used in anything: identify the slow-running methods of the process and perform optimizations there first. Move to micro-optimizations on frequently called code. Use language constructs to speed up some processes. About the only new thing to come out of this conversation for me was that IE8 supports a native JSON object in the model of Douglas Crockford‘s json2.js. I’m glad that they’ve adopted as much of a standard as exists within that arena.

After this session I ended up listening in on a conversation between Yehuda Katz and Paul Bakaus about the widget factory approach for . It really seems like a lot of thought is going into how we should proceed with that, which is pleasing to me. However, being unable to slip in a word edgewise, Joern Zaefferer and I began talking about something new to us, the OpenAjax Alliance. It sounds like this is something that needs to be brought up in the world of jQuery to see how we can assist in unified documentation of our (the collective web development communities) JavaScript libraries through their Metadata initiative. I think this is incredibly important for moving forward with an interoperable web.

After the break began the lightning round, which I found to possibly be the most compelling element of the conference thus far. It served as a rapid introduction to a variety of topics that I can pursue individually at my leisure (really, my preferred learning style).

  1. Smush It

    Yahoo’s Exceptional Performance Team has recently released their tool “Smush It” to ease and automate the optimization of images for websites. My understanding is that uses as many tricks as possible to shave size with no loss in image quality. I think it is awesome.

  2. Adobe Dreamweaver CS4

    Adobe is plugging the newest version of Dreamweaver, now with embedded WebKit and smart JavaScript completion. I don’t think I’m the target audience for this piece of software, that, and a bad experience with old versions has probably ruined for me what could possibly be very good software, just based upon perception.

  3. Comet

    In yet another amusing presentation based upon its format, Greg Wilkins modeled the Comet client-server interaction by audience participation. I really wonder what can be done to push this to the very limits of its abilities. Scaling this type of functionality must be downright scary.

  4. Firebug

    John Resig gave a 5 minute assessment of where Firebug is now, and where it is heading. Web developer’s favorite tool will only continue to improve as time progresses.

  5. Episodes

    There are lots of problems with existing browser benchmark methods that simply don’t provide enough information throughout the use cycle of the site. This session was supposed to introduce a new approach, but was cut short as Steve Souders‘ had enough content for an entire normal session. I want those slides and a blog post, this seems very cool.

  6. Hacking Netflix

    Coming tomorrow or some day later this week there will be a blog entry detailing a new API that Netflix is releasing for developers to begin interacting with their data. It’ll be fun to see what comes out of this. I’m thinking a mapping of where a movie was filmed mashed up with Google Maps.

  7. Interviewing for JavaScript Gurus

    This was an excellent session by Gavin Doughtie about how to recognize in an interview somebody who has the expertise necessary to truly contribute as a JavaScript developer. The list is quite scary because it covers not only the normal development questions but also a few more things specific to the JavaScript world just to make life difficult. This was the list of things that the candidate should be able to talk about in depth:

    • Software Engineering
    • Web Development (general principles)
    • Browsers
    • CSS
    • Idiomatic JavaScript
  8. Objective J, Cappuccino

    These two pieces of technology were developed at 280 North. Objective J is a superset of normal JavaScript and gives those used to more inheritance-based programming languages that syntactic sugar in JavaScript. Cappuccino is a web application framework built on top of this new (doubly interpreted) language which uses canvas and other tricks to make the user experience consistent across browsers. This scares me (I like low level interaction), but it seems like it is working effectively for their needs.

  9. ShiftSpace

    Theoretically, this is the ultimate in mashups. It allows you to swap out and tweak elements of any site on the web and stores those changes in a unified place so that you can browse to other users’ understanding of a site. In practice the implementation seems to be early in its lifecycle, though the concept is quite cool. I got a chance to talk to Dan Phiffer & David Nolen about it and enjoyed those chats.

  10. Milescript

    This is a new language that outputs JavaScript. I’m not a fan of this approach, I like hand writing my JavaScript, thanks though.

Next Microsoft had a keynote address about the upcoming IE8, its profiler, and the newest changes to Visual Studio. Omar Khan and Jeff King were the presenters and they did a wonderful job. IE8 is leaps and bounds better than its predecessors, but more than anything I’m scared about further browser segmentation. We’re moving into a realm where we’re being forced into supporting at minimum multiple versions of at least five different browsers—that is an unmaintainable situation if something doesn’t give: standards acceptance or a browser quitting. I vote for the former.

There were three different demonstrations showing off some of the work being done with IE and Visual Studio. They showed off Visual Studio’s JavaScript completion (this looked incredibly familiar as it was presented no more than an hour before in Adobe’s Lightning Round talk about Dreamweaver 4), and their custom content templates. The last one demonstrated the connection between different elements on the page, and bolted on a jQuery animation. The jQuery inclusion wasn’t really as I would recommend it ever be used and it came across to me as more of a “Look, we have jQuery, we’re hip!” but I’ll give them credit for trying.

As a footnote, Scott Jehl did point out that Jeff was incredibly poised on stage while giving his presentation, and I would have to agree with him. The demos he did were easily the best part of the presentation, well organized, and covered just enough of the implementation details to not leave us wanting for more. They closed with a note that Microsoft will be releasing a Web Developer edition of Visual Studio 2008 with jQuery bundled in October.

After the IE keynote I went to hear Francisco Tolmasky discuss in more detail Objective J and Cappuccino. It seemed like everybody from jQuery was in there, obviously something that is interesting to those working very low level in JavaScript. It was interesting to hear the reasoning behind their design decisions which were necessarily some tough choices. I’m looking forward to getting a chance to play with this technology, even if I decide never to use it, it represents a very cool technical achievement and something worth mining ideas from.

The next session I attended was Joe Walker’s Advanced Web Application Security. The summary was this: the web is a scary world. Between CSRF, XSS, Clickjacking, Session Fixation, DNS Rebinding and an unknown number of others there are so many things out there that it seems we should just give up now. Many of the issues have been solved before though, and I hope that they remain that way. I’ll talk more about those in the coming weeks.

I skipped the next session to get a head start on this entry—I need to actually get some sleep tonight. (I’m editing this now at 1am, it didn’t actually get me very far.)

The last breakout session for the day was Glen Lipka‘s User Experience Design for AJAX Applications. As a designer, he walked through the entire process in an incredibly detailed manner and explained the process in a manner accessible to everyone. It was an incredible presentation that I wish I had more gas left in the tank so I could absorb it better. He recommended two books: Universal Principles of Design, and The Design of Everyday Things. I’ve read the latter already and if the first is anywhere near as good as The Design of Everyday Things, it will be worth reading.

To finish up the night was an ask the experts panel moderated by the Ajaxian founders featuring Allen Wirfs-Brock, Brendan Eich, Douglas Crockford, John Resig, Joe Walker and Dylan Schiemann. The best quote was this one from Brendan Eich: “Java is like the COBOL of the new millennium.” I have a distinct feeling that will come back to haunt him, but I enjoyed it.

The evening ended with Dinner with Strangers which turned out to be a blast. The orange group ended up at Legal Seafood and had a blast. I got lobster and clam chowder with a side of broccoli and mashed potatoes and cheesecake for dessert. Don’t mind if I do. The trips there and back weren’t entirely uneventful, but were quite fun. The conversation was great, and I really enjoyed the company. Definitely the type of thing worth doing.

To this point this has been a wonderful experience, and I can’t wait for tomorrow, though I’m dreading the end.