Vous avez envie d’apprendre à coder ? Vous devez surement vous poser des milliers de questions, la première étant surement : mais par quel langage commencer ? Et la réponse n’est pas évidente tant le choix est vaste : Python, Ruby, PHP, peut-être HTML ? Est ce vraiment un langage d’ailleurs ? Si vous interrogez les développeurs de chacun de ces langages, nul doute qu’ils vous diront de commencer par leur langage. Avant de se lancer dans l’aventure, il convient de faire la distinction entre les deux grandes familles de langages. C’est en comprenant cette différence fondamentale que vous ferez un choix éclairé. Choisir un langage, c’est s’orienter ! Et pour s’orienter, vous devez avoir une vue globale : qui fait quoi, à quoi ça sert ? Nous allons le voir ensemble, chaque famille de code répond à un objectif particulier. Elles ne sont pas en concurrence. Bien au contraire, elles marchent ensemble.
Peut-être avez vous déjà entendu les termes FrontEnd et BackEnd autour de vous ? Très souvent, les développeurs se définissent comme “développeur front” ou “développeur back”. Dans le cas des “développeurs back”, ils vont aussi ajouter le nom du langage : “développeur back PHP” par exemple. Que cela signifie-t-il ? Avant de rentrer dans les détails, visualisons une page web comme vous en avez déjà vu des milliers. Une page pour présenter un produit ou un service.
Sur cette page, se trouvent plusieurs images et du texte. C’est ce qu’on appelle une page statique. Que cela signifie-t-il ? On ne peut pas la modifier en tant que visiteur. Le contenu a été pensé en amont et intégré dans la page. Ce genre de page est indispensable à tout site web. Sur une page d’accueil, le contenu est bien souvent un contenu figé : une succession de description, une liste de services, les informations de contact. La page s’affiche de façon identique pour n’importe quel visiteur et ne se rafraichit pas en fonction des dernières nouvelles. Le visiteur n’a aucune action dessus : il peut simplement passer en revue le texte ou les images qui s’affichent.
Maintenant, prenons l’exemple du site Amazon.
Prenons un moment pour comprendre ce qu’est réellement Amazon : un énorme catalogue où sont disponibles un nombre incalculable de références de produits en tout genre. On y trouve toujours des images et du texte, mais cette fois-ci, le site laisse le visiteur faire une recherche.
A partir d’un mot-clef, d’un nom d’auteur, d’une marque, le site va chercher pour vous les produits qui correspondent et vous afficher les résultats dans une nouvelle page.
A la différence d’un contenu figé, cette page n’existe pas vraiment. Aucun développeur n’a créé une page qui reprendrait tous les appareils photos disponibles. Ces résultats sont en fait générés, et c’est là toute la nuance ! C’est pour cela qu’on les appelle des pages dynamiques. Ces pages sont en fait le fruit d’une combinaison de critères choisis par le visiteur. Comment ça marche ? Chaque produit est enregistré dans une base de données (comme le serait un fichier excel), dans lequel sont répertoriées toutes les références. On peut imaginer que pour chaque référence, on ajoute une description, des mots-clefs, un prix, une marque…Maintenant, tout le jeu va consister à interagir avec la base de données pour qu’elle réponde à une requête précise en sélectionnant les résultats appropriés et en les rendant disponibles pour le visiteur.
Vous avez remarquez que jusqu’à maintenant, on ne parle pas langage, on parle usage: c’est en comprenant ce que l’on veut accomplir pour les visiteurs, en répondant à la question “A quoi sert mon site”, qu’on oriente le choix du langage, pas l’inverse.
Les deux cas présentés répondent tous deux à deux usages très différents: dans le premier cas, avec la page d’accueil de Apple, on affiche un résultat statique, indépendant des requêtes des utilisateurs. C’est ce qu’on appelle le FrontEnd. Comme on l’a vu, le contenu est figé.
Dans le second cas, avec Amazon, compte tenu de la quantité d’informations, les données sont stockées dans une base de données. Pour pouvoir communiquer avec cette base de données, il faut utiliser des langages spécifiques : c’est ce qu’on appelle le BackEnd. Ces langages BackEnd ont pour mission de récolter les requêtes des utilisateurs, rechercher dans la base de données et renvoyer les résultats.
Maintenant, que faut-il apprendre ? Surement les deux si vous voulez être un développeur Ninja ! Mais par où commencer ? Le Front est indispensable à tout site web. C’est l’ossature qui va servir autant à afficher un contenu statique (un logo, du texte, des images…) qu’à habiller les résultats générés depuis une base de données. Comprendre comment se créée une page web, dans sa version la plus basique, semble donc un bon commencement.