27 Web Development Terms You Should Absolutely Know About
Tags: javascript, beginners, webdev
Published: 2019-12-30 13:37:06

---
title: "27 Web Development Terms You Should Absolutely Know About"
published: true
description: "Just starting out with web development? Here are 20+ Web Development terms you should absolutely know about"
tags: javascript, beginners, webdev
---

If you're just starting out with web development chances are you'll be soon overwhelmed with tech jargon. You'll begin to ask yourself "what is AJAX?", "What is an API"?

Expert developers know them all, but you shouldn't feel bad for not having any clue about a "transpiler". Here's a little glossary for helping you out!

**_If you feel the urge to yell at me in the comments [read this first](https://dev.to/valentinogagliardi/what-s-an-api-really-the-elusive-meaning-of-application-programming-interface-2f93)_**. Enjoy!

1. **AJAX**: a set of technologies for fetching data in the browser without causing a page refresh. The acronym stands for "Asynchronous JavaScript and XML", coined in 1999.

2. **API**: stands for Application Programming Interface, but don't bother the strict definition for now: an API in programming is a set of tools, a toolbox of functions (also called methods), built by other developers and ready for use. With time you'll learn how the term has slightly different meanings depending on the context. 

3. **Native API**: a native API is a built-in tool available by default in a programming environment. Speaking of browsers for example we say that `document.querySelector()` is part of the native API for selecting HTML elements.

4. **Browser console**: in most web browsers you can access a developer toolbox. In Firefox and Chrome on Mac press Command + Option + I, on Linux (and Windows if I can recall) press F12. That will open a interactive console where you can type and execute JavaScript code. The console will also show errors and other messages from your JavaScript programs.

5. **Debugger**: debuggers are tools built for helping developers to find why and where a program stops working. In JavaScript there is also the `debugger` instruction which stops the script exactly where it's placed.

6. **Browser API or Web API**: like native APIs a Web API is a specific functionality available in a web browser. Developers can use these methods out of the box. Examples of Web API are `setTimeout`, `setInterval`, `console`. For a complete list check out [Web APIs](https://developer.mozilla.org/en-US/docs/Web/API).

7. **ECMAScript**: it is a standard from which JavaScript has been implemented. It could also be used as the "official" name for JavaScript. In 1996 JavaScript was donated to ECMA international, a third-party entity which takes care of defining standards for a lot of technology related things.

8. **ES5**: acronym for ECMAScript 2009, the fifth version of JavaScript. To avoid confusion it's more correct to say ECMAScript + year for denoting a specific JavaScript version.

9. **ES6**: stands for ECMAScript 2015, the sixth version of JavaScript. Since 2015 the JavaScript committee decided to release new features yearly. From there we had ECMAScript 2016, ECMAScript 2017, ECMAScript 2018, and so on.

10. **JavaScript engine**: is part of the browser and is able to compile and interpret JavaScript code. Browser vendors build JavaScript engines by following (sometimes not so strictly) a document called JavaScript specification.

11. **JavaScript specification**: is a formal, written document which outlines how the JavaScript language should behave. Browser vendors read the spec and implement JavaScript engines in a way that JavaScript code is executed as the spec prescribes.

12. **Node.js**: an environment for running JavaScript outside of the browser. It includes a JavaScript engine, V8, for compiling and executing the code. Node.js is mostly used on the server-side and for command-line tools.

13. **Node package manager**: npm in short, is a tool for managing the workflow of JavaScript projects, from installing third-part packages to shipping code.

14. **HTTP request**: is the act of "talking" to a remote web server (also called web service) for fetching or saving data. An example of HTTP request is when you visit some web page with a browser. Web pages in turn can make HTTP requests too for fetching data, mostly to REST APIs (see below). While a web service is not the same thing as a web server, there is always some kind of server listening for connections behind a web service.

15. **HTTP error**: sometimes things don't go well when talking to web services and the server may respond with an error. Errors are denoted with a numeric code: some common errors are 500 (server error), 404 (not found), 403 (forbidden), and so on.

16. **JSON**: JSON stands for JavaScript Object Notation, a format for exchanging data between web service and web applications, yet not limited only to them.

17. **REST API**: is a web service (local or remote) which can expose data. Web applications (and any kind of application in general) can make HTTP request to a REST API for interacting with an underlying database, or simply for sending commands to the system.

18. **Transpiler**: older browsers do not support modern JavaScript syntax from ECMAScript 2015 and beyond. A transpiler is a tool which takes modern JavaScript syntax and spits out a more compatible version (ECMAScript 2009).

19. **Proposal**: JavaScript innovation is fueled by a group of developers and academics forming a committee, called TC39. Members of the committee can submit proposals for improving and adding new features to the language. A proposal is a formal description outlining what the new feature does and how it'll be used in JavaScript.

20. **Stage N**: new JavaScript proposals always start at stage 0. The more the proposal is voted by the committee, the more it advances to the next stages: 1, 2, 3, and 4. Every time you read "stage 1" or "stage 2", it's the stage at which the proposal is currently in. A proposal at stage 2 for example means it is doing fairly well and it will most likely move forward to the next stages. The final stage is 4, meaning that the new feature will land into the language.

21. **Vanilla JavaScript**: vanilla JavaScript is a term for denoting "pure" JavaScript applications, i.e. those written without the help of a frontend library like React, Vue, or Angular.

22. **XMLHttpRequest**: it is a native object available in browsers for making HTTP requests to remote resources. XMLHttpRequest is part of the AJAX family, a set of technologies for fetching data in the browser without causing a page refresh.

23. **Fetch API**: it is a native API for making HTTP requests, much like XMLHttpRequest, but based on ECMAScript 2015 Promises. It is considered the successor of XMLHttpRequest, yet [builds on top of it](https://www.valentinog.com/blog/fetch-api/).

24. **CORS**: acronym for Cross-Origin Resource Sharing. It is a way for browsers to give access to a given domain, for instance _b-example.dev_ to resources living on a different domain, ie. _a-example.dev_. By default browsers block HTTP requests to remote resources originating  from objects like XMLHttpRequest.

25. **WebSocket**: it is an internet communication protocol which provides a mean to communicate in both directions over a single TCP connection. With a WebSocket, client and server can talk to each other in real time, like they were involved in a telephone call: once connected, a client will be able to receive data from the server, without any need to continuously "refresh" the connection. On the other hand the server will also be able to receive data in real time from the client inside the same connection. WebSockets are mostly used for chat and real time applications.

26. **SQL**: acronym for Structured Query Language. Although SQL leans more on the backend, a basic understanding of SQL is always nice to have. SQL is a language for interacting with databases. With SQL you can create databases, tables, and build complex instructions for querying and modifying data. An example of SQL is `SELECT * FROM table_name;`.

27. **GraphQL**: GraphQL is a query language for interacting with data sources. GraphQL leans more on the frontend and offers great flexibility over the classic REST approach for fetching and saving data.

Want to add something? What's missing? Let me know in the comments!