Pieter Hintjens: ZeroMQ
Pieter Hintjens gives the keynote talk about ZeroMQ, at PyGrunn.
See the PyGrunn website for more info about this one-day Python conference in Groningen, The Netherlands.
For ZeroMQ, see http://zeromq.org
Distributed systems are about making software more like the real world. Rule one of building software: bring the community in it.
Underlying trend: the cost of scale. How do you upgrade a billion computers? You can't. The amount of computers in your pocket keeps doubling every few years.
Building culture. Building knowledge.
ZeroMQ is one of the first successful communities that is built around distributed systems. Hundreds of language bindings.
Conway's law: an organisation builds software that looks like the organisation. To build distributed systems, you need to be a distributed organisation. Meetings are barriers for organisation. Including daily stand-ups. You block everyone's time until you have reached a decision. Meeting people, exchanging ideas, is fantastic.
ZeroMQ 2, 3, and 4, from a long time ago, were incompatible. When you break contracts, you are an asshole.
I don't know where my community comes from. I don't have to trust them, don't have to pay them.
You can do anarchism. It does not work. One devious character and the system falls apart. And those people are there. You need to have contracts, enforcement. Ability to participate and to reject participants.
Why has no one in this room created a pull request for ZeroMQ?
What you want, is participation. What kills a system, is that no one cares.
Open source is science. Closed source is magic.
Pizza places have gone bankrupt because they put ansjovis on the wrong pizza. They broke the pizza contract. But I don't care how clean their kitchen is, as long as we don't get sick. The pizza should be a certain size, temperature, price, and then it is fine.
When someone submits a bad pull request, I merge it. I don't care. What happens if someone keeps submitting bad pull request? If it is easy to make a mistake it is also easy to revert it or fix it. Don't release from master, because it may be broken. But push to it all the time, otherwise you break the flow. Community is more important than the code. You always merge someone else's pull request. My daughter is maintainer on some of my projects, see merges my pull requests and I go like 'yeee!' That is important.
You can make money from good open source. Leverage, re-use all the knowledge from ZeroMQ. People are making money from this every single day. Making money is still difficult. Open source opens doors, also for single people with large organisations as clients.
Once you start thinking about money, your brain gets wired for cheating, being dishonest.
Anyone can solve problems, but they are often the wrong problems. Closed source is like that. Paying people for writing software is like that.
Most open source still fails, it is not a magical formula. But the best will emerge.