This post is about the close relationship between code and community. These thoughts were sparked by Github’s recent major announcement.
There is a social infrastructure that underpins today’s development workflow. Building anything with code requires the help of communities like Stack Overflow, Github and CodePen. To the point where an [open source] technology is considered only as good as the engagement of it’s underlying community.
Also, when coding in a community, core software concepts like abstraction and decomposition have new dimension.
Abstraction - the act of removing complexity - is a foundational concept of computing. In software, abstraction happens at all levels of Code. It is accelerated in a community environment. Open sourcing is synonymous with absracting complexity so code is usable by other programmers. Exposing code to a diverse community also enables new and interesting forms of abstraction, creating new applications along the way.
Decomposition is another development concept that is affected by community. It is the act of breaking a system down smaller parts, often reverse-engineering to understand how something is built. This is the opposite of abstraction because it creates complexity. A great example of this is the View Source feature in every web browser which helps you understand how different parts of a webpage are composed. This simple feature enabled a generation of web developers (myself included), and was a catalyst for many developer communities. Taking things apart creates curiousity, opportunity for conversation, and generates ideas. Creative communities thrive on decomposition because it allows people to learn from each other. Glitch is one community in particular that really understands the power of this concept.
We’re still in the early days of the internet and I’m excited to see how communities around code evolve together.