he Web has changed software development forever, and it doesn't take a prophet to know that this trend will continue. Even now, client/server and object-oriented programmers are tripping over basic differences between the old computing paradigm and the new Web paradigm.
As more and more sophisticated applications move online, the Web is no longer just a place for simple, static Web sites. As such, it's time for software developers who haven't yet mastered Web development to take a serious look at the most common stumbling blocks.
Clashing with Client/Server
The software industry has always been fond of pitting one development technique against another. Nowadays, one interesting debate is between supporters of client/server development and Web development.
Web proponents sometimes claim client/server is dead; client/server users see glaring weaknesses in the Web paradigm. The answer to this debate lies somewhere between the two extremes. The Web paradigm is useful for certain types of applications, but its inherent shortcomings and difficulties will cause many client/server applications that migrated to the Web to return to the client/server paradigm or to move to a hybrid that draws upon both.
When the industry first began to look at dynamic Web development, they saw the HTML output and assumed Web development was limited to providing changing text to viewers. Before long, however, developers realized the full potential of the technology; they could write applications that interacted with databases at the back end, and use a Web browser as a standard GUI at the front end. The age-old problem of teaching people to use a GUI would disappear because any computer ownerand, therefore, any potential software purchaserknows how to use a Web browser.
It appeared at this point that client/server was in trouble. After all, every client/server application has a learning curve, and often a very steep one, because people must learn to use a proprietary client before they can put the application to full use. When companies realized they could deliver applications with a standard GUI that everyone already knew how to use, they flocked to the Web. Web-based applications offer additional benefits: they give developers the ability to update software in one placethe serverand rather than mail out updates, they streamline maintenance, and they increase the portability of applications. However, Web development isn't a "silver bullet" solution, and client/server still has a valuable place in software development.
When Objects Won't Do
Like general client/server applications, object-oriented languages are here to stay. But they'll share time and vie for attention with Web-based applications. It is only natural that developers will look at these two approaches and examine howor ifthey can be used in concert.
A closer examination of these approaches reveals that there are some fundamental conflicts between object-oriented programming and Web developmentconflicts that can be solved, ironically, by looking backwards to pre-OOP programming techniques such as those used in FORTRAN.
At my company, Parasoft, we set out to build a dynamic, consumer-oriented Web site, and we quickly experienced many of these drawbacks of the Web approach first-hand. The following are some of the main lessons we learned.