Is Frontend Dev Getting Easier?

Chances are that you hear new software engineers have passion for frontend development nowadays. There are plenty of reasons supporting this, of which one representative comment is that frontend jobs are indispensable and they are easy at the same time. Is it true?

One cause of the status quo (indispensable) of frontend dev is that it is intrinsically connected with user experience (UX) in that it works on user interface (UI). It always stands in front of users, being examined carefully. A user away from scripts may not understand why the progress circle can spin around while waiting for the response from a server, but he or she must have such irritation when the progress circle doesn’t spin at all. This example just depicts a small part of the plight of frontend development: you have to meet the users’ requirements and lead them to a better experience which they even may not have envisioned. That is, to be has user friendly as possible and innovative at the same time.

What is the difference between frontend and backend in the “human friendly” definition? Use the progress circle as an example again. Backend cares about velocity, efficiency, and many other aspects that can be measured by number. Frontend also needs such precise measurement. Users are driven mad if nothing is responsive due to the low speed. However, what if the response is in the style of a plain json? What if the progress circle is replaced with a percentage number? It is usable. Nevertheless, it is not that user friendly. Common users may not understand what the json file stands for at the first glance, and they may consider the percentage number ugly. Frontend takes a large part of such work. Fairly speaking, though this article is now been written on a code editor in Markdown mode, the code editor does provide with a comparatively good user interface, with which I can be absorbed in writing. Without frontend, there may be less users of the computer or the internet. People would not be interested in those calculational code blocks if they are not turned into squares, circles, and other geometric items. People need a friendly interaction with the computer. Backend doesn’t necessarily need to care about human friendly interaction. That is kind of division of labor and collaboration, another type of “divide and conquer”.

Since frontend is bound with user experience, it entails craftsmanship. It is human that uses the websites (there are crawlers, though), the apps, and so forth. Even though there are plenty of frameworks and libraries in NPM for frontend developers to pick from, those frameworks are more like screwdrivers instead of magic wands. At present, there is a pipeline like “es6 => vue/angular/react => node => babel => webpack”, but it is not perfect enough. Does it surpasses the software engineering functionality of Java in backend? Are frontend developers able to draw items on html5 canvas in a way as convenient as placing divs on html? What is the last time that you tried so hard to align a box to a paragrah? The frameworks make it easier, but it is as hard as before if you want to be more than a mediocre frontend developer and want to build something runs as smoothly as it is naturaly built for humans.

Frontend world is evoluting every day. I didn’t realize that Angular2 had been out for a while before I searched for comparisons of Angular, Vue, and React. Besides, frontend developers come to pay attention to performance as well. You have source-map, chrome developer tool, Postman, Charles and so on. The frontend world is now a mixture of the pursuit of performance and the aspire to humanity. Why can children learn to zoom in or out the images with pitch gestures on an iPad? Why is the pitch gesture so smooth and responsive? You may have jQuery, but how can you come out with this idea and how can you implement it without any lagging in a web app? Though tools are getting more advanced, the requirements are heading to the next level of rigor. Frontend development is not getting easier. On the contrary, it is getting more demanding, and more intersting now.