myths of software "standards" (long)

this is an essay on some ideas that have been swimming around in my head about "software standards" and the various pervasive myths associated with them, unleashed on this motley crowd for your viewing pleasure or distaste. there is tremendous amount of angst and anguish spent on software standards by designers. I'm going to try to point out some of the ways that software standards are fundamentally different from hardware standards and the implications this has for their use. with a hardware standard, we are talking about "atom configurations". if a given computer is manufactured in a given way, there are zillions of standards that are implicit in the design. there is a standard in the way that cards interface to the bus, in the ways that chips fit in sockets, in screw sizes, component sizes (such as the power supply), etc. obviously it is virtually impossible to refit a component that does not adhere to some "physical configuration standard". if the power supply does not have the right footprint, good luck filing down the edges to the point that it fits. <g> another point to make about physical components is that it is possible to "own" them. in our system, we are even allowed ownership of the abstract standards used to design their atomic configurations; we call these things "patents". however, notice that software standards are sometimes thought of in the same way as hardware standards. I want to make a point about how fundamentally different they really are. == software standards ultimately govern the "configuration of bits". to borrow Negroponte's lovely distinction, bits are far different than atoms. foremost of the difference is what might be called the fundamental "malleability" or "fluidity" of bits in contrast to atoms. atoms are expensive to move around and to manipulate. bits can be moved around and manipulated at such an infinitesmal cost as to be almost free. here is the chief myth that I want to address, and I'm going to borrow web concepts here especially, because the public is misapplying the concepts of hardware and software standards especially in this area. now suppose that Netscape comes up with their own unique HTML "extensions" which they have done. if you want to think of this "standard" in the old paradigm of atoms that are expensive to move around etc., then what netscape has done is pretty outrageous. one might assert, as the press and public tend to do, that Netscape is trying to "own" the standard and "impose" it on the rest of the world, so that they can "control" it. but what is this "imposition"? if they were saying that particular hardware components had to be designed in their way, indeed this would be an onerous and suspicious demand. it would be reminiscent of industry outrages like IBM's "microchannel" architecture. but the fundamental distinction here is that Netscape is *not* designing a standard that refers to atoms, but one that refers to bits. and standards that refer to bits have fundamentally different properties. first of all, if they are good standards, then it should be easy to manipulate the bits between the different standards, and the cost of doing so should be close to negligible. we are only talking about straightforward algorithms easily implemented by even 1st year CS students, typically. when you think about it, the concept that a company can "own" a software standard in the way that hardware configurations are "owned" is pretty obtuse and incongruous. because bits are so readily converted and manipulated, it actually becomes the case that companies that create bit standards are almost doing a public service in devising orderly systems of bit arrangements not previously established. if bits are interchangeable, then the key is to get them into an orderly form first, and then just twiddle them into the format that you want. == all this sounds a bit vague and nebulous but is extremely significant. it demonstrates how radically different the information revolution is from the industrial revolution. in the information realm, "interchangeable parts" takes on a whole new meaning. all that is necessary is that the bits be in some standard form to start, and then they can easily be transformed into some other form. a very important point to make is this: what becomes more valuable with bits i s *not* that everyone pick and agree on *the*same*standard*. this is applying "atom" type prejudice to a new problem. if everyone wants to have compatible hardware, then indeed we need to have the kinds of standards I described. but software (bit) standards work differently. you only want to have *any* kind of a standard that is well designed. you want standards that are not necessarily *universal* as with atoms, but instead are *orderly*. if they are *orderly* or "well designed", then it should be easy to convert any "bit configuration" standard to any other standard on the fly with algorithms. there is tremendous ranting and raving in the Web world about how the HTML standard is fragmenting because of Netscape etc., and there is so much angst about trying to devise a *single* cohesive, unified standard that "everyone" follows. people talk as if Netscape is trying to "hijack" the standard, when in my opinion they are performing a valuable public service of trying to hammer the bits into useful form. everything they have proposed could not be handled by the earlier standards-- and if it could have been, chances are they would have used that standard. a unified standard in software realms is a total fantasy to achieve, and in my opinion the dramatically wrong & specious goal. == instead, I taking into account the above ideas, what we need are a *variety* of different standards, all of them in themselves cohesive and fully functional, which can be *translated* readily between each other. the key goal is not *unified* standards that try to entail "everything", but instead collections of complementary standards that are in themselves nice unified "pieces" of the whole. (somewhat like original Unix design philosophy). the various image formats such as DVI, postscript, TIFF, etc. is an example of this. they all are decent standards for what they attempt to standardize, and it is silly to lament that there isn't a single image standard-- it misses the point. (one tricky thing with bit standards is the goal of trying to go "backward" in converting a very complex format into a simpler format. trying to have text-based web browsers with all the complex images and formatting out there is an example of this.) in other words, some people seem to imagine that in the future some massive HTML language is going to be devised that all browsers support. many web design discussions seem to implicitly talk as if this is the goal. instead what I imagine is that many different substandards will be devised, and will *continue* to be devised-- the point when there is a global, unified "web formatting language" will *never* come and this is an illusionary, impossible, and *unnecessary* goal. what we need are browsers that are extremely flexible and can support on-the-fly translation between different formats, and which try to support the capability that at any time in the future, someone may come up with a new language that could drive browser formatting and display characteristics. the idea of having different layers over the network, such as "conversion servers" which might convert between all the more common formats and requests, is another interesting idea to pursue. netscape 2.0 "plugins" are a first step in this direction. imho, the web of the future is going to have not one but a *zillion* different languages describing all of the data that is out there. the goal should not be unification under a single standard, but of ease of conversion between existing standards that are modular and complete in themselves. in this view, the complementing (not competition) of different formatting languages is glorious and to be encouraged, not something to be dreaded, avoided, and stamped out. the diversity and "complementarity" is the key to the power. == I've been making all my points relative to the Web, but I think the ideas apply equally well to *computer*languages*. there are all kinds of silly holy wars fought over about what are the *best* computer languages, and everyone that designs a new language seems to be implicitly trying to incorporate the features of every other language in existence and then some, i.e. a new "unified" or "complete" or "ultimate" language (I recall a long flamewar out in the newsgroups between Stallman, espousing Lisp, and Wall Perl fanatics). to me this is all ridiculous, because in the future the goal will be the ability to *convert* between languages in automated ways, such that the same problem can be automatically reformulated in another form to gain its particular idiosyncrasies. imho, new computer languages are going to be invented as long as human beings exist-- because what they really are is a "component library". for example, C is very low level but fast-- why can't I just convert my Perl code directly into C whenever I want to? or vice versa? in fact that is exactly what a compiler does, and I am suggesting that the compilers of the future will allow conversions between all kinds of languages, not merely a high level language to machine code. in this sense the idea of fighting over different languages as "ultimate" is ridiculous as the religious wars over who is the "one true god"!! all algorithms are in principle interchangeable, and I believe this theoretical concept will be increasingly applied directly in the future. == anyway, this is my contribution-of-the-moment in trying to dispel some of the "standards myths" that are extremely persistent out there esp. in regard to Web software and language extensions.

there is tremendous ranting and raving in the Web world about how the HTML standard is fragmenting because of Netscape etc., and there is so much angst about trying to devise a *single* cohesive, unified standard that "everyone" follows. people talk as if Netscape is trying to "hijack" the standard, when in my opinion they are performing a valuable public service of trying to hammer the bits into useful form. everything they have proposed could not be handled by the earlier standards-- and if it could have been, chances are they would have used that standard.
Sure, the Netscape extensions are nice. And it's nice to have an operating system (M$-DOG) pre-installed on every hard drive. But Net$cape, like M$, was trying to esablish a dominant "follow-us-or-die" position in the industry. Yes, the Net$cape extensions allow people to do stuff that they wouldn't otherwise be able to do. But, the extensions *could have* been implemented in such a way that using them wouldn't be detrimental to non-Net$cape browsers. Instead, they've altered the World Wide Web in such a way that it can only be viewed "correctly" with Net$cape. The rest of your post was quite interesting. I *do* think it would be good to have multiple, interchangeable formats like we do for graphics. What we really need to make that happen are DETAILED SPECIFICATIONS.

SR:
Sure, the Netscape extensions are nice. And it's nice to have an operating system (M$-DOG) pre-installed on every hard drive. But Net$cape, like M$, was trying to esablish a dominant "follow-us-or-die" position in the industry.
that was exactly the view I was trying to discredit us in my post. did Netscape protect their creations with patents? no. what did they do that prevents other browsers from immediately latching onto their keywords?? we are talking about *bits*!!! oh, do they have too much PRIDE or something to use an idea that somebody else innovated? I think in all this ranting is lost the basic fact that Netscape did what they did to be *innovative* and this innovation is what is driving the net. can you indicate to me why or how they were trying to squelch competition? what kind of squelching is possible in a world where the next version of anybody's software can immediately incorporate their own features?
Yes, the Net$cape extensions allow people to do stuff that they wouldn't otherwise be able to do. But, the extensions *could have* been implemented in such a way that using them wouldn't be detrimental to non-Net$cape browsers.
you seem to be suggesting that they intentionally tried to screw up non-netscape browsers, which I find laughable.
Instead, they've altered the World Wide Web in such a way that it can only be viewed "correctly" with Net$cape.
this was by the choice of people who wrote web pages, who made the collective decision to follow netscape. you are not criticizing netscape, you see, you are simultaneously criticizing every person who has made the decision to go with their standard. which is a rather unenlightened way to look at the way that standards on the internet work, imho-- they are not "handed down by anyone". netscape could have been roundly ignored, and a zillion standards die every year for this reason. but netscape made a positive contribution, and this is reflected in the agreement of every person who voluntarily, under total free will and no coercion, picked their standard. can you tell me how netscape twisted a single person's arm to put netscape tags in their web pages?

Sure, the Netscape extensions are nice. And it's nice to have an operating system (M$-DOG) pre-installed on every hard drive. But Net$cape, like M$, was trying to esablish a dominant "follow-us-or-die" position in the industry.
that was exactly the view I was trying to discredit us in my post. did Netscape protect their creations with patents? no. what did they
Of course not. If they "protected" their creations with patents, a lot of people would be less likely to use them. If the Net$cape extensions weren't used, everything would look fine on other browsers and there would be no pressure on the remaining non-netscape users (25%?) to switch to Net$cape.
why or how they were trying to squelch competition? what kind of squelching is possible in a world where the next version of anybody's software can immediately incorporate their own features?
The "Why" can be answered very easily: $$$. Netscape is not some not-for-profit thing like PGP, Netscape is a COMMERCIAL CORPORATION. Keep that in mind while I explain the "How"...... I think it is not unlike what Micro$oft did in the early 80s... They put out a good OS (it was considered good at that time) and sold it really cheap, and they obtained a large market share. Since they had such a large market share, most of the software developers wrote for M$-DOS. Since practically everyone was writing for MS-DOS, the public bought MS-DOS. Other OS developers could write M$-DOS clones, but they would be just that- clones. They would have no reason to write in new features, since very few people would be bold enough to write software that wouldn't run on M$-DOS. The OS makers would be condemned to forever follow Micro$oft and try to maintain compatability. To this day, the mass market still centers around the MS operating system. With Netscape, it was similar... They put out a good browser (And I'm not arguing there- IMHO it's the best browser currently available) for really cheap, for many people it was even Free. They've obtained a large market share. Since they have such a large market share, everyone writes web pages for Net$cape. Since there are now so many "Get Netscape!" web pages, even more people are switching to Netscape. Sure, other browsers could add their own extensions, but if they won't work on Net$scape, nobody will use them. And every non-net$cape browser will be OBSOLETE as soon as the next version of net$cape comes along with it's new extensions.
picked their standard. can you tell me how netscape twisted a single person's arm to put netscape tags in their web pages?
No arm twisting was necessary, once Net$scape had their large market share. Just as there was no arm twisting to get people to write software for MS-DOS and Windoze. Once a software company has a large enough market share that they can define the standards for everyone else, they are extremely difficult to "de-throne". At least Net$cape isn't abandoning the *official* HTML standards. Before I sign off, I will say that Netscape is a good browser. It may well be that they simply created the extensions to make the WWW better. But, since Netscape *IS* a commercial company, I tend to believe that they did it to ensure their own profits. Really, there is no Real Proof either way, so this tends to be a rather controversial (and opinionated) topic. Some good might yet come from this... If Netscape and Microsoft start battling over the "Web As An Operating System" market, Net$cape and Micro$oft might chip away at each other enough to let the smaller companies catch up. (Wishfull Thinking) I guess this is kinda off the topic of the Cypherpunks list... I think we should just "agree that we disagree" and let the matter be. ======================================== [This email signatu r e file is best viewed with the FooBar Mailer Program] ======================================== ;)
participants (2)
-
Steve Reid
-
Vladimir Z. Nuri