For quite a while I’ve been a very avid opponent of the approach to build things such as single-page applications, felt closer to the RESTful or resource-oriented thinking and considered things such as routing, linking between “things”, … to be something that should go to a backend rather than to an in-browser application. By now however, considering most (all?) browsers essentially are not just document viewers / renderers anymore but runtime environments capable of housing and running complex interactive applications, SPA surely makes sense – as the “client” part of the applications that interacts with a RESTful API on some backend server behind. No matter whether people actually do “real” REST (including HATEOAS and providing different media types for resources) or just a subset (HTTP GET/POST + JSON) – things suddenly make sense in order to build meaningful client/server applications, and given the client (=browser) world, this approach on the long run might be way more meaningful and usable than, in example, the approach very common in the Java world to hide all the client specifics behind a mostly server-sided framework such as GWT/Vaadin or JSF.
But: At this point, of course tools and frameworks are needed to get productive on the client side, to get things to really work really fast. And: If there’s one real benefit about JSF or GWT, then that these things are so tightly integrated into Java runtime and development time tooling that you very effectively can build applications without ever having to bother knowing there’s a browser and network in between – business applications can be built using the same model and the same logic straight through all layers from persistence to UI, without having to deal with different language or different programming aproaches. Yes, this model has quite some limitations, but it also has some benefits. So, moving from a pure Java environment to an environment exposing REST (or even WebSocket) endpoints and running presentation / client logic in the browser should come up with an environment that is at least not much worse than what has been left behind.
Yes. At the very least at this point I am literally knocked out. All of these frameworks seem more or less “mature” at first sight, though in some cases it’s pretty hard to see who’s behind these, how they are maintained and whether or not they actually are still active. Most of these frameworks provide pretty decently styled post-Web 2.0 web pages. All of these frameworks in some way or the other claim to “ease your development” and “boost productivity” by providing the developer with a “lightweight” or “simple” framework to focus on what’s essential rather than having to deal with the framework itself or writing unnecessary boilerplate code.
- Are single page apps bad?– interesting read on the ‘Single Page App vs. RESTful applications’ dispute, especially focussed on ROCA.