Imagine if all car manufacturing happened in one massive warehouse. Every car from every maker came from this single manufacturing plant. And imagine all of Toyota workers could walk up and use the turning signals from Ford, and small electric car companies could provide their parts for big manufacturers to try. And all of the teams were talking about cool new things they were working on and giving advice to eachother on how to build better cars. And everyone had the liberty to use the best ideas of each other to come up with even greater ideas.
This culture of sharing is the culture of programming.
Build Software Better, Together
The word ubuntu is an ancient African word meaning ‘humanity to others’. It also means ‘I am what I am because of who we all are’. Ubuntu is the name of an operating system used by many developers that is free to download, run, copy, distribute, study, change, and improve by anyone in the world.
Anyone can use a package
In Node.js, there is the concept of code modules. You write your code and seal it up in a small package that can be re-used later, or used by another developer on another project.
Now what if there were a way for you to let other people use a package you wrote, and have other people help you make that module better? What if you had access to hundreds of free packages that other people had written, with instructions and people who want to help you use it?
Well, you do. And it’s not hundreds of packages, it’s 100,000.
The Node Package Manager, or npm, is an archive of packages that other people wrote for you to use. I’ve written packages, and if you want to use a package I wrote, all you have to do is type
npm install zamano-api
in the command line. Now my module is downloaded into a
node-modules folder, and you can read it, fix it, use it, or learn from it to your heart’s content. I wrote it for you to use, just like I am writing this blog for you to learn. This is my little contribution to something that is bigger than me, something that may help move the web forward in a little way. Even if just one person uses it, that makes it worth it.
Anyone can write a package
The Node.js community has a long history of being open and very welcoming. Openness and acceptance is baked into the very roots of the philosophy behind Node.js, which encourages any and all styles of contribution in whatever way possible. If you wanted to publish a Node.js package today, you could. There’s no rule that says only the experts can publish packages, or only people with X years of experience. There is no rule that only young people or smart people or boys or girls can publish packages. Anyone can write a module.
Try it, live it
Peter Kropotkin advocated for the benefit mutual aid has for society, and once wrote:
Knowledge is an immense power. Man must know. But we already know much! What if that knowledge — and only that — should become the possession of all? Would not science itself progress in leaps, and cause mankind to make strides in production, invention, and social creation, of which we are hardly in a condition now to measure the speed?
The philosophy of programming rests on the idea of sharing knowledge and working together to acheive a better world. You can be a part of this too.
If you’re excited about becoming part of the communal world of programming, check out some open source projects, see how many people work on them, and how many people use them every day. See the amazing things people have created together for the web.
To browse Node.js modules, check out nodejsmodules.org and search for crazy things like tiny databases or physics engines.
Explore some of the popular and trending projects on Github by looking at the Explore page. When on a project page, click the Graphs tab on the right to see graphs of how much code went into these projects. And they made it available for you to explore and use!
Enjoy, and let me know what you think of this post in the comments below!