in Making Break Down Open Source ~ read.


Programming, at the most basic level, is about telling the computer what to do. "Move the contents of this memory address into the byte at address ESI+EAX." Even when programming in Assembly, the instructions we give to the computer are meaningful. We are solving a unique and non-trivial problem. If it were trivial, then we wouldn't need a computer! What is the tried-and-true means of solving issues? Decomposition. Big problems break into smaller ones. If the pieces are still too troublesome, we decompose further. Finally, when our mug runs dry of coffee, we write the code that solves all the small problems.

We compose those blocks of code to create solutions to larger problems.

With code-bases and problem-scopes growing larger every moment, the level of complexity far exceeds any lone-coder. Patrick Harrop, in the Journal of Architectural Education, wrote in regards to this topic:

"By necessity, therefore, open source and distributed knowledge becomes the more effective working environment. Maker culture is a synthetic endeavour and, in its action, an activist and collective one."

(see his entire piece here: Open Sourcery)

Thinking broader than just the invidivual programmer, open source networks enable users to contribute to each other. As an "activist" venture, open source directly opposes proprietary software. Corporations can develop experiences for users and maintain tight control over the code and the community. On the other hand, the community nature of open source ensures no individual can maliciously impact a product's development. Open sourcing software also breaks down barriers.

Free and effective alternatives replace expensive software packages. Another critical piece of software is being able to stick your hands inside of it. That is, opening up the source code and fooling about to create your own environment. If you are repeating an action and wasting time, why should you wait for a software patch? For those knowledgable, writing a script to automate these tasks increases workflow and gets you to back to focusing on the more important work. Closed-source programs make it harder to build on top of their products, requiring more difficult work-arounds or hopes that the code-managers will fix the program.

Open source software puts the power in the hands of the user and frees us to solve our seemingly complex issues.

comments powered by Disqus