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.
The 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.
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.
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.
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.
Some elements to consider before using a framework/library are, but not limited to:
Here are some advantages and disadvantages of using a library or framework for your project:
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.