During the last several years, I have read many blog posts saying that in the past, it was easy to develop applications. That you simply needed to create an index.html page and immediately add JavaScript and CSS to start working on a project. But, that really bothers me because you know what, you still can do that and your pages should work as expected. Also, you could argue that it was more difficult to develop applications over ten years ago due to the fact that there were a lot of browsers’ differences with different versions of IE and the standards.

We have become so much of frameworks and libraries dependant that I have seen developers creating React components as a replacement for a <header> tag on a static website. Hammering React or any other (library or framework) to all the projects is as bad as adding jQuery without needing it. Funny that those are the same developers that put jQuery down as an unnecessary library.

jQuery was not perfect. But, at least, developers were not as dependent on jQuery as they are React, Angular, or Vue dependant today because the content came first. There are simple applications that can be done in pure HTML, CSS, and JavaScript that are being created using React components because that is what everybody else is doing. 

Using a library because it is popular is not responsible. You should use a library or a framework based on the needs of the application. Popularity is one of the factors but not the only factor to consider in choosing a library and a framework. If we have learned anything from jQuery, Backbone, and Prototype (even Angular 1.x) is that nothing lasts forever. jQuery was the go-to library for front-end developers. However, with time, we have moved on to new approaches and adopted some ideas into the browsers. The same will happen with libraries like Reach, Vue, etc. That is the continuing lifecycle of JavaScript application development.

The external library or the framework does not need to be the last resort. But, at least, we should consider options and if the library is even necessary at this point or in the near future. For example, jQuery is necessary for some developers today. However, if I have to create a web application targeting mobile devices, they would not use jQuery Mobile because there are better alternatives.

With a lot of advantages that we have today compared to 10 years ago, most of them have been for developer tooling and ease of development. Nevertheless, I feel that the users have been neglected by some developers. For example, I know of developers that just don’t care to support older browsers just because that is not their problem. If the user has a legacy browser it is his/her problem for not updating. If the user has low bandwidth is their problem because “97% of the user already have modern browsers”. “If the user has a problem loading JavaScript, it is his problem because the script is working perfectly on my machine.” 

Today it is more difficult to learn how to create websites even though we don’t have to deal with browser differences as much as we did in the past. The main issue is that nobody is teaching the fundamentals of web development using just HTML. Bootcamps are jumping to teach React as a complete alternative to the HTML itself. I had students working on a simple page using React components that needed JavaScript to render the page instead of just adding the content directly to the HTML because they don’t know that they don’t need components for everything. That is a problem that we need to fix as a community. New developers are intimidated by the tools, languages, and frameworks in modern web development. We need to find a way to make it easier for them to jump into coding without worrying about the tools. That is the reason I like new developers to learn just HTML and CSS before they jump into JavaScript or any framework or library.

One of the beauties of the Web is giving people the freedom to create content. But, if we make difficult the creation of web pages, fewer people will be willing to learn even basic HTML because it will be too intimidating from the start. 

PS: I am not a hater. I have used everything I mentioned here. I just want an easier entry point for new developers and a more responsible approach when developing applications.

«
»