At Swisslex we are updating the existing website aiming to improve the usability. It is already a capable web interface to Swiss Legal documents, so the focus is on turning the professional experience and feedback from users into improvements to how Legal Research will work in the future.
We joined the project after it had stranded in the hands of a consulting company that seemed overwhelmed by making a real solution with Angular 2. Henrik joined the project as a technology coach, teaching how to build a front-end Web Application.
As part of the kick-off we were asked to advise on which technology to use. The consulting company originally tasked with the project had gone for Angular 2, and the question was whether to continue on that or go with something else. As it turned out the work done so far was to generate an example application, and put in a few bits, so we were free to go for something like React or Aurelia. This choice is a common challenge, and unfortunately many have too much technology excitement and too little human appreciation.
A good technology choice must
- Have backing to be well maintained in the future
- Avoid locking source code written in an exotic approach
- Be comprehendible by the team using it
- Fit with the other technologies used
- Have sufficient educational options
React vs Angular
From a technology standpoint we would pick an approach in the reactive camp(Ractive, React, Inferno, Observables etc.). In our experience several features of Angular are oversold and weren’t helpful at our past projects. So while popular, Angular isn’t our default pick.
Since Swisslex works well as a classic website interface and doesn’t really scream to be converted into an application style User Interface with constantly changing content it belongs to a large portion of services that are somewhat hurt when adopting Singe Page Application(SPA) technologies such as React and Angular. On the other hand there is limited focus on front-end Web technologies that aren’t a single page.
So what to pick. In the end our advice was to stay with Angular on the grounds that it is adequate to solve the problems, and that as a team using C# adopting TypeScript should be a modest step, and make the team feel more up to the task of learning front-end programming.
Reactive Interaction principles