Lors de la conception d’une application web (web app), le choix du langage est souvent l’objet de nombreuses réflexions car il a des conséquences aussi bien sur le développement de l’application, à court terme ; que sur son évolution et sa maintenance, à long terme. Dans cet article, nous vous proposons de dresser un état des lieux des langages les plus utilisés aujourd’hui et quelques pistes pour vous aider à faire un choix.
Les langages pour développer une application web
Tout d’abord, qu’est ce qu’un langage de programmation 🤔 ? Il s’agit de la langue dans laquelle il faudra écrire votre programme afin qu’il soit bien exécuté par une machine, en l’occurrence un serveur informatique, un navigateur web, un navigateur mobile, etc.
Par exemple, ce site utilise principalement deux langages pour fonctionner, le PHP et le Javascript.
De nombreux langages de programmation sont disponibles afin de concevoir une application web. En voici quatre parmi les plus régulièrement utilisés :
- Javascript
- PHP
- Python
- Ruby
Le langage pour le back-end
Ces quatre langages peuvent être utilisés pour concevoir le back-end de votre application. Le back–end est la partie immergée de votre application, celle qui va notamment communiquer avec la base de donnée. Concrètement, imaginons que vous souhaitiez afficher le profil d’un utilisateur, pour cela vous allez demander ces informations à votre base de données. Vous allez donc écrire une requête sous la forme “envoie-moi les informations de l’utilisateur dont l’identifiant est 1”, vous recevrez alors une réponse contenant les informations de l’utilisateur demandé.
Pour visualiser cela, voici ce que cela donne en utilisant l’ORM de Django (Python) :
user = User.objects.get(id=1)
Comme vous le voyez, ce n’est pas sorcier, on crée une variable “user” dans laquelle on va stocker la réponse à notre requête, laquelle se comprend aisément, même sans être développeur.
Le langage pour le front-end
Pour le front-end (la partie visible de votre site), ces langages permettent de générer du HTML afin d’afficher vos pages. Le Javascript a un statut particulier car il peut être à la fois utilisé comme un langage serveur (back-end) mais aussi être utilisé en front-end en complément d’autres langages. Par exemple, une application peut utiliser du Python pour le back-end et du Javascript pour le front-end.
Autant le dire de suite, aucun de ces langages n’est par essence meilleur qu’un autre. Bien entendu, certains tests de performance mettent en avant la rapidité de certains pour effectuer des opérations spécifiques. Néanmoins, dans la plupart des cas, ces différences de performance seront imperceptibles en situation réelle.
La popularité des langages
Lors du choix de votre langage de programmation, il faut considérer un phénomène qu’on nomme la hype 🤩. Même en développement informatique, il y a des modes. Par exemple, il y a cinq ans, la hype était au Ruby ; actuellement c’est plutôt au Javascript. Ces effets de mode sont intéressants, car ils disent des choses sur le marché, sur la dynamique d’un langage. Néanmoins, ils ne faut pas leur donner une importance démesurée, par exemple, un langage comme le PHP est souvent vu comme le “vilain petit canard” des langages de programmations, pourtant c’est le langage le plus largement adopté sur le web.
Ce qui compte avant tout c’est de bien utiliser le langage choisi et d’appliquer les bonnes pratiques en matière de programmation. Car si le code d’une application est de piètre qualité, même s’il est conçu avec un langage performant, cela ne le rendra pas meilleur.
Il faut également avoir conscience que la popularité d’un langage varie selon les endroits du globe. En utilisant Google Trends, on remarque notamment qu’on utilise plus volontiers le framework Python Django en France et Allemagne, tandis que le framework PHP Laravel a plus la côte en Italie ou Espagne.
L’utilisation d’un framework
Afin de concevoir une application web, une bonne pratique consiste généralement à utiliser un framework. Un framework (un cadriciel dans la langue de Molière) est un kit de composants déjà programmés. Cela permet donc de démarrer le projet sans avoir à tout réinventer. Un framework permet donc un gain significatif de productivité. Ils facilitent généralement l’intégration de fonctionnalités, tel que le routage, l’authentification, etc. On peut vouloir partir d’une feuille blanche mais cela réclame généralement des investissements plus importants et cela ne se justifie pas toujours. Enfin, cela réclame généralement une expertise technique supérieure.
Chacun de ces quatre langages proposent plusieurs frameworks, permettant la conception d’une application. Voici le framework que nous sélectionnons pour chacun de ces langages :
- Javascript avec le framework Express ou plus récemment Nestjs
- PHP avec le framework Laravel
- Python avec le framework Django (notre chouchou de la liste 😉 )
- Ruby avec le framework Ruby on Rails
Chacun de ces frameworks est très bien conçu et permet de concevoir une très grande variété d’application. À noter également que ce que vous pouvez faire avec l’un, vous pouvez souvent le faire avec un autre.
Les écosystèmes de chaque langage
Chacun de ces langages a un écosystème composés d’outils, dont les frameworks font partie. En plus des frameworks, existent les librairies. Ces dernières permettent d’ajouter des fonctionnalités à votre programme. Une librairie peut par exemple vous aider à utiliser une API.
Lors du choix du langage de programmation, si vous avez des besoins fonctionnels spécifiques, vérifiez au préalable si le langage auquel vous songez propose des librairies permettant de mettre en place ces fonctionnalités. Encore une fois, cela vous fera gagner du temps 🤓
Par exemple, si vous avec besoin d’une librairie pour manipuler des données (qu’on parle de Big Data ou même de projets plus modestes), Python sera le langage indiqué grâce à ces librairies NumPy, Pandas, Matplotlib, etc. Ces librairies facilitent notamment la manipulation d’ensembles de données et leur visualisation.
Enfin, les frameworks et les librairies sont souvent développés en open-source, autrement dit, ils sont généralement le fruit d’un développement collectif en licence libre. Cela signifie donc que vous pouvez les utiliser dans votre projet sans avoir à payer une redevance ou être dépendant d’un éditeur logiciel.
En conclusion, il n’y a pas vraiment de bonne réponse à “Quel est le meilleur langage ?” Le choix du langage doit se faire en fonction de votre contexte : telle librairie est-elle disponible ? Quel langage maîtrise mon équipe ? Une fois ces questions posées, la réponse se dessinera certainement de façon plus évidente.