Matrice Tech

L'objectif de ce contenu est de dresser une matrice des technologies autour du développement web et mobile.

⚠ Ce contenu est actuellement un brouillon "en cours de travaux", et n'est probablement pas encore pertinent dans son état actuel.

labyrinth.jpg

Pourquoi une matrice tech ?

  • Pour mieux naviguer dans l'ensemble des technologies du marché.
  • Pour mieux comprendre leur vocation et leurs enjeux.
  • Pour identifier rapidement leurs liens avec les différents langages de programmation.

Scope de la matrice

Le développement d'applications couvre un domaine excessivement large, aussi pour rester compréhensible et digeste nous nous concentrerons sur le développement web et mobile, et les technologies déjà installées sur le marché ou suffisamment dignes d'intérêt pour qu'on les prenne en compte, considérant qu'elles peuvent incarner des standards de demain.

Développement web

Le backend

Le scope du backend concerne des applications qui sont exécutées sur des serveurs, et qui ont pour vocation de servir des requêtes web, et répondre de différentes façon en fonction du besoin :

Site statique

Le serveur envoie au client une copie d'un document / un fichier auquel il a accès, comme une page HTML, une feuille de style, un PDF, une image, etc.

Site dynamique ou application web

Le serveur envoie au client un contenu de même nature qu'un site statique mais ce contenu a été généré dynamiquement pour satisfaire le client (le navigateur), cela signifie qu'à la différence d'un site statique, le client peut exprimer une demande plus riche en transmettant des paramètres qui pourront être pris en compte dynamiquement par le serveur pour accomplir un traitement et construire une réponse spécifiques.

Single Page Application

Le serveur se contente de fournir au client tout ce dont il a besoin pour charger sa page, y compris du code (JS) qui sera exécuté localement dans le navigateur. Dans ce contexte, souvent, le besoin est ramené à celui d'un site statique (on sert une page et les quelques éléments à inclure, puis le bundle JS qui contient la vraie application front). Si l'application s'exécutant côté client a besoin d'interagir avec le serveur pour, par exemple, persister des données en base, il n'est pas rare d'ajouter au serveur un comportement de site dynamique qui la plupart du temps prend la forme d'une API (RESTful).

Le frontend

HTML & CSS

Les navigateurs supportent un certain nombre de technologies standards du web permettant de construire des contenus avec HTML, les styliser avec CSS, agrémenter d'images, vidéos, audio, et autres animations, sans nécessité de coder avec un langage de programmation ; on parle alors e "programmation orientée contenu". Une grande partie de ce qu'on produit en front est faite directement avec ces standards.

JavaScript

C'est le seul langage nativement supporté par un navigateur, qui permet d'agir dynamiquement sur le contenu de la page ou de l'écran affiché.

SPA / PWA

SPA : Single Page Application PWA : Progressive Web App C'est l'évolution moderne d'une application front web qui consiste à utiliser JavaScript pour donner l'impression à l'utilisateur qu'il utilise une vraie application, et non pas un "site web", concrètement cela s'illustre par une page unique chargée une seule fois dés le début et le code JavaScript qui prend le relais pour faire tout le reste, mettre en scène l'ensemble des écrans, gérer le offline, stocker des données en local, et aller demander au serveur des modules complémentaires au fur et à mesure de ses besoins (service worker).

Développement mobile

Plateforme iOS

Plateforme Android

Multi plateformes

Technologies

Liste des frameworks, librairies, outils de la matrice :

Langages

Liste des langages de programmation et leurs liens avec les technologies :