Here is a selection of the ten most popular open source tools for developers, along with a brief introduction to each.
As the new year has just started, let me present the top ten open source tools of the previous year for developers. This list includes version control systems, integrated development environments (IDEs), text editors, and Web and mobile frameworks. All these are regularly used by developers to create new applications.
Git is a free and open source distributed version control system designed to handle everything from small to very large projects, with speed and efficiency. With the rise of GitHub, Git has become a de facto standard and, according to several surveys, is now the most popular version control system among software developers. Its users include all the biggest names in the technology industry, such as Google, Facebook, Twitter, Microsoft, LinkedIn and Netflix. It is also very popular with open source projects such as the Linux kernel, Eclipse, GNOME and others. Git is easy to learn and has a tiny footprint, with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce and ClearCase with features like cheap local branching, convenient staging areas and multiple workflows.
3. Apache HttpClient network stack
Most native mobile apps use the Internet to ‘phone home’ to a database or service. They often rely on a custom network stack for this because a browser-based connection would be slow, consume too many resources and provide an attack surface for malicious code. To implement the custom connection between the app and the service back-end, Apache’s HttpClient provides a capable HTTP connectivity framework that can be used for this purpose.
HttpClient lets you readily construct the headers and bodies of HTTP requests as well as the responses to support a private communications session. For example, you can easily set up an authenticated transaction using an authorised header or grab the data in a Set-Cookie header to manage cookies. Curiously, while the Java Development Kit (JDK) has its own HTTP stack, it doesn’t implement the PATCH method, while HttpClient does. PATCH is important because it lets you selectively update subsets of data with low network overhead, particularly if your service relies on the Open Data (OData) Protocol.
Emacs is a family of text editors that is characterised by its extensibility. The manual for the most widely used variant, GNU Emacs, describes it as the extensible, customisable, self-documenting, real-time display editor. GNU Emacs boasts of content-aware editing modes with syntax colouring, built-in documentation and tutorials, full Unicode support and tools for project planning, debugging and more.
Vim is a highly configurable text editor that makes creating and changing any kind of text very efficient. It is included as ‘vi’ with most UNIX systems and with Apple OS X. Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface. Key features include a multi-level undo tree, support for hundreds of programming languages, an excellent ‘Search and replace’ tool and an extensive plugin system. Vim is rock stable and is continuously being developed to become even better.
ASP.NET is an open source server side Web application framework designed for the development of dynamic Web pages. It was developed by Microsoft to allow programmers to build dynamic websites, Web applications and Web services. It can be integrated with many other Microsoft development tools including Visual Studio. It allows you to use a full featured programming language such as C# or VB.NET to build Web applications easily.
10. Ruby on Rails