Maybe it sounds a bit simple but after several months on a project of my own I have to emphasize how important a solid selection of performant and appropriate tools is. Every usage of an additional library or program should be well considered.
Here I open my favorized toolset:
- Java: Was never a point of discussion
- Groovy: Very helpful for dynamic aspects. Since it is used in Gradle (see below) or Jasper Reports there is almost no way around.
- Vaadin: Coming from Java Swing this was a natural choice for developing web applications.
- MongoDB: Due to good database driver support (Morphia) it was my first choice.
- Parboiled: Enables to realize parsers defining the syntax in Java itself. Really cool!
- Gradle: Most powerful build tool though needs some time to learn and Groovy knowledge are highly appreciated…
There are some more important tools (e.g. CMS, UML, documentation/specification) though I think I will cover them in a separate post…