Bob Buffone was involved with Rich Internet Applications before they were called Rich Internet Applications. For a long time, he has been interested in the performance issues that can challenge the creators of Web applications.
As chief architect at Web client development tool maker Nexaweb Technology, Buffone is often called upon to help customers solve newly emerging Ajax performance issues. He discussed those matters last month at The Ajax Experience conference in Boston.
After listening to Buffone, at least one conclusion that can be made is that some Ajax performance issues are similar to those found in server-side object-oriented development. To avoid pitfalls, developers have to go back to basics, yet again.
In general, in using an operator, "it should be very particular to what you want to accomplish," Buffone said. "Simple objects are always faster."
We spoke with Buffone after his session on performance tuning Ajax applications.
Q: On some level in terms of performance issues for Ajax it seems the "gotchas" are similar to object software issues that predate Ajax. As you have pointed out, simple objects are faster than complex ones. And data access is an issue.
A: Yes, well you know this is an interesting thing I struggle with all the time. The issues are kind of the same as back in 1996 or 1998 when you had very limited processors and you were trying to do lots of stuff in C++ and MFC or whatever. You would run into the same kind of issues.
I just think the methodology that people have taken is kind of a hack-and-attack mode, not really starting with a structure and understanding the basic concepts.
Q: Even in the early Web days, teams would test out to different browsers, but in some places they got away from that.
So what ends up happening, and this is a trap everybody falls in, people use FireFox and Opera to develop their applications, and their applications run really great, but most of the world is using IE 6 and IE 7. You have to be really diligent. You have to understand how things run on the different browsers and take a function-by-function look at things.
When I first started -- maybe it was just the environment I came up in -- people were very diligent about looking at the code and doing code reviews and making sure that in each line of each iterator your looping over-stop was constructed in the right way. And that has been lost in the last few years.
Q Well the hardware was getting faster …