Web applications are powerful tools to provide new and always-accessible services to your customers and employees. Their popularity has made front-end engineering a highly dynamic and exciting playing field. Businesses, employees and customers are exposed to a lot of new web technologies, rich user interfaces and services though it’s not always easy to see how it can impact and really help your business activities.
We sat down with Glenn Dejaeger, senior consultant Front End Engineering, to talk about his insights on web versus native, his favorite frameworks and more. If you like to be inspired on how front-end engineering can help you, don’t forget to join us at our next AE Foyer!
Front end engineering is getting a lot of attention today and it seems even more so in the future. How do you position it against native applications both on desktop and mobile devices? To each their own or do you see web based apps taking over?
I definitely see web based apps taking over. In my opinion, native apps were invented because the web wasn’t ready yet. At this time the web is capable of doing everything native apps can do. More telling; a lot of native apps nowadays are developed with web technology. Specialized frameworks convert the code, based on web standards and technology, to native-like apps for multiple platforms.
The main reason to move to the web, however, is customer experience related. It is really unnatural and even annoying that an end user can perfectly use a web app on his desktop but is asked to install a native app on his smartphone for a ‘true mobile experience’. The web is mobile. It is everywhere you go nowadays. When you make the strategic decision to choose web technology, your biggest advantage is that you have one app. The web app, with one code base to maintain. It works on every device, mobile and desktop. You don't need one or more additional apps that specifically target the mobile market.
With such a rich user experience comes the need for a lot of client-side logic; don’t you risk having to build everything twice?
It is a very common misunderstanding to think that logic will be duplicated. Instead there will be more of a shift from server to client for some logic. If we want to provide a richer user experience to the end user, our UI should be snappy and interactive. Logic related to usability such as a rich user interface, component interaction (for example; auto-complete, rich data grids and interactive charts), basic input validation and AJAX based partial page (re)rendering will move from server to client. Core business logic such as data validation against business rules and database communication are still the responsibilities of the back-end.
The front end market is still very volatile. There are new frameworks popping up every week and even more seem to disappear or are no longer supported. How do you see companies support today’s technologies that might already be deprecated tomorrow?
That is true, but not limited to just front-end engineering itself. The entire digital market is continuously evolving at an ever-increasing pace. This is a challenge but it also allows businesses to respond rapidly to new customer needs. Customer needs change fast and technology should keep up – if possible even stay ahead. I see the volatility in the front-end market as a great advantage.
This change in pace should challenge companies to organize themselves in such a way that they can embrace it – and not feel threatened by it. They have to be agile on every level, need lightweight processes, fast go-to-market strategies and modular applications instead of monoliths. To support all these objectives they need to fine-tune their ALM workflow and they have to rethink application architecture, also at the front-end level.
With so many frameworks available, you also get to think about standards. Do you see this market converge on a common standard or is diversity/specialization going to be the norm?
Talking about the current variety of frameworks; let’s just zoom in for a moment on AngularJs. It is by far the most popular web framework out there. The first version was created in 2009. At that point in time features like two-way data binding, reusable web components and the option to modularize your front-end code were not standardized at all. AngularJs filled the gap and implemented these functionalities. It evolved with new needs and over time a lot of new and exciting features were added. Today, after more than five years, the authors are creating Angular 2. It is a complete rewrite of their code base, but behind the scenes it will rely on the standards to deliver these functionalities. The added value in all of this is that you don’t have to wire all these functionalities together yourself if frameworks such as AngularJs are doing it for you and providing a generic syntax at the same time!
What is your personal favorite framework or killer feature?
I personally don’t have just one favorite framework. I am always using a combination of useful libraries and frameworks to get where I want to be. At this moment I prefer the combination of AngularJs as an HTML5 framework with Bootstrap to support a responsive design. I also really like Node.js. Apart from its qualities as a server-side technology, Node.js is also a great platform leveraging tools as Grunt (for setting up a pretty decent ALM workflow) and managing dependencies with Bower. I like this setup but a lot of very good alternatives are popping up, which is great because they push the web forward.
Listing all the front-end frameworks and libraries would take us a bit too far but join us at the April 22nd AE Foyer with Glenn Dejaeger and Thomas Anciaux to see how front-end engineering creates a whole new world of ideas and opportunities for your business.