Maybe I am getting old, maybe I am too busy with other stuff but the number of frameworks, tools and utilities has seemed to grow exponentially over the last years. As a Microsoft developer from “the early” I usually only had to worry about a new version of Visual Studio, Team Foundation Server or a new .Net Framework. This has changed dramatically. Especially now Microsoft shifts towards a cross-platform, multi device company, the embracement of non-microsoft and open source tools is even more.
Because I like to stay up to date, at least knowing what is around I created this small glossary where I try to plot technologies within a specific category. You will not find any details about the tools in this post, neither how to use them. It is merely an overview to put some things in perspective.
Will try to keep this post up-to-date. If you have any suggestions or additions, feel free to leave a comment!
Tool | Category | Description | URL |
Grunt | Task Runner/JS Builder | The javascript Task Runner. Automates common tasks like minification, compilation, unit testing, Linting | http://gruntjs.com/ |
Gulp | Task Runner/JS Builder | Javascript Task Runner. | http://gulpjs.com/
http://slides.com/contra/gulp#/
|
Jake | Task Runner/JS Builder | Jake is the JavaScript build tool for NodeJS. Jake has been around since the very early days of Node, and is very full featured and well tested. | http://jakejs.com/
http://www.cappuccino-project.org/blog/2010/04/introducing-jake-a-build-tool-for-javascript.html |
Bower | Package Manager | Bower works by fetching and installing packages from all over, taking care of hunting, finding, downloading, and saving the stuff you’re looking for. Bower keeps track of these packages in a manifest file, bower.json. How you use packages is up to you. Bower provides hooks to facilitate using packages in your tools and workflows.
Bower is optimized for the front-end. Bower uses a flat dependency tree, requiring only one version for each package, reducing page load to a minimum |
http://bower.io/ |
NPM | Package Manager | Package Manager for javascript. Easy to share and reuse code with other developers | https://docs.npmjs.com/getting-started/what-is-npm |
NuGet | Package Manager | NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers. | https://www.nuget.org/ |
Swagger | API Documenter | Swagger is a simple yet powerful representation of your RESTful API. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability | http://swagger.io/
http://bitoftech.net/2014/08/25/asp-net-web-api-documentation-using-swagger/ |
Swashbuckle | .Net Library | Seamlessly adds a Swagger to WebApi projects! | http://bitoftech.net/2014/08/25/asp-net-web-api-documentation-using-swagger/ |
Mashery | API Documenter | You want to make it fast and easy for developers to start building with your API. Mashery I/O Docs let you achieve that with a clean, powerful interface for executing live API calls right from your API documentation. With Mashery I/O Docs, your developers spend less time toggling, cutting, and pasting—and more time coding great apps | http://www.mashery.com/product/io-docs |
KnockoutJS | Javascript UI | Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably. | http://knockoutjs.com/ |
AngularJS | Javascript UI | HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop. | https://angularjs.org/ |
React | Javascript UI | Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it’s easy to try it out on a small feature in an existing project. | https://facebook.github.io/react/ |
CoffeeScript | Javascript Compiler (DSL) | CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way. | http://coffeescript.org/ |
TypeScript | Javascript Compiler (DSL) | TypeScript lets you write JavaScript the way you really want to.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source |
http://www.typescriptlang.org/ |
JSLint | Code Analysis | JSLint is a JavaScript program that looks for problems in JavaScript programs. It is a code quality tool | http://www.jslint.com/ |
JSHint | Code Analysis | JSHint is a community-driven tool to detect errors and potential problems in JavaScript code and to enforce your team’s coding conventions. It is very flexible so you can easily adjust it to your particular coding guidelines and the environment you expect your code to execute in. JSHint is open source and will always stay this way | http://jshint.com/ |
Istanbul | Code coverage | Istanbul: A Javascript code coverage tool written in JS | https://gotwarlost.github.io/istanbul/ |
Less | CSS Preprocessor | Less is a CSS pre-processor, meaning that it extends the CSS language, adding features that allow variables, mixins, functions and many other techniques that allow you to make CSS that is more maintainable, themable and extendable. | http://lesscss.org/ |
Sass | CSS Preprocessor | Sass is the most mature, stable, and powerful professional grade CSS extension language in the world. | http://sass-lang.com/ |
Stylus | CSS Preprocessor | CSS3 preprocessors are languages written for the sole purpose of adding cool, inventive features to CSS without breaking browser compatibility. They do this by compiling the code we write into regular CSS that can be used in any browser all the way back to the stone ages | https://learnboost.github.io/stylus/ |
RequireJS | Javascript File and Module loader | RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code. | http://requirejs.org/ |
NodeJS | Platform | Node.js® is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. | https://nodejs.org/ |
Karma | Test Runner | A simple tool that allows you to execute JavaScript code in multiple real browsers. | http://karma-runner.github.io/0.12/index.html |
QUnit | Test Framework | QUnit is a powerful, easy-to-use JavaScript unit testing framework. It’s used by the jQuery, jQuery UI and jQuery Mobile projects and is capable of testing any generic JavaScript code, including itself! | https://qunitjs.com/ |
Jasmine | Test Framework | Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests. | http://jasmine.github.io/ |
Mocha | Test Framework | Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases | http://mochajs.org/ |
Gradle | Build tool | From command line to IDE to continuous integration, only one Enterprise build automation system to rule them all. Declare and execute all tasks necessary to compile, test, package and ship multi-language multi-platform multi-project and multi-channel software, SaaS and Mobile Apps. | https://gradle.org/ |
ANT | Build tool | The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks. | http://ant.apache.org/ |
Maven | Build tool | Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information. | https://maven.apache.org/ |
MSBuild | Build tool | The Microsoft Build Engine is a platform for building applications. This engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software | https://msdn.microsoft.com/en-us/library/dd393574.aspx |
Hope this helps !
Thanks Renevo! Good solid list that I will need to explore. I to am a bit overwhelmed at the number of technologies to keep up with.
Reblogged this on yuriburger.net and commented:
Solid list of modern developer tools (JS, frameworks, utilities, etc.)