Posts Tagged ‘RIA’

Q&A With jQuery UI Release Manager Richard D. Worth

Friday, March 27th, 2009

f242401e6163745fcd773103f794f7feIf you haven’t seen it before, jQuery UI is an awesome layer to the already brilliant jQuery library enabling you to build great, intuitive and interactive Rich Internet Applications. In this Q&A session, Richard D. Worth – Release Manager with the jQuery UI project answers some questions about his early programming days and the future of jQuery UI.

Can you give me a brief history of your programming days? Where did it all start?

I started programming on an Apple ][e. Basic. Next was assembly on a 286. I was really into demos (if anyone remembers those). My older brothers got me started and we would program on whatever PC my dad upgraded to each year or two. Sometimes we'd even have two, so I'd get to play more freely on the older one. 386, 486. I remember the day we got a math co-processor. Oh, and the turbo button! I programmed in pascal, c, pov-ray, qbasic. What else was fun? BBSes, 1200 baud modem, nic.funet.fi, prodigy, compuserve, Mosaic 1.0. HTML. Ahhh. Thanks for the trip.

How did you get involved with jQuery UI? What's the story behind that?

About two years ago I found jQuery and got involved pretty quickly. I started answering questions on the mailing list, created the FAQ, set up http://planet.jquery.com/. After a couple months I heard news that a new version of Interface was being worked on, called jQuery UI, headed by Paul Bakaus. At the time I was working on a drag-and-drop tree (the reason I looked for and eventually found jQuery) and a table editor (where you could drag and select TDs, convert them to THs, merge and split cells, etc.). My first contribution to jQuery UI was some documentation and testing for drag and drop. It came pretty easily, because I was making use of them for both these plugins I needed. I had found an unequaled community in jQuery, and was excited about being a part of a new sub-community growing within it: jQuery UI.

What's next on your things to do list with jQuery UI?

Testing. Lots of test to be written. Static (markup) tests, visual (interactive) tests, unit tests. My eventual goal is full coverage, obviously. Lots to do yet. Also, I'm really anxious for TestSwarm.

Specifications. We've got a marvelous Development and Planning wiki now (http://wiki.jqueryui.com/). We're not just writing code when we have cool ideas. We're planning and designing. I'd like to see us get our specifications to a point where they're sufficient for all tests, code, and documentation to be written from them. Even for existing plugins in so-called "maintenance mode". At this point we're still doing a lot based on current implementation. That can take a lot of time and energy, and too often involves reverse engineering. Plus, it's hard to know what someone might be depending on, or foresee an unintended change. The code alone cannot speak for how a component should behave.

New development, perhaps. It's been a while since I've done any new development on jQuery UI. We've been quite focused as a team for the last 9 months on the 1.7 release. In the end it had only one new plugin, progressbar, and it's the simplest one by a long shot. Now that that's out and we're nearing 1.6 final and 1.7.2, we're taking a look toward 1.8, 1.9, and 2.0. We've got some exciting plugins in the works. I'm particularly interested in working on tree, grid, and menu.

How are you building in performance enhancements into jQuery UI - How do you approach that kind of work?

I did a bit early on. Paul did a lot more. I remember sitting down with selectables at one point. I created a page with like 1,000 items. I wanted to be able to drag the selectable lasso as quickly as possible and have all those items light up and down without a skip. I just kept working on it until the numbers got down. Profiling, refactoring, testing on different platforms. Rinse. Repeat.

Would you say that jQuery, jQuery UI, Mootools and other libraries are forming the basis for what will be the next generation of web applications for the next few years to come? I hesitate to say web 3.0... As the uptake of these gets greater and greater and the feature-set gets even better, the backbone of next generation apps is starting to form I believe. Do you see it that way or do you see a different journey for jQuery and jQuery UI?

I definitely see that. I'm not sure I had that vision when I started contributing to jQuery UI (I just needed a control or two). But it didn't take long. It's clear that Rich Internet Applications are a valuable and growing area of the web, and of software development in general. One of my personal goals, and I think I share it with the rest of the team, is to make Rich Internet Application development as elegantly simple as jQuery has made Ajax and the DOM.

What is it about programming that gives you the bug? Is it the need to solve problems? Or the satisfaction in being able to solve complex problems for example...

I absolutely love problem solving. I always have. I also like the artistic and creative design aspect of programming. For me, too, there's just something about being able to communicate effectively, powerfully even, in the same language with both humans and machines. Code speaks.

Now that IE8 is well and truly out there, what are your thoughts on the new browser? Any significant issues with jQuery UI?

I'm quite pleased with what we have in Internet Explorer 8. It's a great web browser. Will IE6 die tomorrow? Will IE8 be my principal development browser? No. But it's a great browser for all users, and it's finally got some decent development tools built-in. So, I'm happy. As far as issues with jQuery UI, no, I haven't seen anything yet. But we kept a pretty close eye on it through the betas.

What are your tools of choice to get the job done?

Notepad, UltraEdit, Firefox, Firebug, VirtualBox, TortoiseSVN

If you hadn't gotten involved with jQuery UI, what do you think you would be doing instead?

TortoiseGIT

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

Think and talk about the design. Don't just point at an existing plugin's source code, whether you wrote it or not. Dissect it, analyze it, rip it apart, compare it in detail with everything else out there. Do your homework. And then present what you find in such a way that others can benefit from all that effort.

Richard can be found on Twitter as @rworth, or via his blog at http://rdworth.org

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