Welcome Guest. | Log In| Register | Membership Benefits
InformationWeek Labs

March 8, 1999

Tougher Website Coding

New versions of Communicator and Internet Explorer make "Write once, run anywhere" even harder to do
By Jason Levitt

Related links from our sister publications:
  • Windows Magazine Inside Internet Explorer 5.0

  • Windows Magazine Browsing A Revolution

  • Netscape's Communicator 5.0 and Microsoft's Internet Explorer 5.0 promise the latest World Wide Web Consortium innovations, as well as more robust Java implementations and developer APIs, but what does that mean for developers?

    It's already tedious to develop Web applications that can accommodate all the different Web browsers on various platforms. Ultimately, adding new programming features to browsers means little until there's a critical mass of users behind them--and that's not happening very fast these days. To compound matters, the growing diversity of devices that are potential platforms for Web applications, including cell phones and other handheld devices, makes it almost impossible to guarantee the same user experience, or even a minimal common level of function for every user. Still, developers are finding ways to cope.

    For designers such as Tim Gasperak, a user-experience architect for Human Code (www.humancode.com), it means juggling the disparate elements of the Web-browser development environment and coming up with the best solution for the task at hand. That solution, despite what Netscape's and Microsoft's marketing departments might tell you, doesn't always make use of the most sophisticated features of their Web browsers.

    "People are expecting online applications to act like the applications on their desktop PCs," Gasperak says. "Unfortunately, Web browsers aren't the standard applications we'd like them to be."

    Even Microsoft's and Netscape's latest browser offerings often don't suffice for Internet applications that require reliable and powerful data handling. Gasperak says companies come seeking turnkey solutions for complex Web applications. They want their users to have robust tools, but they also want the applications to manage the back-office system--inventories, channels, etc.

    Typically, Gasperak says, these types of solutions involve developing standalone applications that work in tandem with a Web browser because they can't rely on the browser to provide what they need.

    Public Web Development
    Developing specific business solutions is one thing; building a high-volume Web site is quite another. Here, you must take into account the various operating systems and browser types. From an application-design perspective, the brains of the application is put, as much as possible, on the server; the emphasis on the browser's graphical user interface is to ensure that feedback and expectations are met visually and simply.

    High-volume retail sites such as Amazon.com must be as accessible as possible while still providing some GUI richness. That means developing at least a two-level Web site--but more likely a three-level site, in which each level services a class of Web browser.

    The three levels of coding cover the broad spectrum of available browsers, from personal digital assistants to the newer versions of Internet Explorer and Communicator. The disparity of features is a great source of concern for developers. Those who write applications using Dynamic HTML for Internet Explorer 4.x and Communicator 4.x are typically faced with writing either two sets of code (one using Netscape's Layers, the other using Internet Explorer's CSS1) or going back to the lowest common denominator (not using Dynamic HTML).

    Despite the cross-platform difficulties of developing GUIs using Web browsers, the rise in popularity of the DHTML-capable Communicator and Internet Explorer 4.0 browsers is making DHTML more viable for some complex applications. Media-rich applications that make extensive use of sound and animation can often be developed much more quickly using DHTML or a plug-in such as Macromedia's Shockwave or Flash. But plug-ins are still problematic. "The bottom line is you can never really detect the browser plug-ins all the time," says Patrick Curry, a Web developer for Frog Design (www.frogdesign.com).

    Curry has found developing useful Net applications using browser technologies usually requires some nonportable code. "For any really serious Internet application that needs to act more like a traditional desktop application," he says, "you're going to have to accept 10% to 20% of platform-dependent code just for the grout around the edges." On the Windows side, that means ActiveX, which is easier to use for tasks such as capturing the mouse cursor or popping up a custom dialog box. For Mac OS, where ActiveX has little support, platform-dependent code might be written as a C++ app that interfaces via a Java applet that uses Java Native Interface.

    Web-Site Construction
    Back when Web browsers had simpler feature sets, Netscape and Microsoft would introduce new features in browsers that would "degrade gracefully" (they wouldn't show up) when viewed by olderbrowsers. Inline Web-page coding has become too complex to do any more, except in the simplest cases. Now, you must maintain separate sets of pages and use JavaScript to redirect users to the appropriate set for their specific browsers.

    Another method is to dynamically generate pages using a server-side database or technology, such as Microsoft's Active Server Pages. Hopefully, future approaches will offer more sensible Web-page development methods. Says Mason Hale, chief technologist at Frog Design, "DHTML or something like that, as opposed to Java or ActiveX, is the right model. It works as a sort of glue between the presentation and the logic on the Web page." Taking a clue from good object-oriented programming practices, by separating the semantics of the Web-page code from the content, will make it much easier to maintain and extend complex Internet applications.

    Extensible Markup Language does this by having a separate Data Type Definition file that defines the meaning of the tags within the page containing XML. With the right standards in place, XML could eventually clean up some of the lazy coding practices that are becoming commonplace with HTML and scripting systems such as Active Server Pages.

    For now, though, Web developers are stuck with a mixture of browsers across various platforms that make application development tedious. Strict adherence to standards helps developers, but it remains to be seen whether Microsoft and Netscape are committed to delivering all the key standards in their future browsers.


    Back to Labs

    Send Us Your Feedback

    Top of the Page
    CAREER CENTER
    Ready to take that job and shove it?



    TechCareers

    SEARCH
    Function:

    Keyword(s):

    State:
    SPONSOR
    RECENT JOB POSTINGS
    CAREER NEWS
    Go beyond Google and get vertical. These specialized search sites will help you find the business information you need -- fast.

    Ari Balogh was named to the post of chief technology officer as the companys for a "realignment" of employees.



    Specialty Resources

    Featured Microsite