Page 1 of 1

Do we need standards?

Posted: Thu Feb 08, 2007 11:17 pm
by jvff
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...

Re: Do we need standards?

Posted: Thu Feb 08, 2007 11:52 pm
by Solar
jvff wrote:"Because the system is open, OLPC can avoid using "standards" such as ACPI, which mainly exist to protect closed interfaces".
OLPC is another standard, just different. ;)
Web 2.0 seems to be gaining popularity. Why?
Media hype. I still use the same WWW, no upgrade here. "Web 2.0" is simply a buzzword for websites that aren't as static as they used to be. Now they are hyping "Web 3.0" for websites that are even less static, but hey, after all I'm looking for developer feedback and specs data, and I got that from Usenet already... (what was that, Web 0.1?)
Would it be useful to have one project to rule them all?
Same answer as to "would it be useful to write one community OS instead of individual ones": Nope. The best standards are those that arise after diversity has been tried (e.g., C, C++), because they only get better over time. The other side are "standards" that came from individual bodies without much previous experience (Java), which tend to get fuzzy over time. (Look out for .NET 4.0...)

Re: Do we need standards?

Posted: Fri Feb 09, 2007 1:10 am
by Brendan
Hi,
Solar wrote:OLPC is another standard, just different. ;)
I think that is both the problem and the solution - so many different standards that you need to create a new standard to get anything worthwhile done... ;-)


Cheers,

Brendan

Posted: Fri Feb 09, 2007 11:15 am
by jvff
Exactly. OLPC may be a "standard", but it breaks all other standards. Solution: create more standards?

The thing about Java and .NET (IMHO) is that they aren't community driven (at least not as much as it should be) and possibly their implementation speed. Other than that, Java and .NET are a success story. What I personally think is missing from them is a way to incorporate user projects/classes/extensions into it in a standarized (ie. official way). 3rd party classes often break standards (ie. they are 3rd party), and fall back to the metaphor on the initial post.

JVFF

Posted: Fri Feb 09, 2007 7:39 pm
by bubach
try "web 2.0" without javascript enabled and it's more like web 0.1 beta. :lol: