All the protocols
2020-11-17DISCLAIMER 2023-09-15: I don't hold this opinion anymore, HOWEVER, my current opinion is still quite close. Getting an actual RFC to the IETF is really hard and only a very big project can really hope to accomplish it. I still haven't been to an RFC meeting because I no longer think that I need to. I've had a look at some notes from them and they seem kind of interesting but definitely not mandatory for every protocol developer like I portrayed them here. If you're working on a project with a client and server component, you absolutely should document and publicise the protocol to allow people to write third party clients/servers.
Yes, I have given up on writing shorter posts, I'll stick to one long post a year.
There are nowhere near as many protocols as there should be. When I'm writing this there are 8944 RFCs in the IETF RFC index, which is pitiful for how much the internet is doing. There aren't enough RFCs because obviously no company producing a proprietary protocol is going to make it available to the world with an RFC, but open source developers largely don't seem to be bothering either.
If you are making an open source project that communicates over the internet to do something, for example a whiteboard for groups collaberating on something, then either use an existing RFC or make a new one. Otherwise someone else will come along with their open source client that does the same thing, and the two won't be able to communicate. Open source protocols are pointless if they aren't standardised.
RFCs can seem scary, but I've read quite a few now and they're not that bad. Having an RFC for your protocol also helps contributors to your project learn how it works, which is great since documentation is also far too often lacking in open source projects.
I once set myself a goal of submitting code to something I actually use and getting it accepted, and I eventually got round to having a very small contribution to vim. I'm now going to work on contributing to an RFC. Not necessarily one I use, just any of them.
Hopefully this rant doesn't make me a hypocrite as someone who's never been to an IETF meeting, but I'll fix that soon enough, and I'd encourage you to do the same.
Feel free to email shtanton at -this domain- with any thoughts. Writing super long and well researched posts is hard so I'm gonna try these short ones with the occasional longer one.