paint-brush
Is HTML, CSS, and JavaScript Enough for Front-End Development? The Sad Truthby@katshidev
271 reads

Is HTML, CSS, and JavaScript Enough for Front-End Development? The Sad Truth

by Nathan KatshiOctober 3rd, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

In this article, I share insights on HTML, CSS, and JavaScript as the main components for building web applications. In today’s world, are they enough to build fully functional front-end applications, or do we need modern frameworks and libraries like React, Angular, and Vue ?
featured image - Is HTML, CSS, and JavaScript Enough for Front-End Development? The Sad Truth
Nathan Katshi HackerNoon profile picture

Thousands of websites are created every day. No matter what text editor, tool, or IDE is used for building those websites, they almost all involve three programming languages: HTML, CSS, and JavaScript. Learning HTML, CSS, and JavaScript is required for everyone involved in front-end development, as they’re considered the starting point of this field.

What are HTML, CSS, and JavaScript?

A computer screen showing CSS codeThe Hypertext Markup Language (HTML) is the de facto standard for building static websites. HTML was invented in 1991, released two years later, and has evolved since then. Think of HTML as the skeleton of your website or web application.


The Cascading Style Sheet, CSS, is used for styling, i.e., to give shape to website elements. CSS allows you to change fonts, colors, and shapes and provides an unlimited set of features to create beautiful animations, thus creating attractive user interfaces. When well combined, both languages can deliver beautiful websites and interfaces, but they will lack a very important feature: Interaction.


That’s where JavaScript comes in. Created in 1995, JavaScript is a powerful programming language used in nearly every dynamic website on the Internet. JavaScript is “The language of the web.” The interactions between a user and the website are a key factor not only in user experience but also in functionality. For example, using JavaScript, users can trigger the sending of emails, submit forms, enable and disable features with buttons, display text, and so on.

Limitations of HTML, CSS, and JavaScript

In theory, HTML, CSS, and JavaScript are sufficient for building small projects for websites and applications. Whether it's a small business needing a website with a few pages to showcase their products, provide a contact form, or offer a newsletter subscription section, there is no need to look further. HTML, CSS, and JavaScript handle these requirements perfectly.


However, when the project grows in size and complexity and the need for scalability increases, libraries, and frameworks become the standard.

Libraries and Frameworks to the Rescue

A library is a collection of pre-written code that allows developers to optimize some tasks instead of writing code from scratch.


A framework provides a foundation on which developers can build programs. It serves as a base for the development process, providing a set of tools and elements that help streamline the development.


A screen showing React App and Routes components


JavaScript, for instance, has many frameworks and libraries like jQuery, React, Vue, and Angular. Each one has its characteristics, features, and best use case. As a developer, you need to analyze and decide which one to use for your project.


The general conception is as follows: professional web development requires the use of frameworks and libraries. While this statement is not false, it is important to consider some elements before using them.

Key Elements to Consider

Some elements to consider before using a framework/library are, but not limited to:

  • Project Size and Scale: For smaller projects, a lightweight library may suffice, while larger, more complex projects may require a robust framework.


  • Team Knowledge: Working with a tool that your team is comfortable with can speed up development and reduce the learning curves.


  • Integration: The chosen framework or library should integrate well with existing tools or technologies to prevent potential conflicts.


  • Scalability: As the project scales, the framework/library should be able to handle increased load and complexity.

Pros and Cons of Using a Library or Framework

Here are some advantages and disadvantages of using a library or framework for your project:

Pros

  • Reusable components: Libraries and frameworks come with a set of pre-built components that can be reused in different parts of your projects, saving time and effort.


  • Faster development: they provide tools and features that streamline the development process, allowing to build applications more quickly.


  • Consistency in the code structure: they enforce a consistent coding style and structure, which can make the codebase easier to maintain and understand.

Cons

  • Requires extensive knowledge: Mastering a new library or framework can be time-consuming and requires a significant investment in learning.


  • Can be overkill for smaller projects: For simple projects, using a framework might be unnecessary and could complicate the development process.


  • Potential for performance overhead: Some frameworks can add performance overhead, which may affect the speed and efficiency of your application.


  • Dependency management: Relying on a library or framework means you need to manage and keep dependencies up to date, which will of course add some complexity to your project.

Summary

In summary, the choice of building websites or applications using HTML, CSS, and JavaScript or using a Framework like Vue or React depends on several factors.


As a good practice, if the project is small or requires just a few pages with non-complex interactions, a framework is likely surplus to requirements.


However, if there is a need for reusable components, a structured architecture, and scalability, the best option is to use a library or framework based on project requirements, team knowledge of the technology, available support, integration to other APIs or external systems, databases, etc.


The sad truth is, that whether you use vanilla JavaScript or a framework to build your application, in the end, the user doesn’t care what technology was used. All they want is a beautiful interface and a fully functional product.