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.
1. Git
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.
2. Eclipse
Eclipse is an integrated development environment (IDE) used in computer programming. It is the most widely used Java IDE, but it also supports C/C++, PHP and JavaScript. Eclipse got started in 2001 when IBM donated three million lines of code from its Java tools to develop an open source integrated development environment. Eclipse is released under the terms of the Eclipse Public License. The Eclipse Foundation, which oversees development of the IDE, supports more than 250 open source projects, most of them related to development tools. There are also loads of plugins available that bring code quality, version control and other capabilities to the integrated development environment.
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.
4. Node.js
Node.js is a JavaScript runtime built on Chrome’s VB JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. A developer can write server side applications. In recent years, the project has skyrocketed in popularity and its users include IBM, Microsoft, LinkedIn, Netflix, PayPal, Yahoo, Walmart and many other well-known Web companies. According to its website, the Node.js package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
5. Cordova
Sponsored by the Apache Foundation, Cordova allows mobile developers to write for iOS, Android, Windows and other platforms using Web development technologies like HTML, CSS and JavaScript. Many other mobile development frameworks, most notably PhoneGap, are based on the Cordova code base. Applications execute within wrappers targeted at each platform, and rely on standards-compliant API bindings to access each device’s sensors, data and network status.
6. Emacs
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.
7. Vim
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.
8. ASP.NET
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.
9. Bootstrap
Bootstrap is a free and open source front-end Web framework for designing websites and Web applications. It contains HTML and CSS based design templates for typography, forms, buttons, navigation and other interface components as well as optional JavaScript extensions. Unlike many Web frameworks, it is only linked to front-end development. It was developed by Twitter and the first version was released in 2011.
10. Ruby on Rails
Ruby on Rails, or Rails, is a server side Web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a Web service and for Web pages. It encourages and facilitates the use of Web standards such as JSON or XML for data transfer, and HTML, CSS and JavaScript for display and user interfacing. In addition to MVC, Rails emphasises the use of other well-known software engineering patterns and paradigms, including ‘convention over configuration’ (CoC), ‘don’t repeat yourself’ (DRY), and the active record pattern. Its users include some of the most popular services on the Internet, such as GitHub, Airbnb, Basecamp and Hulu.
What year is this???