The Tools of Open Source
As some readers will know, I’ve been working to study the architecture of FireFox. One thing I realize is that I’m not as familiar as I should be with some of the common open source tools, or what I consider to be the common open source tools.
Below is a list of tools that are worth learning (in my opinion). I’ve also included a short description of why it might be worth learning them. (The list is in no particular order)
If you have an interest in open source, it will not hurt to get a quick base understanding of each of these. I’m not saying you (nor am I trying to) become an expert in each of these tools. However, having a basic understanding of syntax and function should save time and headache while trying to understand a project.
- Linux: The concepts in and around Linux are often used on other open source products. I think Open Source developers tend to stick with using open source software. So, there is a link there.
- Bash: The de-facto standard shell for Linux (as far as I can tell). Knowing the basic usage of bash can save you time and confusion. Certain scripts can depend on feature of your terminal interface. The Mac OS X ships with a version of bash, which is good to know…
- GCC: This is the GNU Compiler Collection and is often a requirement to build open source packages.
- Make: This is a part of the GCC but I want to make special mention of this because knowing how to read the script files and error messages can help diagnose an error.
- C / C++: Low Level libraries are often written in C or C++, even for an otherwise Java or Python based program.
- Python: Python is sometimes used in conjunction with Make to check for build dependencies, verify (build) requirements, or many other possible things.
- Perl: Often used like Python, from what I understand but I’ve yet to learn much about it.
- Subversion: This is the most common open source VCS software in use (based on my own observations)
- Mercurial: One of the two popular DVCS systems. I’ve noticed more and more open source projects switching to DVCSs, so a basic working knowledge of Mercurial and Git is helpful.
- git: The second of the two popular DVCS systems.
If you’d like to contribute to the list, please leave a comment below but please ensure you include a fair reason.

Recent Comments