Previous Table of Contents Next


Avoid “Only Works in Client X”

A final bit of advice is this: Don’t lock yourself into a single browser, either by accident or on purpose. There are a lot of browsers out there. Probably neither Netscape nor Microsoft will wipe the other one completely off the face of the earth. And humble Lynx, the text-only browser used on a lot of non-graphical systems, will probably remain the browser of choice for the visually impaired, people with very low-bandwidth connections, and other special applications.

New browsers will be showing up, too. PC Week recently said “Look out, Netscape: Tests of a beta version of Oracle Corp.’s PowerBrowser show the company is taking dead aim at the dominant World-Wide Web browser with a free offering loaded with features that are unavailable or cost more from Netscape Communications Corp.” No one knows yet how that product will do, but the point is that new browsers will come out all the time. If you lock your data into one, you’ll just have to re-author it again and again.

How do you avoid locking in? In the HTML-only world, the only way is to always know what elements are really “in” the official DTD versus what ones are somebody’s extensions. For the extensions, you need to know exactly who supports them (and if more than one browser supports tag X, you also need to figure out whether they all support it the same way!).

With generic SGML, you’re a bit safer; creating new element types is a normal, everyday event that all generic SGML products expect and support. Maybe something really unusual will come in once in a while that requires everyone to add a new gadget to support it. But this is a rare event compared to adding a new tag that has behavior somewhat similar to others.

If you want your data to last, think hard before giving in to the temptation to be the first one to use the latest HTML extension. If some browser vendor introduces a new tag in a beta, you can find yourself having to re-author all your data when they drop or change it in the real released version. Of course, everybody who’s using another browser will have problems when they try to read your data. On the other hand, you sure don’t want to be the last to adopt a new thing either.

The trick is all in the timing, just like when you’re signing up for a mortgage or playing the stock market. If you dive in too early, you’re taking a risk on ideas that may not pan out (they may even be great ideas that just don’t happen to catch on, or aren’t profitable enough to hang on). But if you wait too long, you miss the chance to be on the cutting edge and do the most interesting things.

Too much hurry to adopt the very latest new feature may end up making you do more work. Next month, someone may look at the idea and find an easier way to do the same thing. One recent example was with Netscape Frames. When they first came out, the only way to take advantage of them was to laboriously re-mark-up all your data to do so. That is, you had to go around and insert <FRAME> everywhere (this usually meant a lot of rewriting, too, since people hadn’t divided their files up to accommodate multiple frames in the first place). Then, within a few weeks, one company came out with a server that could take SGML files and generate multi-frame views of them on demand, just by setting up a few options—without touching the data at all.

With stories like that, the win really lies in carefully balancing, and learning enough to guess, a good percentage of the time, where things will go. Here again, SGML helps since it destroys the limiting idea that there’s “the” single set of tags. If you set up your data at this more abstract level, you partly insulate yourself from short-term variations, and your data can quickly adjust to make use of all the latest new technologies as they appear.

From Here…

This chapter has covered several issues involved in using SGML effectively on the Web. These include the different standards involved, from MIME types to HyTime. They also include techniques you can use to make your data more interesting, better presented, and more useful to networked readers.

For more information, refer to the following:

  Chapter 17, “How HTML Relates to SGML,” covers some basic related topics.
  Chapter 21, “Integrating SGML and HTML Environments,” gives many examples of how SGML is being used on the Internet already.


Previous Table of Contents Next