Tuesday, December 16, 2003

Open source, standards and integration

Why do people speak the same language across wide areas such as France or Russia ? Why do I write this in English while I'm a native french specker ? Easy answer: because people need to communicate.

Information is nothing without communication. For example, disconnected computers are great but the Internet extended their domain of application in a dramatic way. The information society is really a information and communication society.

To communicate we need standards.

In the open source world, in a truly distributed fashion, everybody does what he wants to do. But for an open-source to become successful, it has to follow existing standards. Standards are an absolute requirement for successful open-source projects.

Let's consider some successful open-source projects:

  • the Linux kernel had well defined standards to build upon (POSIX).

  • GCC had ANSI C

  • Emacs and Vi had ASCII

  • GIMP had JPEG and PNG.

  • Apache had HTTP.

  • Tomcat had serlvets and JSP specifications.

  • MySQL and PostgreSQL had SQL

  • OpenOffice can manipulate MS Office 97 file formats (the de facto office file standard)

  • Mozilla had HTML, CSS, DOM and ECMAscript

  • GNOME and KDE had the Windows UI look-and-feel (eg. taskbar, keyboard shortcuts, minimize, maximize and close buttons in the upper-right corner of windows). But this is not sufficient. What about backend desktop technologies ? The freedesktop.org initiative tries to fill this gap. Freedesktop.org is the best thing that happened to desktop linux since the begginings of linux on the desktop.



Some project are even fully dedicated to the creation of standards: freedsektop.org, xiph.org, matroska.org.

Problems arrise when there is no real standards (see the state of the office suite market) or when people do not follow existing standards (see the browser war vs. W3C standards and ECMAscript standard).

Last point about standards: I believe that a bad standard is always better than a well designed but ad-hoc alternative. See the qwerty keyboard layout vs Dvorak: Qwerty is a bad design, but a widely accepted standard. Conclusion: do not enforce ad-hoc design on users. Never under estimate the cost of changing what people know.

Freedom to use and share source code is important, but (royalty free) standards are equally important for an open information society.

Integration

Open source has a disadvantage compared to close source: enforcement and integration.

Consider the proprietary way of things: there is only one hierarchical organisation. Developers do what their boss tell them to do. Duplication of effort is limited and concurrent projects are accepted only at the drawing board stage. Hence they have a consistent and well integrated stack of applications that people can install and manage easily.

In the open source world, in a truly distributed fashion, everybody does what he wants to do.

Inside a single project, if you want to be constructive and avoid forking you need:

  • to build a consensus.

  • a charimatic benevolent dictator (eg. Linus) who ultimately choose what goes in or not without pissing people off too much.



But when you want to provide a complete solution, you need to integrate the work of all those diseminated projects.

Solutions:


  • You need integration projects (distributions).

  • and you need INTEGRATION STANDARDS



Conclusion: there is an bad need for integration standards. The LSB, freedesktop.org, the GNOME HIG initiatives are heading in the right direction. hopefully, we'll see more of that in the future.

0 Comments:

Post a Comment

<< Home