Languages

From: https://levelup.gitconnected.com/web-development-languages-36241b046a81

Great timeline copyrighted by Adrian Mejia

ECMAScript/ES6/ES8

ECMAScript is a standard that defines what a scripting language should do, and JavaScript is an implementation of ECMAScript. ActionScript is another example that has seen little use in recent years (for an explanation why, please refer to this Quora comment section), but it follows the same ECMA standard as JavaScript. Web browsers have various engines that compile, “understand,” and run the JavaScript code, but these are usually running the ECMAScript standards.

Since ECMAScript releases a new version every year, it is sometimes difficult for these engines to keep up with the changes to the language. That is why we a created the distinction now between ES6/ES2015, and any of the newer versions such as ES9/ES2018. To use the newer features of ES9, tools like Babel have been created, which transpile your code back into an older version of JavaScript (typically either ES5 or ES6) to ensure that it runs on all browsers. This article dives deep into the distinctions for further reading.

Node.js

Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine and is used to execute JavaScript outside the browser. This has allowed JavaScript to also be used as a server (backend) language as well as a frontend language. In fact, Node.js has become the most utilized choice for backend developers due to its ease of use and intuitive behavior. Since you use the same language on the client and the server, it is also allows far smaller and cleaner technology stack.

Node.js is built on an event-driven, non-blocking IO paradigm. This model allows the possibility to run several different processes simultaneously which makes it lightweight and efficient. Node has also become a great tool to communicate with devices such as an Arduino or Raspberry Pi.

Libraries

While Vanilla JavaScript is excellent (i.e., without any libraries or dependencies), utilizing the many open source libraries written in JavaScript can make your work significantly more manageable. Libraries can serve multiple roles, such as utilities (Lodash, jQuery) or tools for making your life as a developer easier (Webpack, i18n).

A few notable open source libraries are:

  • i18n — pronounced “internationalization” which simplifies localizing and making your app multilingual
  • jQuery — arguably the most famous JavaScript library, but most of its features are integrated into the core of JavaScript now
  • Moment — which simplifies working with date and time
  • ThreeJS — allows you to create, display and animate 3D graphics in the browser
Python Code : Photo by Chris Ried on Unsplash

PHP

PHP, the Hypertext Preprocessor, is a server-side scripting language that often gets paired with JavaScript instead of Node.js. PHP is still in extensive use today for its ease of use, availability, and compatibility (it still powers the majority of servers). PHP has grown to the point of being used now as a general-purpose programming language on the web instead of just a scripting language. It’s still receiving frequent updates and has a variety of tutorials for anyone willing to get started with it. PHP has also seen tremendous leaps recently with the official release of PHP version 7, adding significant improvements such as an updated engine, twice the speed, better error handling, and more.

Ruby

Ruby is a dynamic, object-oriented general-purpose programming language. Ruby is a well-liked and popular choice due to its wide variety of uses and stable releases. On the web, Ruby has been popular since the advent of Ruby on Rails, which we will discuss into in the frameworks section of this article series.

Python

Python is an interpreted, general-purpose programming language. Just like Ruby, Python is famous for its variety of use cases and simple programming typing style. Python is also used a lot in university Computer Science classes, making the language very well known throughout the workforce as students enter the field. Python also has a popular web framework (Django) which we will discuss when frameworks are covered, but it’s important to know that that you will need this if you’re interested in going into any of the fields of Artificial Intelligence, Machine Learning, or Big Data. Python is irreplaceable due to its frequent use in tutorials and examples, mainly if when processing vast amounts of data.

Golang

Golang (or Go) is one of the newer languages in web development but it has exploded in popularity. It is a typed and compiled language known for its minimalistic approach and focus on developer experience. The language was created by Google and has quickly grown in popularity with top tech companies as their favorite language to build micro-services.

The Layers of a Website : Copyrighted by Stidolph Media

HTML/CSS

These two languages are both their own, separate languages but given their dependency together, also paired together as one. HTML describes the structure of the page while CSS describes how that has to look. HTML (short for Hypertext Markup Language) is a markdown language used to describe the kind of content a document needs and brings all the interactions and data to one place. CSS (short for Cascading Style Sheets) is a style sheet language used to describe the style of a document concerning colors, typography, placement and more. These are crucial for any web developer to understand.

HTML5/CSS3

HTML5 and CSS3 are the latest releases for HTML and CSS respectively, and both have introduced groundbreaking features to the scene. New updates and releases are still on their way under these names, but adoption of these features by browsers can be slow. Therefore it’s always useful to consult a resource like caniuse to find out if you can use certain features inside certain browsers, or not.

Preprocessors and Templating Engines

The difference between Preprocessors and Templating Engines is mostly semantics. Many languages have preprocessors that allow you to write code in their syntax, which the preprocessor then transpiles into HTML or CSS (in the case of web development). This is referred to as “templating.” JSX used in React is an example of this as well as Pug for writing HTML inside JavaScript. There are also preprocessor for CSS, which facilitate automating browser compatibility (for example, autoprefixer), add CSS features not yet implemented in browsers (cssnext), and assist in writing cleaner, more maintainable CSS code (SassLessPostCSSStylus).

Others

The following languages are not primarily web development languages and not as widely used, but they do have enough adoption to be discuss (especially in specific corporate fields).

ASP.NET

ASP.NET is a server-side programming language designed by Microsoft in order to create dynamic pages back in 2002. .NET has evolved since then and is still used, for example on Sitecore.

C#

C# (pronounced C-sharp) is a C-language derivative general purpose programming language designed by Microsoft that takes the object-oriented nature of C++ further. This language can be used online for the server-side but gets commonly used for Windows-based programming, especially for games. One of the best-known uses of C# is in the game engine Unity 3D.

Java

Java is a popular object-oriented general purpose programming language that is relatively infamous in the web development community. The reason for this is twofold: primarily Java is overkill for most web applications and the time required to implement a change takes a lot longer in comparison to a lot of the previously mentioned languages. Java is still definitely used in the web development community, one famous example being Twitter, which was initially running Ruby on Rails, then switched over to Java to meet their scaling needs.