With 2019 halfway through, the front-end community has been abuzz with articles about the future of the front end. Recently I saw ali’s article about the front-end of the future, and I have some thoughts of my own. I suggest that those who have not read the article can go and have a look.
What are the opportunities for the front end in the future?
Although I haven’t been working on the front end for a long time, I first started working on the front end around 2012, which is the end of phase 2 above. But from my personal experience, at that time the front end was still accompanied by the first phase of the cut map. Start a div with a Sublime project. Browser compatibility by hand, JS introduction order by brain. If you were looking for a job, PS + jQuery + DIV layout was enough (plus if you cut well). If you knew how to use ExtJs, you were king.
And after two years because the work content and front end relation is not big, also care less. When it comes back, it will be the “three Kingdoms” era of Angular, React and Vue. To do the project is also the engineering process started by Webpack. The compatibility of the browser is handled by the preprocessor, and the graphics cutting is transferred to the UI. The front-end is mainly responsible For the data and interaction processing of JavaScript and the BFF (Backend For FrontEnd) based on Node.js.
Reluctantly, I’ve been through the early stages of front-end development. One of the biggest feelings in retrospect is that front-end development is becoming more and more like back-end development. Today’s Webpack starts like a new Java project in Eclipse, and NPM is like Maven and Gandle. MVC can also be seen in flux – style data management patterns.
Why did the front end evolve the way it did? If you look at history, the mature use of Ajax laid the groundwork for the separation of the front and back ends. The back end can focus more on the data layer, leaving rendering and interaction back to the front end. The concept of SPas or rich applications was born at this time, and as hardware and networking conditions evolved, spas and rich applications became possible.
The separation of the front and back ends also changes the software architecture from C/S to B/S. But the essence of software hasn’t really changed. The front-end takes back the data processing part that the back-end is good at. Thus, THE Backbone MVC framework emerged. Once the data layer problem is solved, there is another unavoidable problem, which is the UI update. Traditional DOM manipulation can be a developer’s nightmare to write and maintain in the face of complex projects, and a lot of DOM manipulation can cause performance problems. The framework for Virtual DOM and MVVM came into being. Except MVVM wasn’t invented on the front end either. It first appeared on Microsoft’s WPF.
Another driver is Node.js. Node.js allows front-end programmers to write all the tools they need on the front end without barriers. Modularity, preprocessors, and packaging tools followed. Of course, some back-end programmers bring their back-end experience with them.
In terms of business, the current front-end engineering is based on all kinds of CLI scaffolding start. With the exception of the interactive C-side, most mid-stage management systems are cruD-based, and scaffolding plus UI libraries can be set up quickly. This part is easily replaced by engineering. The construction of mid-stage systems and CRUD-oriented systems will be simplified. (Have you heard of Ali’s Flying ice?)
So from this point of view, the future is going to be more forward, and the future is going to be more backward. Moving “forward” to a more interactive approach will blur the boundaries with the UI (or simply merge), which may require CSS combined with the UI’s art cells (heavy C-side); While the “back” is closer to the back end, node.js-based BFF layer will be another direction (such as the construction of front-end infrastructure, development and maintenance of engineering tools), which may require solid basic skills. There is also graphics-related technology (WebGL, Canvas), because graphics-related technology is limited by the current hardware and is relatively less in the front end. Of course, this part needs a solid foundation of mathematics. While some of the work may now be simplified by tools, IOT and AR/VR technologies will further expand the scope of the front end, even if the language is JavaScript.
The above is my personal reflection on the future direction of the front-end, most of which is from a personal point of view. If there are shortcomings, please kindly exchange and correct them.