Transpiler |
Typescript |
Javascript as a programming language for huge software systems is a mess.
Not easy to fix, but Typescript is an excellent compromise offering a compatible compile time type system.
Lead by his majesty and "Turbo Pascal, Delphi, .net" fame, Anders Heijlsberg, this Microsoft team is doing
an incredible job by pushing typescript to be the most powerful, most complete and still 100% ECMAScript compatible
language available. I love strong typing. If you do too, go for Typescript. |
Web Development Frameworks |
React.js |
The ground breaking Web Development Framework which will shape the next decade of Web Applications.
It's awesome ! One BIG (dis)advantage: React only defines the rendering Framework.
Choosing React means 100s of decisions still to make, UI Framework, Model Technology, Architecture,
and and and. If you just want what 80% of Web Developers need, all pre-packaged in one box, use Vue. |
MobX |
Incredible reactive development library, with a very clear concept. Used with React,
it relieves you from updating your views. Just change your model and everything else will update efficiently
and reliable. Vuex delivers a similar experience, but mobx was first and faster.
Much easier and less boilerplate than redux, so if you are not a pure functional guy or like typing,
prefer this to redux.
|
MobX State Tree |
Opinionated dynamically typed model framework based on MobX from the creator of MobX. Slower and less flexible,
but you get a lot more out-of-the-box. For medium sized applications my favorite, but if you need maximum speed,
stick with mobx, it can be tweaked to be much faster. That is, if static pages are not sufficient ;-)
|
Vue.js |
Next Generation Web Development Framework, which might even get more widespread than React,
because it settles more ground. Choose Vue.js, and you're done with everything you need.
|
Material UI |
If you look for a pure react widget library, this is the most widespread one. |
Ag-Grid |
Looking for a blazing fast grid for displaying and editing huge amounts of data ?
This is the fastest, most flexible grid available. And these guys are making it better and more flexible every day.
There is nothing which you cannot build with this framework.
Millions of rows - no problem. Enterprise Price Tag, but it has a community edition to start with, maybe this is sufficient for you. |
React-Virtualized |
Visualizing lots of data in the browser can be optimized by only rendering the part which is actually visible.
React Virtualized will help you build components using virtual rendering. If ag-grid is too expensive or not flexible enough,
start here. |
Integrated development environment |
WebStorm |
WebStorm offers the best integrated Web Development Experience. Nearly all relevant frameworks are supported out-of-the-box,
all testing frameworks are supported, node package manager integration, typescript, refactoring and whatever you need.
It costs (small amount of) money, but you get all you need without configuring or looking for plugins! |
Visual Studio Code |
If you want a free, easy extensible IDE where the keyboard rules,
try Visual Studio Code. Erich Gamma, Eclipse Mastermind, was hired by Microsoft and
does a great job with VSCode. Best built-in Typescript Experience.
|
Eclipse |
IBM has released the platform and java development code of Websphere
Studio Application Developer (what a name !) as open source. The result
is Eclipse and it's my favorite IDE. Thanks IBM !!! |
Java modeling tool |
Slime UML |
slim, fast and powerful. |
Version control |
GIT |
De facto standard distributed version management. |
Build management |
WebPack |
Nr 1 Module Bundler for big javascript applications. |
Maven |
Not easy to use right, but if done, it's the standard Java build tool. Never again hassle with transitive dependencies ! |
Testing |
Jest |
I'm a big fan of React, thus Jest is Nr 1, but mocha/chai/sinon is a great combination too.
But I don't need even more choices, prefer one standard!
|
Selenium |
De facto in-browser test automation tool. Very low level, so I prefer frameworks building higher abstractions on it.
|
Galen Framework |
Very powerful browser test automation tool basing all testing on css selectors. And it can do layout testing too by
letting you describe layout relations and proximity relations. Not extremely wide spread though, don't know why.
Maybe because it's java based.
|
JUnit |
If you want to do continuous Integration and make sure, your components
at every time in development have a guaranteed quality, use this. It
is a very simple, thus easy to learn, yet very efficient tool to guarantee
code quality. No Java project without JUnit ! |
Bug tracking |
Trac |
... for small projects I
prefer Trac; it integrates svn with wiki, fisheye-like changeset views
etc plus heaps of plugins; all for free
AND... there's an Eclipse integration for it ! |
Jira |
... if you need the big thing, jira has it all. But you need lots of money and an administrator ;-( |
Application server |
Tomcat |
A really cool Servlet-Container. I use it as a small Web-Server as
well. |
JBoss |
The public domain Application Server. Great work ! |
Web browser |
Chrome |
If you have a demanding Web Application, still the best choice. |
Firefox |
of course the public domain-browser of choice. |
Parser generator |
ANTLR |
Need to write a Lexer or Parser ? Yacc and Lex were my favorites.
But then came ANTLR - one tool for all, clear syntax, easily readable
LL-Parser with the expressive power of LR(1). And - easy error handling.
Great tool ! |