InfoWorld's picks of the year among languages, frameworks, libraries, and all the other tools that programmers use The best open source development tools Are developers never satisfied? Newfangled editors, brushed-up IDEs, JavaScript frameworks, JavaScript improvers, Node.js, Node.js frameworks, task runners, test automation tools, PaaS solutions, better places to stick your source code, new programming languages on the rise, and old programming languages with new tricks — you’ll find all that and more in this year’s Bossies. Brackets Brackets is an open source editor, originally from Adobe, for the next generation of the Web, and it’s an effort to build better tooling for JavaScript, HTML, CSS, and related open Web technologies. Brackets itself is written in JavaScript, HTML, and CSS, and the developers use Brackets to build Brackets. In addition to the built-in capabilities, Brackets has an extension manager, and extensions are available for many of the languages and tools that front-end developers use. Brackets features a clean UI, the ability to open a quick inline editor (displaying all the related CSS for some HTML or all the related JavaScript for some scripting), and a live preview for Web pages you’re editing. — Martin Heller Node-webkit Node.js gave developers the power to write robust server-side and client-side software in JavaScript. Node-webkit expands on that promise: It uses Node.js as a back end and the WebKit browser engine as a front end to allow JavaScript programmers to create desktop applications by using the same programming expertise they’d use to create Web apps. The interactions between Node-webkit apps and their host computer are constrained in many ways — sometimes by necessity — but the latest revisions add support for features that help to fill that gap, like desktop notifications and a full-screen mode. — Serdar Yegulalp Sass Sass (Syntactically Awesome Style Sheets) is a style sheet language interpreted to CSS. It’s completely compatible with all versions of CSS so that you can seamlessly use any available CSS libraries from Sass. Sass adds inheritance (@extend), variables, nesting, mix-ins, and math to CSS, making your stylesheets easier to write and maintain. — Martin Heller Koa Koa is a new Web framework designed by the team behind Express. Koa aims to be a smaller, more expressive, and more robust foundation for Web applications and APIs. Koa uses generators for middleware rather than using Node.js callbacks. The code at left is a “hello, world” Koa application using a generator, which does a yield next to pass control to the next generator. — Martin Heller AngularJS AngularJS is a lightweight open source JavaScript framework for building Web applications with HTML, JavaScript, and CSS, maintained by Google and the community. It offers powerful data binding, dependency injection, guidelines for structuring your app, and other useful features to make your Web app testable and maintainable. AngularJS’s most notable feature is its two-way data binding, which reduces the amount of code written by relieving the server back end from templating responsibilities. Instead, templates are rendered in plain HTML according to data contained in a scope defined in the model. — Martin Heller Java Java is open source in that it is released under an open source license. However, you can’t really participate in Java as a project because all of the decisions take place behind the Big Red Wall. The most important detail about Java 8 is that it’s been released and didn’t take five years. Sure, it added features that C# already had. Sure, it’s stuff you could already use in Scala with a syntax that wasn’t goofy, but hey, you can finally do that stuff in the chosen language of your corporate masters! Along with the coordinated evolution of the JVM, Java 8 has upgraded Java’s programming model, productivity features, security, and performance. It’s a release to celebrate. — Andrew C. Oliver F# Why use F#? Plenty of reasons. F# is a strongly typed, functional-first language that lets you solve complex problems by writing simple code. Based on ML and built on the .Net Framework, F# offers good interoperability, portability, and runtime speed, as well as the “five Cs”: conciseness, convenience, correctness, concurrency, and completeness. F# was initially available only on Windows, but it’s now a first-class language on a number of platforms. You can use it on the Mac and Linux with tool support in Xamarin Studio, MonoDevelop, Emacs, and others, and you can use it on Windows with Visual Studio, Xamarin Studio, and Emacs. Finally, you can use it on Android and iOS devices and on the Web running HTML5. — Martin Heller Python Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java. It has modules, classes, exceptions, very high-level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems. New built-in modules are easily written in C or C++ (or other languages, depending on the chosen implementation). Python is also usable as an extension language for applications written in other languages that need easy-to-use scripting or automation interfaces. Python uses whitespace indentation, rather than curly braces or keywords, to delimit blocks; this feature is also termed the off-side rule. Pythonistas generally appreciate the simplicity of whitespace indentation, although it isn’t universally lauded. — Martin Heller Vagrant Vagrant creates and configures lightweight, reproducible, and portable development environments in VMs. It supports Mac OS X, Windows, and Linux distros that use Debian or RPM installers, and it works with VirtualBox, VMware, Docker, Hyper-V, and custom providers. While Vagrant and its VirtualBox provider are free, the VMware provider costs $79 per seat. The Vagrant Cloud hosts both public and private Vagrant “boxes.” The box is the package format for Vagrant environments. Joining the Vagrant Cloud is free, but there is a monthly subscription cost if you want to host private boxes. Vagrant boxes typically run Puppet, Chef, or shell scripts to configure the environment from a base OS image. — Martin Heller Eclipse The venerable Eclipse project is still updated on an annual basis, with nearly continuous bug fixes. Eclipse Luna, released in June, includes official support for Java 8 in the Java development tools, plug-in development tools, object teams, Eclipse Communication Framework, Maven integration, Xtext framework, and Xtend language. The Eclipse compiler includes language enhancements, search and refactoring, Quick Assist and Clean Up to migrate anonymous classes to lambda expressions and back, and new formatter options for lambdas. In addition to Java, Eclipse Luna supports graphical modeling, JavaScript, PHP, C++, Fortran, Spring, Groovy, Grails, DSLs, parallel programming, testing, automotive software, and IoT devices. — Martin Heller Cordova Apache Cordova (aka PhoneGap) is a set of device APIs, plus some tooling, that allow a mobile app developer to access native device functionality, such as the camera and accelerometer, from JavaScript. Combined with a UI framework like jQuery Mobile, this allows a smartphone app to be developed with only HTML, CSS, and JavaScript. The application itself is implemented as a Web page, named index.html by default, that references whatever CSS, JavaScript, images, media files, or other resources are necessary for it to run. The app executes as a WebView within the native application wrapper, which you distribute to app stores. — Martin Heller Software DevelopmentOpen Source