Do we need standards?
Posted: Thu Feb 08, 2007 11:17 pm
Standards seem beautiful. They offer guarantee of cooperation between standarized services. However I just read something interesting. Following a link from OSNews about an interview with LinuxBIOS' creator, http://fosdem.org/2007/interview/ronald+g+minnich, there is a question regarding OLPC, which there is a piece of info that stuns me (not about it's context, but rather the concept and it's application to the software world). "Because the system is open, OLPC can avoid using "standards" such as ACPI, which mainly exist to protect closed interfaces".
Now, what's intriguing is how this becomes a metaphor of OSS. Linux depandancy hell, multitude of open source code on the net, mostly incompatible, and lot's of code rewritting.
This strikes me at the same time I start to think that maybe bad is better. Examples are spread over the net in forums, rants, essays, etc. They mostly critique we are still using Unix (which obviously is old), X windows (which IMHO seems bloated with features few people use), x86 (and CISC in general) as bad designed ISA, etc.
At the same time we live in bloated code world, projects that try to address them often fail (COM as a possible example). I also read recently there was a wiki attempt at writting a novel, which seems to have failed (or was failing because of inconsistency).
But if the world is better without standards, why does it feel like we're playing lego with pebbles? It does seem wonderful that (for example) when we want a to use a network interface, we have a pool of libraries that abstract that for you with different performance, features and usability characteristics. What happens is mostly few of these libraries reach popularity and become somewhat standard. This is how it works in OSS world. We have Apache (standard web server), SQL (standard database), Linux (standard OS, after obviously Windows, but netherless I think BSDs have Linux compatibility layers...), X windows (standard graphics in Linux), etc.
What bothers me in the libraries example is that they basicly do the same thing. It's rewritten code. Wheel reinvention. Obviously they implement different features, in different ways, but it's the same basic thing. Couldn't they at least have a default interface so the USER (not the coder) could choose what implementaion he wants to use? (For example, he could choose between the safer and the faster).
Obviously different libraries expose different features. But shouldn't there always be the same features exposed? It is the same thing. Why hide something? Maybe hide it for useability, maintainablity, safety, whatever. But if there are stuff that aren't implemented, the user should choose to trap them (ie. it would be insecure) or simply redirect to another implementation which features such hidden feature from the standard implementation.
Web 2.0 seems to be gaining popularity. Why? Because it's simple for the user to use. It's not a standard by itself, but rather "common sense of the user". We have adapted to see the info on the net and use them. It's not like every new website (that gains popularity) is a revolution in web design. In general they have an advantage: they are formatted. It's a standard for our eyes and how we process information.
However it's a mess for a software to process that info. Programs could take advantage of the huge data base of information the net is. For example we could write a plugin to an email client that processes webmail sites and gathers your email to a local storage. However it's pratically impossible to decode AJAX, Flash animation, (D|X)HTML formatting to extract that info.
The point is, implementations vary, interfaces are what could be standarized. It's the end result that matters. And in this case it's the interface. However there are different tastes, different coding styles etc. Would standard interfaces break freedom? Is it the killer of the wierd art of diverse code OSS has become?
Would it be useful to have one project to rule them all? Have a central repository of interfaces? Community enhanced of course. But it seems there will be the need for killing some freedom on the way, for reasons similiar to why Wikipedia is having a new competitor that has it's info checked by editors and experts.
Sorry for long post. And rants. And bad english. Reminding this is an exageration of a personal view. Thanks for reading. If possible please post your thoughts.
JVFF
PS: Late night posting = bad idea...
Now, what's intriguing is how this becomes a metaphor of OSS. Linux depandancy hell, multitude of open source code on the net, mostly incompatible, and lot's of code rewritting.
This strikes me at the same time I start to think that maybe bad is better. Examples are spread over the net in forums, rants, essays, etc. They mostly critique we are still using Unix (which obviously is old), X windows (which IMHO seems bloated with features few people use), x86 (and CISC in general) as bad designed ISA, etc.
At the same time we live in bloated code world, projects that try to address them often fail (COM as a possible example). I also read recently there was a wiki attempt at writting a novel, which seems to have failed (or was failing because of inconsistency).
But if the world is better without standards, why does it feel like we're playing lego with pebbles? It does seem wonderful that (for example) when we want a to use a network interface, we have a pool of libraries that abstract that for you with different performance, features and usability characteristics. What happens is mostly few of these libraries reach popularity and become somewhat standard. This is how it works in OSS world. We have Apache (standard web server), SQL (standard database), Linux (standard OS, after obviously Windows, but netherless I think BSDs have Linux compatibility layers...), X windows (standard graphics in Linux), etc.
What bothers me in the libraries example is that they basicly do the same thing. It's rewritten code. Wheel reinvention. Obviously they implement different features, in different ways, but it's the same basic thing. Couldn't they at least have a default interface so the USER (not the coder) could choose what implementaion he wants to use? (For example, he could choose between the safer and the faster).
Obviously different libraries expose different features. But shouldn't there always be the same features exposed? It is the same thing. Why hide something? Maybe hide it for useability, maintainablity, safety, whatever. But if there are stuff that aren't implemented, the user should choose to trap them (ie. it would be insecure) or simply redirect to another implementation which features such hidden feature from the standard implementation.
Web 2.0 seems to be gaining popularity. Why? Because it's simple for the user to use. It's not a standard by itself, but rather "common sense of the user". We have adapted to see the info on the net and use them. It's not like every new website (that gains popularity) is a revolution in web design. In general they have an advantage: they are formatted. It's a standard for our eyes and how we process information.
However it's a mess for a software to process that info. Programs could take advantage of the huge data base of information the net is. For example we could write a plugin to an email client that processes webmail sites and gathers your email to a local storage. However it's pratically impossible to decode AJAX, Flash animation, (D|X)HTML formatting to extract that info.
The point is, implementations vary, interfaces are what could be standarized. It's the end result that matters. And in this case it's the interface. However there are different tastes, different coding styles etc. Would standard interfaces break freedom? Is it the killer of the wierd art of diverse code OSS has become?
Would it be useful to have one project to rule them all? Have a central repository of interfaces? Community enhanced of course. But it seems there will be the need for killing some freedom on the way, for reasons similiar to why Wikipedia is having a new competitor that has it's info checked by editors and experts.
Sorry for long post. And rants. And bad english. Reminding this is an exageration of a personal view. Thanks for reading. If possible please post your thoughts.
JVFF
PS: Late night posting = bad idea...