3 ms·
> Oh, it's now a reference implementation... since when?! For any software that embodies an open and formally-specified protocol (in this case, the protocol is
by derefr 4y ago
> Oh, it's now a reference implementation... since when?!
For any software that embodies an open and formally-specified protocol (in this case, the protocol is ActivityPub), any first implementation of it is a reference implementation (as opposed to a defining implementation), because at any point someone else can create another implementation, and then both implementations will have to deal with adhering to the standard, rather than either being able to bully the other into implementing things a certain way. It's not about whether anyone else has implemented a second client for the standard; it's just about whether they can, and what would happen if they did.
Examples of things that are reference implementations of open protocols/formats, where the protocol/format "came from" the reference implementation but then became its own thing, with other implementations: Memcached, Redis, IPFS; PNG, OpenDocument.
Example of something that's not a "reference implementation of an open protocol", despite seeming like it: Amazon S3. There are many other "S3-compatible" servers; but there's no open, formalized standard for what "S3 compatibility" means; and so Amazon can change S3's API at any time, and everyone else will just have to deal with that. (They won't — it's been the same stable API forever — but they could. And what they can do is the point here.)