# Programming languages
# JavaScript
Over the past years, JavaScript became the most popular programming language in the open-source community. It has been initially designed to add dynamic features to web pages, but became more an more mature and now offers comprehensive frameworks to handle modern web applications. JavaScript is also now commonly used on the server side with the Node.js framework.
# Node
Node is a runtime environment that executes JavaScript on any platform, outside of a web browser. It is used to develop backend services, and comes with a vast set of libraries. The following list is by far not exhaustive, but presents the main packages that can be of some use when developing Node applications.
# Express
Express is the most popular Node HTTP server. Express is described as a "fast, unopinionated, minimalist web framework for Node.js". It is used in production by companies such as IBM, Accenture or Uber. Lots of additional libraries are also available to extend its core features.
# Koa
Koa is another Node HTTP middleware. It is designed for high performance and to allow the use of the ES2017 async functions. In order to ensure high performance, Koa is minimalist out of the box, but an active community worked on libraries to extend its initial features.
# Hapi
Hapi is a more comprehensive HTTP server that is designed to serve as a REST API. It comes out of the box with the most commonly required features, such as an authentication and authorisation framework, internationalisation, data validation... An active community also developed several additional modules.
# Passport
Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped in to any Express-based web application. A comprehensive set of strategies support authentication using a username and password, Facebook, Twitter, and more.
# TypeScript
TypeScript is a programming language that has been built on top of JavaScript. It adds some missing features to JavaScript, in particular the ability to define types, so the development experience is improved, and the risk of bugs is mitigated. It is maintained by Microsoft.
# Python
Python is a language that excels in rapid application development. It was initially developed as a scripting language for building prototypes that meant to be then coded in C++, but it turned out to be performant enough to be used in production. Python's design philosophy emphasizes code readability. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects. Python has been notably boosted by its use in Data Science and Artificial Intelligence.
The most famous web framework is Django, that allows to write web applications really fast. It can be used to create REST API with Django Rest Framework. Flask is another popular lightweight Python framework.
# PHP
Historically, PHP is one of the first scripting languages available for creating websites. Although the language significantly evolved since, it tends to be outweighed by more dynamic communities such as Python or JavaScript. However, PHP is mastered by numerous developers, and the Laravel framework offers a serious solution for bringing up a solid application backend.
# Java
Java is one of the most common programming languages. It is backed by Oracle. While some of the blocks remain proprietary, most of Java has now been open-sourced.
Java is one of the programming languages that are the mostly used in corporations, but tends to be overshadowed by other languages such as JavaScript or Python when it comes to the open-source world. It may be due to the fact that Java tends to be excessively verbose, and that the use of a Java Runtime Environment, that allows to run any code on any type of operating system, became a less interesting feature as containerisation of applications became the new trend to deploy and run services.
Spring Boot is a full Java framework for building web services.
# Go
Go is a relatively new (2009) programming language developed by Google. Its goal is to allow the building of strong, performant, compiled applications while offering language that would remain easy to learn and easy to understand. Go is commonly used in the development of microservices and cloud technologies. It is one of the top trending languages in GitHub, and deserves to be closely monitored.
# R
R is a specialised programming language for statistical computing. It is vastly used in data science, and data specialists may want to know how to use it in order to mine and extract evidence from existing datasets. It is sometimes the preferred tool of epidemiologists for data processing, such as in the R4Epis initiative.