It has been over two weeks since I published my first NPM module. Also a month since I started using GitHub. I am posting about this because this is the biggest change in my life as a programmer since I got my own computer and access to the Internet.
I am not saying that systems like these are something new. These were not new to me. I wasn’t just using them before. I am a bit agnostic and it takes time for me to move from something old to new.
I have been programming same things over and over again most of my life — sometimes it’s called NIH. Usually that’s because one of these bad reasons:
- I don’t remember or know where the old code is or even that it exists
- I don’t know how to use it anymore and writing new is easier
- I made the first code for a company I don’t work anymore
There’s a lot more reasons to do NIH (both good and bad) but these are the reasons I hopefully don’t need to use anymore because of open source NPM and GitHub.
Now I have 15 repos in GitHub and five public NPM modules. GitHub provides me and my projects version control system, bug-/issuetracker, social tracking of programmers and projects, wikis, websites, easy way to write documentation, and much much more. I could do these myself but it wouldn’t be that easy. Also it’s likely that nobody would find their way to my website either.
Before this I was using SVN and my own websites to share my code. I’ve now started to move all my SVN projects to GitHub. I’m also publishing my old JavaScript stuff as NPM modules, too. Most of them are for my old OpenJS project but I am porting them to Node.js anytime I need them.
One of the biggest things using GitHub and public NPM is how easy it is to share your code. It’s not just easy to share it to other people but to yourself, too.
This week I made yet another Session library. I don’t know how many Session implementations I have done or with how many programming languages. At least five times for JavaScript, that’s for sure. Now it’s in my GitHub and I am never ever going to do a new Session module because of these bad reasons. There’s even a documentation now — if you can call it that. It’s still better than no docs at all!