Il est très difficile de s’y retrouver dans les méandres des technologies du web, surtout qu’elles évoluent très rapidement. Par exemple, les technologies utilisées aujourd’hui par le réseau social Twitter n’existaient pas il y a 10 ans. Je vais vous dresser dans cet article un panorama non exhaustif des différents langages de programmation qui font le web d’aujourd’hui. Vous aurez enfin les clefs pour comprendre votre développeur !
Il existe deux grandes familles de langages de programmation dans le web :
- les technologies dites « front-end » qui vous permettront d’avoir un beau site, facile à utiliser mais statique.
- les technologies dites « back-end » qui vous permettront de stocker et traiter des informations afin d’avoir plus qu’un simple site vitrine.
Les sites clefs en main
Il est important de ne pas confondre ces langages de programmation avec les sites clef en main. Vous pouvez par exemple, sans écrire la moindre ligne de code, créer un blog sur Tumblr ou sur WordPress, développer un site de e-commerce avec Magento ou Prestashop ou des sites un peu plus complexes avec Drupal ou Joomla. Ces technologies vous évitent de réinventer la roue et répondent à des besoins classiques : blog, site de e-commerce, site vitrine, forums, etc.
Comme tout site internet, même un blog WordPress repose sur les langages de programmation que je vais vous présenter. En effet, le langage « back-end » dans lequel WordPress et Prestashop sont développés est : PHP et tous les thèmes qui vous permettront d’avoir un beau design sont réalisés en HTML, CSS et Javascript.
Les technologies qui vous permettent d’afficher une page web
HTML et CSS
Le premier langage, le HTML, est à la fois le plus essentiel et le plus facile d’accès pour les débutants. Sans le HTML, les données (images, texte, vidéos, formulaires, titres) d’une page web ne seraient pas structurées et les pages ne seraient pas reliées entre elles par des liens. En revanche, le HTML seul ne vous donne pas la possibilité de créer un beau design et votre site ne passera jamais au XXIe siècle… La nouvelle version d’HTML (HTML 5) améliore le rendu des sites en mode hors connexion et offre des fonctionnalités avancées pour le web mobile et la vidéo en streaming.
Le langage qui permet de modifier le design de vos pages web s’appelle CSS. Sans lui, il serait très fastidieux de créer un menu, d’aligner les éléments de texte, de créer des boutons ou de changer l’opacité de certains blocs. Dans sa nouvelle version (CSS 3), il est même possible de créer des petites animations (rotation, translations, agrandissement, arrondissement des bords, ajout d’ombres, etc.).
En règle générale, votre designer vous fournira un site en images et ce sera alors le rôle de l’intégrateur de transformer ce design en une page web compatible avec les différents navigateurs (Internet Explorer, Chrome, Mozilla Firefox ou Safari pour citer les principaux) et les différents supports (smartphones, tablettes, ordinateurs portables, grands écrans, tv connectée, etc.). L’intégration d’un design, est loin d’être évidente car les différents supports et navigateurs ont chacun leurs spécificités…
Les feuilles de style peuvent alors faire plusieurs milliers de ligne. Pour gagner du temps, vous pourrez utiliser un métalangage comme SASS ou LESS afin de vous simplifier l’écriture du code CSS et partir d’une base d’éléments graphiques toute faite avec TwitterBootstrap (tableaux, boutons, titres, paragraphes, alignement des blocs, etc.).
Javascript
Avec HTML et CSS, vous aurez un beau site statique avec un menu, un beau design et du contenu. Si vous souhaiter créer un album photo, ajouter un calendrier ou des transitions un peu complexes, afficher ou cacher des parties de page, répondre au clic de souris ou valider de formulaire à la volée : vous aurez besoin de Javascript.
Le Javascript vous permet d’écrire des petits scripts pour améliorer l’expérience de navigation et l’ergonomie de votre site. Javascript vous permet notamment de ne pas recharger la page à chaque fois que l’internaute fait une action via ce que l’on appelle l’AJAX (le Javascript Asynchrone). L’un des premiers sites connus à avoir usé et abusé de cette technique est Facebook.
Afin de simplifier l’écriture du Javascript (qui n’est pas compatible de la même manière sur tous les navigateurs), je vous conseille d’utiliser des librairies toutes faites, comme jQuery. Si vous avez beaucoup de Javascript à écrire (comme dans un système de chat par exemple), vous pouvez utiliser un Framework (c’est-à-dire un kit de composants pour simplifier et structurer l’écriture du code) comme Backbone.js.
Votre site est désormais beau mais manquera un peu de corps : votre visiteur ne pourra ni créer un compte, ni recevoir des emails, ni avoir un panier, ni calculer le prix total de ce panier, ni payer en ligne. Pour toutes les actions qui nécessitent de garder en mémoire ou traiter des données, vous devrez travailler avec une base de donnée et un langage côté serveur dit back-end. Pour cela plusieurs solutions s’offrent à vous, la plus connue et ancienne étant PHP, la plus à la mode étant Ruby. Par soucis de simplification, je n’aborderai pas les autres langages comme C# ou Java qui peuvent aussi être utilisés sur le web.
Les langages de programmation côté serveur
Php
Le PHP est le langage phare des années 2000 sur le web. La force de ce langage est sa facilité d’accès. C’est un langage qui a fait ses preuves et qui n’est pas mort, loin de là. La plupart des sites clefs en main connus reposent sur PHP (WordPress pour les blogs, Prestashop pour le e-commerce, Drupal ou Joomla pour les gestionnaires de contenus ou CMS). De ce fait, il y aura toujours un fort besoin de développeurs PHP, ne serait-ce que pour développer des modules spécifiques pour ces sites tout fait !
Comme la plupart des besoins du web sont communs aux différents développeurs, des « Framework » se sont développés pour structurer la création du site en partant de zéro (par opposition aux sites clefs en main) selon les bonnes pratiques acquises par l’expérience des autres développeurs. Si la prise en main du Framework peut prendre un certain temps au développeur, sa productivité en sera décuplée car il y trouvera les réponses aux problèmes courants. Les plus connus pour PHP sont : Symfony, CakePHP ou Zend Framework.
Python
Python est un langage également populaire très utilisé pour faire des scripts d’automatisation de tâches répétitives. Ce langage est très répandu dans le monde scientifique et universitaire, ce qui lui permet d’avoir des librairies existantes très puissantes, dans de nombreux domaines fondamentaux des sciences (intelligence artificielle, traitement des images ou traitement sémantique, par exemple). Ce langage est assez populaire sur le web grâce à son Framework Django.
Ruby et son Framework Ruby on Rails
Ruby est sans doute le langage « back-end » le plus populaire du web en raison du développement fulgurant du célèbre Framework Ruby on Rails, adopté par de nombreuses start-up américaines comme Twitter, Airbnb ou Basecamp. L’avantage de Ruby on Rails est la déconcertante rapidité avec laquelle il est possible de créer une application web avec des formulaires. Or la plupart des sites web reposent sur les formulaires et quelques pages statiques. Rails est aussi très puissant pour gérer les interactions avec les sites tiers via leurs API, c’est-à-dire l’interface fournie par des sites tiers pour accéder à des fonctionnalités qui leur sont propres. Facebook donne par exemple accès à son « graphe social » via des API, Google Map à des fonctionnalités de visualisation de cartes, etc. Or c’est à mon sens l’une des révolutions du web actuel : il est dorénavant possible de créer des applications très puissantes en quelques heures en utilisant des services payants et gratuits de sites tiers. De plus, la communauté étant importante et en forte croissance, il existe de nombreuses librairies toutes faites (appelées Gem) qui répondront à vos besoins les plus divers.
Javascript côté serveur grâce à Node.js
Il est maintenant possible d’utiliser Javascript à la fois en « front-end » et « back-end » grâce à Node.js, issu du nouveau moteur Javascript développé par l’équipe Google pour son navigateur Chrome. Node.js est une technologies qui permet de créer des sites qui s’approchent le plus des logiciels, un peu comme Gmail. Node.js est excellent pour gérer le temps réel comme les systèmes de chat.
Conclusion, comment choisir?
En somme, chaque développeur aura sa préférence pour un langage de programmation et sera affable sur ses choix. En tant que chef d’entreprise, n’écoutez pas tout ce que l’on vous dit et choisissez la solution la plus adaptée à vos besoins. Si vous n’avez pas de développeurs, je vous conseille de prendre une solution toute prête de type WordPress pour un blog, Joomla ou Prestashop pour un site de e-commerce. Vous n’aurez alors pas le choix de l’architecture et du langage de programmation sous-jacent (PHP). Dépensez alors votre budget en design et en intégration web.
Si votre site est original et qu’il demande plus de complexité, sachez qu’il souvent plus aisé de repartir de zéro que de modifier la moitié de Prestashop. Je vous invite alors à trouver un bon développeur et à faire le choix avec lui. Sachez que les coûts pourront être importants, car développer un site de zéro n’est pas anodin. Comptez bien 3 à 6 mois de travail pour avoir une première version de votre site. Vu la vitesse de développement d’un site avec Ruby on Rails ainsi que la taille de sa communauté, je pense que pour 70% des gros sites (hors e-commerce et blog), c’est la solution à utiliser. Restez cependant à l’écoute des progrès de Node.js si vous voulez être en avance sur votre temps car les grandes innovations qui permettront à des applications web d’être du niveau d’ergonomie et de fonctionnalité d’un logiciel viendront sans aucun doute de là.