ReactJS or AngularJS? What about something else? ~ Elementary, My Dear Watson!
- Have a eco-system with ready to use libraries (bootstrap, mobile, …
- It easily integrates within existing applications, regardless of what they already use (Dojo, JQuery, …
- The tool chain should integrate well with what we currently use (Maven, Eclipse…
- But we are forced to use their Dojo so far, so we have no choice.
I have been experimenting with vue.js in Xpages for 2-3 months. It was love at first sight. It’s very intuitive. Documentation is great. There’s a very good and exhaustive course at udemy (Vue.js 2 the complete guide). What I really like is that it’s up to the developer if he/she want to use vue.js for a couple of widgets on a page or write complete single-page applications. It’s very flexible that way.
@DanieleVistalli: After 2 months spent selecting the JS library for our future VueJS is the winner. Read @philriand’s great post on it
The natural next move was to use Angular 2, as it fixes most of the issues found in 1.x. I would say this is true, but the learning curve grew significantly. That includes some technology choices (ex: Observable vs Promises), Typescript, the tool chain required to get an application properly packaged, and the heaviness of the resulting code… I spent time playing with it for Darwino (we’ll release some examples), but I do not see the ProjExec developers being quickly productive with it. This has been further confirmed by one of my friend, a GDE (Google Developer Expert, the equivalent of IBM Champion): his one week training class is barely sufficient to get the developers comfortable. Also, getting it integrated in a venerable existing application raises some challenges.
Ok, we’ll might use it later with Ionic 2 for a dedicated mobile UI, but for now, let’s look if something easier can be used on the existing web application.
The next candidate on the list is Facebook’s ReactJS. Clearly, there is a buzz around this technology. It has very interesting concepts, it creates high performance applications. But the initial learning curve is even bigger than Angular’s, particularly for Java developers. Moreover, it is pretty low level, which provides great flexibility but you then have to choose the proper companion libraries.
We’ll keep this in the back burner, let’s look is something else better suits our needs.
We decided to go with it. The early feedback I got from the development team is very positive. We’ll see in the longer run if it keeps its promises, but so far so good.