carloscastilla - Fotolia
There is no shortage of closed-source development tools on the market, and most of them work quite well. However, developers who opt for open source tools stand to gain a number of benefits.
In this piece, we'll take a quick look at the specific benefits of open source development tools, and then examine 10 of today's most popular tooling options.
Open source benefits and use cases
The tools that live within your open source development stack will vary, mostly depending on your specific programming needs. Different tasks and environments require specific types of tools, such as source code management, integrated development environments (IDEs), text and source editors, continuous integration (CI) and configuration management.
Development shops can always buy the tools they'll need from proprietary vendors. But open source tooling options can provide some specific conveniences, including:
- Cost. Many open source development tools feature both free and paid versions of the software, allowing developers to test the tooling at no cost.
- Extensibility. Widely used open source programming tools spawn rich ecosystems of add-ons, plugins, extra functionality and developer forums.
- Broad compatibility. Many open source development tools are either platform-agnostic or designed specifically to integrate with a large number of platforms.
- Longevity. Open source projects are typically maintained by a dynamic community of developers, so support often continues even after the original provider leaves the project.
10 top open source development tools
Now that we've examined the benefits of open source, let's look at some of the top options available.
Git is a distributed code management and version-control system, often used with web-based code management platforms like GitHub and GitLab. The integration with these platforms makes it easy for teams to contribute and collaborate, however getting the most out of Git will require some kind of third-party platform. Some claim, however, that Git support for Windows is not as robust as it is for Linux, which is potentially a turnoff for Windows-centric developers.
Also known as SVN, Subversion is another open source option for code management. It's very similar to Git, although their major differences lie in the code repositories: Git uses local repositories by default, whereas Subversion stores code on a remote server. However, you can use SVN and Git together by connecting them through git-svn, which allows you to interact with Subversion repositories through your Git tooling.
3. Eclipse IDE
Eclipse is an open source IDE that features a wide ecosystem of plugins and extensions. It's written primarily in Java -- and is most popular with Java development -- but can be used to write code in almost any major programming language. Eclipse features a continually growing plugin marketplace to support customization of extension of capabilities. However, some Eclipse plugins are dependent on others, which can make it tricky to add and remove those plugins without breaking existing functionality.
NetBeans is a Java-based IDE similar to Eclipse, and also supports development in a wide range of programming languages. However, NetBeans focuses on providing functionality out of the box, whereas Eclipse leans heavily on its plugin ecosystem to help developers set up needed features.
Emacs is an open source text editor written by GNU project members in the mid-1980s. It has the ability to automate complex key entry sequences using macros, and developers can use it as full-fledged IDE. The disadvantage to Emacs, however, is the time it can take to configure Emacs and integrate it into your environment. Some also say that the tool has a steep learning curve -- although others argue it is easier than other text editors like Vim.
Vim is another decades-old open source text editor with an entrenched set of users. Vim reportedly starts up a bit faster than Emacs, and some say it has a lower learning curve. Other developers also claim that it requires less time to customize to individual software environments, but there are developers that argue the opposite too. But overall, Vim and Emacs are both excellent choices if you want a tried-and-true open source development tool for editing code.
Atom is billed by GitHub as a "hackable" text editor that, like Emacs and Vim, can be turned into a complete IDE. Atom offers features that cater to modern coding needs, such as easy integration with GitHub and built-in support for collaborative coding. However, some claim its performance is on the slow side, takes a little while to start, and consumes slightly more memory than expected for a typical text editor.
Jenkins is a CI server that advertises a very large plugin ecosystem. These plugins make it possible to integrate Jenkins with various source code management systems and deployment environments. They also extend its functionality with features like email notifications and timestamps that track how long various Jenkins operations take to complete. Jenkins offers broad platform support and can run on any modern OS, as well as inside a Docker container.
Chef is an open source configuration management tool which enables admins to create "cookbooks" that describe the ideal configuration of their environment. Chef can also automatically configure that environment for you based on the specifications you provide. It's written in Ruby, and fully supports Windows, Linux and macOS. That's an advantage over some comparable tools, which limit support to Linux and macOS.
Ansible, another open source configuration management tool, is claimed to be one of the biggest competitors to Chef. Developers say it offers somewhat better performance than Chef, and many say it's easier to set up. However, Ansible offers fewer customization options, and isn't always well-suited to complex environments or niche configuration management. It's support for Windows is also somewhat limited.