Would you like fries with that Standard ?
– Ash on 19 June 1998
Standards have got a bad rap with jokes like: The nice thing about standards is that there are so many of them. Then, there is an issue of Open standards, market-defined standards and coffee standards. On a serious note, Standards are blamed for slowing down innovation. This is the time to have a standard for setting Standards.
For example, If I want to design the next generation Holodeck. The Holodeck should accept smart cards, download content from a remote server, access a profile database, talk to another Holodeck, etc. Let’s say the Holodeck want to access data. Let’s use OLEDB, but then a Java holodeck character cannot access it. Using JDBC will prevent COM holodeck characters from accessing the data. If my character uses an Intention based language then tough luck.
2. The Problem
The main problem with setting standards seems to be that designers think it is OK to tightly couple one standard to another. For example, OLEDB depends on COM and JDBC depends on Java. This is bad design. Beside Java and COM, many environments, existing and future require access to data. Why on earth should my fancy new holodeck be tied to COM, Java or CORBA?
Don’t get me wrong, A standard for data access is a good thing. Much better than if every application did it their own way. Tying standards together is the main problem. It is what slows innovation down and it is the real problem.
3. How would de-coupling help ?
Splitting the Data Access standard into two parts: The actual standard and the corresponding Language IDLs. This allows my holodeck designer to plug his Intention based IDL into the Data Access standard. Talk about reuse! 4. Would this model work ?
This model does work. It works in over 100 million computers and is known as web, which uses HTTP, HTML, etc. The best think out HTML and HTTP is that the are not coupled together. You can use HTTP to get XML, Images, or any other files you want. As a matter of fact, using CGI you can send anything back. HTML does not depend on HTTP. You can send HTML via Email, use it for local files or for your desktop display. Two simple standards, when used together prove that combinations are better than the sum of their parts.
5. That a bad analogy. HTML and HTTP do different things.
But the W3C designers realized that would be a bad standard. They instead created a DOM group to create a Document Object Model standard. DOM is the good standard.
6. How does DOM support multiple languages?
8. The WDM driver
9. The Java API of the month
Java shows great promise as a cross-platform language that can glue diverse systems together. Its VM allows the same byte code to be executed across different platforms, without re-compiling. The problem with Java is that Sun is trying to make it do multiple things. Java Card, JDBC, Java Media, Jsomething, etc. All of them tied to Java. We need open standards, but we don’t need to tie them to one language. What Sun needs to do is to define the Java IDL to a particular open standard. If none exist, then work with the related industry group and define it.
10. Why Microsoft, Sun and others will have to do this
The most popular application on the PC is the browser. The main reason behind this is that it supports true standards, which are not inter-dependent to each other. That way a consistent cross platform implementation can be achieved. Browsers would never become popular if they had to be written only in Java or has to use the Windows API. In fact, the first browser was written on the Next platform using Objective-C. Internet protocols for Email are popular for the same reason. If scheduling protocols were open, we would see a lot more people using online calendars. More people means more revenue for companies. Support for HTML/XML in Word 9.0 will be worth its upgrade price. It is a serious problem for a $200 billion company, if only a minuscule percentage of users upgrade.
11. How does this concern me anyway? I don’t write shrink-wrapped software?
One of the complexities of client-server projects was that business logic and the remote plumbing, was tied together in one standard. This was one of the reasons for failure. One reason for Perl CGI scripts became so popular was that the web server CGI mechanism handled the remote plumbing and the business logic was handled in the Perl scripts. Just separating the two earlier coupled standard into different standards, made web client server a lot simpler and the success rates for projects went up significantly.
In the next few years, millions of new devices will come in the market. They need to communicate with each other and the old PCs. Microsoft, Sun and others cannot depend on COM or Java to solve this problem. We need true standards, which are not tied to other standards. Forcing Java or Windows into every Holodeck does not make sense. It makes no sense to make stereos, digital TVs, microwave ovens to talk Java, Windows, XML, etc. No microwave oven vendor is going to support both OLE-DB and JDBC to talk to a user profile database. It is a matter of common sense.
The W3C is the organization that sets the Web standards. Microsoft, Intel and Compaq came out with the Virtual Interface (VI) Architecture, which is OS and processor independent. XML vocabularies are a great way to have true standards.