13
votes
Open Standards Are Simple
(I am not directly posting as a link, as I have originally shared this over Gemini, which I don't think a majority of the people here have a client for, and directly linking to a proxy just seemed weird to me. So here are both the original and proxied links for people to choose between)
gemini://ebc.li/posts/open-standards-are-simple.gmi (HTTP Proxy)
Good point with regard to Matrix. I recently tried to get into it recently but the reference server is a gigantic, bloated, and resource intensive piece of software, while none of the other implementations can federate with the reference implementation. I was left with the firm impression that a lot of work is needed to get the protocol/platform into a truly usable and user-friendly state.
P.S. nice to see some gemini links on Tildes :-)
What a wonderful thing, this morning, to log on to Tildes and see something from geminispace pop up on here! It's great because you're absolutely right, over-complicated standards are everywhere and they have all the problems you describe. I've hesitated using Matrix for exactly those reasons, for example. It's one thing I really like about gemini as a protocol, is that everyone involved is really concerned with keeping it simple.
It's been decades since "open" was watered down until it became a meaningless buzzword. This happened during the Unix wars. This article's premise might be more accurately stated as "If you want many competing open source implementations, a standard should be simple."
That's certainly a worthy goal and I do like what Gemini is trying to do.
However, I also think the claim is stated too strongly, because it's easy to come up with exceptions. Some examples include audio and video codecs, the Samba and WINE projects, and game emulators. In hardware there are clones of Arduino boards. A major difference is that the thing being emulated isn't changing, so if it takes multiple years to make an alternative then it will still be useful in the end. When there is a high enough incentive, you do get compatible implementations even when the original vendor didn't want it and the thing being cloned is pretty complicated.
The web and other examples in the article are huge and fast-moving, and good implementations are available for free, making it difficult to justify the effort.
Audio and video codecs you wouldn't neccessarily want competition (for a given codec), just consolidated open development without patent encumbrance. But having a common, simple interface to use them via other tools would be useful.
The rest are really just reverse-engineering existing standards and not creating their own. Again a space where multiple implementations probably hurts more than helps, especially for Wine.
But simple standards for protocols and documents is important. Look at how markdown is taking over a lot of other spaces. By keeping the standard simple, it makes implementation easier.
A 'next gen web' would be much easier to implement if it shed the HTML+Javascript+CSS baggage in favor of something simpler which is both harder to implement 'wrong' and take control of display rendering away from site owners and back to users.
I agree that developing new standards is important, and I like to see them simple and hard to screw up.
But the article is a bit different, as it's defining everything else away, and I think that's too strong. De-facto standards are also real, useful, and important. They are sometimes a pain to deal with, but the results may be worth it.
Sometimes the line is a bit blurry. There are standards for SQL, but in practice it's defined by what databases support, and there is a lot of variation. There are lots of variations in markdown support too. Standards can be vague with a lot of unspecified behavior that's still very important.
The place where you really want clear standards with multiple implementations (and test suites for compliance) is for interop between different languages. It's not always practical for a language to use a C implementation for JSON, for example, as this can prevent important optimizations.