Modern tools glossary

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 !

3 Responses to “Modern tools glossary”

  1. 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.

  2. Reblogged this on yuriburger.net and commented:
    Solid list of modern developer tools (JS, frameworks, utilities, etc.)

Trackbacks/Pingbacks

  1. Get started with Docker on Azure for Microsoft developers and/or Linux noobs | The Road to ALM - August 4, 2015

    […] post. The world is changing. And especially the world of Microsoft Developers. In my post about modern tools I presented a list with tools that a developers must have in his toolbox. This list did not contain […]

%d bloggers like this: