Quel langage de programmation choisir pour un projet ?

Cette question revient tellement souvent qu'elle mérite que vous preniez le temps d'y réfléchir, en tous cas je l'ai fait.

J'ai eu l'occasion de travailler avec de nombreux langages au cours des 14 dernières années, et aujourd'hui encore je jongle au quotidien avec 4 technologies differentes. Si vous espérez choisir un langage et travailler exclusivement avec lui pendant toute votre carrière, vos espoirs ont peu de chances de se transformer en réalité.

La vérité est que chaque projet a des caractéristiques et des contraintes différentes (votre expérience personnelle en fait partie) et vous devez les prendre en compte dans votre choix de langage et de technologie.

Attention : cet article concerne les personnes qui savent déjà programmer dans un langage et doivent commencer un nouveau projet. Si vous débutez et voulez savoir quel langage apprendre, j'ai fait un article dédié qui sera plus adapté pour vous :)

Les besoins spécifiques au projet

Avant de vous lancer dans le développement d'un nouveau projet avec votre technologie favorite, prenez le temps de vérifier qu'elle est adaptée dans ce cas précis :

  • Les performances sont-elles essentielles pour ce projet ? Si vous créez un jeu video probablement, pour une app de gestion c'est moins sûr.
  • Existe-t-il un langage ou une technologie officielle pour la plateforme ciblée ?
  • Le projet sera maintenu pendant combien de temps ? 2 ans ? 5 ans ? 10 ans ?

Attardons nous sur la dernière question et la raison pour laquelle je me la pose au début d'un projet. Beaucoup de développeurs cherchent à savoir quel langage est le plus utilisé en 2020 ; pensant que c'est un critère essentiel. Je pense que c'est une erreur, pour une raison très simple : la meilleure solution pour pour vous, n'est pas forcément celle des autres.

J'aime beaucoup cette citation de Suzy Kassem : “A conscious human is driven by their conscience, not popular opinion.” , vous êtes capable de réfléchir, alors prenez une décision logique indépendamment de la direction prise par la masse.

Pour les langages de programmation, vous devez choisir un langage assez populaire pour être maintenu pendant la durée de vie du projet. C'est tout.

Notez que ce principe s'applique aussi aux frameworks, bibliothèques, SDK, etc.

Vos besoins spéficiques

Vous êtes un humain, avec des forces et des faiblesses, vous devez en tenir compte pour chaque projet. Si vous êtes à l'aise dans un langage et qu'il constitue une solution technique acceptable pour ce projet, alors foncez.

Et s'il existe un langage plus populaire (ou plus à la mode) mais qui vous plaît moins ? Vous pouvez l'ignorer sans soucis ; c'est l'avantage avec les modes, elles finissent souvent par s'estomper ;)

Personnellement, si je dois travailler sur un projet, je vais d'abord vérifier s'il peut être réalisé efficacement en Swift ou en Kotlin, car ce sont 2 langages que j'apprécie. Mais ce choix est personnel et basé sur mon expérience et mon expertise. Si vous êtes plus à l'aise en Javascript ou en C#, alors ces technologies doivent être prioritaires pour vous.

Quand doit-on apprendre un nouveau langage ?

Apprendre un nouveau langage (ou un nouveau framework) prends beaucoup de temps et représente donc un investissement de votre part.

Vous devez être certain que ces nouvelles connaissances vous seront vraiment plus utiles pendant les 3 prochaines années au minimum.

Exemples de bonnes raisons d'apprendre un nouveau langage :

  • Une technologie remplace avantageusement une technologie que vous utilisez déjà régulièrement.
  • Vous entrez dans un nouveau domaine de programmation et vos langages favoris sont moins pratiques à utiliser dans ce domaine.
  • Vous débutez un projet important qui possède un impératif technique : utiliser un langage ou un framework particulier.

Exemples de mauvaises raisons d'apprendre un nouveau langage :

  • Tout le monde dit que ce nouveau langage/technologie représente l'avenir. Laissez les early adopters essuyer les plâtres, vous pourrez toujours l'apprendre dans 1 ou 2 ans s'il vous paraît toujours aussi bien. Et vous aurez accès en bonus une version plus stable et mieux documentée.
  • Cette technologie est créée ou maintenue par une société que j'adore (Apple, Google, Microsoft, etc.). La technologie elle même doit être votre critère essentiel. Le fait qu'elle soit gérée par une entreprise sérieuse est un atout supplémentaire pour sa longévité mais pas plus.

Conclusion

Le choix du langage dépend autant des caractéristiques du projet à réaliser que de vos compétences personnelles. La popularité du langage lui-même est un facteur qu'il vaut mieux ignorer si vous voulez être efficace et produire une app de qualité.

Vous allez certainement passer beaucoup de temps sur un projet, autant choisir une technologie que vous appréciez et qui soit adaptée à la tâche.