Frequently Asked Questions
What is C4?
It’s short for Collective Code Construction Contract. A contract, a protocol, a set of rules to a game we’re playing, C4 is for making accurate software on the internet.
Who defines accurate? The market does. We’re all part of different markets, the supermarket where we get food, employment market when we have to find a job, the housing market. A market brings a diversity of wants and skills. Success is satisfying some chunk of the population. The more you can satisfy the more successful.
More important than the game or the software or the market, is this thing called a community. Ours is very small right now. There are maybe half a dozen of us who are interested in Magic Stone. Many more are using C4 but it’s not possible to count. Certainly in dozens of ZeroMQ projects where it started but we’ll get into that another time.
C4 is community-centric software development. We focus discussion almost entirely on problems and accept solutions freely. Automation and free collaborative platforms make it easy for anyone to help but ultimately it’s about laying out some rules then letting everyone do what they do best, alone or in groups of their choosing.
What is the purpose of this project in practical terms?
The project exists to solve two problems. One is not enough contributors (docs, code, testing) on fediverse projects and the other is high-friction, slow development processes. Slow processes turn off contributors so I want to take merge time for patches from what can be weeks or months down to hours and days.
The C4 RFC defines a process where the merge speed depends on describing and valuing problems rather than reviewing and approving code. With this faster process, the hope is the community will grow and overall speed and quality will increase.
How is this different from what upstream/other projects are doing?
The projects we’ve forked have done amazing work and created systems that are happily in use by many, many people. This project is about applying effort specifically to the two problems of contributor numbers and development velocity. In a perfect world, every project becomes more successful through community-focused development process.