10 Questions for Jörn Zaefferer

Just Posted: Apple Likely to Give Education Rather than Resolution for iPhone 4 Antenna Issues

In the first of I hope many articles, today I’ve been talking to Jörn Zaefferer of jQuery fame. Jörn is one the main contributors to the jQuery library and is based in Cologne, Germany – the rest you can hopefully read below. Catch Jörn on Twitter as @bassistance or http://bassistance.de.

1) First up, can you give us a brief history of your programming days? Where did it all start and how did you get from there to developing/contributing to jQuery?

My first programming involved typing of little programs from a book into my father’s Schneider computer, in Basic on a green screen. I also wrote a little program that outputted random symbols along with a beep of a varying frequency…

Time-warp forward about ten years, next thing was a Visual Basic program for managing Windows desktop themes, with a set of Diablo (the Blizzard game) based themes: wallpapers, icons, mouse cursors – I used some helper code from a friend to update the necessary registry entries. Lost it all during some reinstall.

In 2004 I actually started learning to program, starting with C for a semester, then a lot of Java and some PHP, SQL. During a two month project I developed a Eclipse RCP based application for a motion-sensor glove: Data was read from a USB device, filtered based on some calibration input, then outputted as graphs and as MIDI to control music synthesizer software. We presented that later at school and got a little award for it.

After that, early 2006, I started as a Java programmer in Cologne, programming JSR-168 portlets for the IBM Websphere Portal platform. Around that time I also started working with jQuery, using it to implement some JavaScript helpers in some admin portlet, ala a “Check All” checkbox.

Somewhere around summer 2006 I started contributing tests to jQuery. I also worked on the testrunner itself, which later got dubbed QUnit, and worked for about half a year a lot on jQuery’s ajax module. During that time I also started various plugins, with the validation plugin being the only one I started from scratch – everything else were ports of existing plugins, where the original authors usually didn’t continue working on them.

Today I’m maintaining QUnit, the testing framework, sort-of consulting on jQuery core (mostly involved in roadmap planning and some other discussions, not so much contributing any code), maintaining my plugins and also working on jQuery UI.

2) What are the biggest challenges that jQuery development faces in the future?

Trying to appeal to an even bigger audience. jQuery today is extremely appealing to designers, as there are basically no sane alternatives for them – or are there any other [framework]fordesigners.com sites I’m not aware of? But there are plenty of alternatives for “complex applications”. The challenge here is mostly to make “complex application” less ambiguous – learning what those developers actually need when they use that term, and why they think jQuery doesn’t fit in these cases.

3) What jQuery implementations have impressed you from an application perspective?

The great thing about jQuery is that you can use it to fill the usability-gaps, making things a little better. The side-effect is that there isn’t any obvious “jQuery application” – most of the time, you won’t notice jQuery in action at all. A recent exception of that maybe quakelive.com, which doesn’t work without JavaScript at all, and therefore makes very heavy use of it, all based on jQuery. In this case its fine, as you need a system capable of rendering the Quake-browser-plugin anyway.

4) What is your favourite jQuery plugin and why?

I just implemented FancyBox as a lightbox implementation on a project – works well by default and is really beautiful.

The jQuery validation plugin is the one I recommend most of the time: It’s applicable for nearly every app, its well engineered and tested, already used by a lot of interesting sites, like newsweek.com or soundcloud.com.

5) What web/client tools do you use to manage your development lifecycles?

FirebugFirebug.

Also Eclipse with Aptana, Maven, and Subversive, XPlanner for Issue Tracking and Project Planning, Hudson as Integration Server, Maven for build and dependency management.

6) Have you been impressed by the recent releases of new browsers: Chrome, Safari 4, IE8, FF? Where do you see that world going?

New browsers are not that interesting when they are unable to push old browsers off the table. Safari 3 got mostly rid of Safari 1 and 2, which is great. But IE6 is still here to stay for another one or two years at least.

7) How difficult do you find having to support the older browsers, specifically IE 6? Would you take the decision to not support IE6 like some have recently (Instapaper for example)?

Not supporting IE6 very much depends on the type of application. If you decide to not support it anymore, assume that someone coming to your site with IE6 has no idea there even are other browsers or newer versions, and provide the necessary help for upgrading. Otherwise you are just letting people run against a wall – I can’t even convince my mother to use Firefox 3 instead of IE6.

8 ) What emerging web technologies are exciting you?

Bespin has some very interesting ideas, I especially like the idea of contributing to an open-source project without any effort on getting the project to checkout and compile on my local machine, instead just opening the editor on their site, testing my change on their integration server, and committing the result as a patch to a branch or ticket system.

9) Has the recent success of jQuery surprised you, or has it been a steady rise to fame?

After the release of jQuery 1.1, the jQuery core was pretty much done from my point of view. John (Resig – jQuery Author) managed to come up with all kinds of ideas for two great releases (1.2, 1.3). The 1.4 roadmap contains no real surprises, instead a bunch of solid improvements. On the other hand, the roadmap for jQuery UI contains over 50 components, thats a lot to tackle.

Overall, jQuery’s success seems to be result of very steady work from the team: producing code, and building a community by helping and evangelizing.

10) If you could give one tip to new jQuery developers, what would it be?

Even with jQuery making a lot of tasks trivial, get to learn some JavaScript basics. jQuery wraps the DOM API really well, but you can’t avoid working with the JavaScript language. I’m happy to help with the validation plugin, but I don’t want to repeat explaining why rules: { first-name: “required” } throws a syntax error (you have to quote “first-name”).

Tools to help you learn…

Learning jQuery 1.3

Learning jQuery 1.3

Amazon Kindle 2

Amazon Kindle 2

jQuery UI 1.6

jQuery UI 1.6

One Response to “10 Questions for Jörn Zaefferer”

  1. Great interview, especially point number 10. I’m pretty reliant on jQuery now and I know my javascript should be stronger. But it’s difficult to motivate yourself to re-learn all the tedious DOM stuff when jQuery is so nice to use. (And especially because it’s almost becoming the de facto standard!)

Leave a Reply