My Beef With The Front End
I’d like to start this read by stating that I appreciate that the front end is an ever evolving beast & that front end developers are probably among the most under rated developers, at least for the most part. This post is mostly based on my own opinions & personal experiences. Really, it’s quite funny, after having spent such a lengthy amount of time working with mostly Java based applications, it’s opened my eyes to a number of issues with front end development.
Anyone that’s familiar with front end development to practically any extent knows that the front end side of things suffers from a vast number of problems. One of the most commonly highlighted problems has got to be the analysis paralysis that comes with selecting the right front end framework.
Of course, you want to ensure that your front end delivers a lovely looking UI & an exceptional UX, making it as easy as possible for the customer to complete their journey. It’s reasonable why developers tend to focus a lot on front end development before actually jumping into a project, it makes sense to pick the right tools for the job, as common sense would dictate. But the number of frameworks, libraries, practices, etc. that comes with front end development seems to be growing at an exponential rate.
Another personal complaint I have about front end development is how there’s just an immense lack of standards. Now when I say this, I don’t mean the likes of implementing some accessibility feature(s), this is one area that has been standardised quite well in my opinion. With a more mature ecosystem such as the Java ecosystem, we have specific implementations for specific problems, generally we use a very formalised, well tested & well documented approach to solve a problem. You could say that we’ve agreed on industry standards for specific problems, this is one thing that I for one love about the Java ecosystem.
This bring me on to my next topic, the maturity & the associated issues that comes with a lack of maturity. With the front end, personally I just feel that we lack any serious level of maturity, I feel that a number of developers may disagree with this statement. But take application architecture as an example, in Java we have packages, generally most developers tend to specify the package names via functionality or domain logic, which makes sense. However, in my own experience, I’ve found that a number front end projects tend to just do their own thing with architecture. But even naming conventions aside, with a stack such as Java, we know what we want to do, we have industry standard architectures for different kinds of projects. With the front end, again, in my own experience, it’s often project specific rather than following any kind of industry standard.
Then there’s also the subject of design patterns, the back end it makes 100% sense to make use of tried & tested design patterns, they just make life easier. On the front end though, it’s debatable, first of all it would depend on your stack, but at times it can just add an unnecessary amount of complexity to your application. Take Redux as an example, I’ve seen people use & abuse a state management tool such as Redux more than I care to admit. I’m not saying this is an issue with Redux, but rather a lack of knowledge of alternative implementations or approaches. I’ve seen some cases where developers have used it simply because they’re unaware that they could use event listeners to handle state changes or state updates, etc. You could very easily use custom events to implement such a feature, you can even make it immutable if you like, it’s up to you.
I won’t continue my rant any further, I think that I’ve highlighted some of the issues that developers encounter when working on the front end. I appreciate that I’ve not included any real world examples, but as stated, this is largely based on past experiences. For all I know, since I’ve not been focusing too heavily on the front end, there may be something in the works or even something in place that solves all of the above & I’m simply unaware of it at this point in time. Anyhow, I hope you take this post with a pinch of salt since it’s just a rant & a set of my very own opinions, none of this is a hard fact as such.