Many moons ago, in the span of software development, I had built out a quick template of code using the latest and greatest frameworks at the time. This chapter in time was a set of java based frameworks to build a web application. In the need to know circle, I was using Spring for dependency injection, hibernate for object relational mapping, Java Server Faces 1.2(JSF) for controller/view with Primefaces for pretty view. That was the year 2011 so we are talking old school.
Since that time, JSF has gone to version 2.2. That is to be expected as APIs evolve. The only thing is this evolution portends another end to a model view controller framework. Developers went through a renaissance to separate the view from the controller even more. The reason for this acceleration was mobile devices. Mobile devices forced developers to think of the user interface as needing to be flexible to run on a minimalist screen size and at the same time look good on a desktop size browser. Yes, new word of the day became “Responsive Design”.
JSF was going to be the new darling in late 2010 allowing developers to drop components on a page to wire up a form or website and bind it to data models. Development of interactive websites were going to be much faster to develop. Redhat, who acquired JBOSS application server, and even started its own implementation to the JSF specification creating Richfaces. Yeah! More rich components to make awesome websites faster.
Yeah, that was a short lived experience as Richfacess hit an end of life June 2016 (RIP). Like I said in the beginning “many moons ago” is really short in software development land.
This brings us to a point where web pages simply interact with application servers by making REST based calls. Developers only have to make REST services that mobile browsers, desktop web browsers, or even other applications can interact with business services. The internet has expanded once again from just being web pages. This allows it to go beyond to other devices and services running in smart devices.