Quand on a un projet digital en tête, la première question qu’on devrait se poser, c’est de savoir avec quel langage on doit le développer. Faisons ici un tour des questions à se poser pour choisir correctement son langage de programmation !
Bien souvent, nous ne nous posons même plus la question de savoir en quoi je vais développer mon appli/site web/logiciel ! Par flemmardise, on prend ce que l’on connait. Et pourtant, c’est une question qui ne devrait point être négligée. En effet, quel charpentier travail avec seulement un tournevis comme outil ? Non, le bon charpentier à sa boite à outil et choisis le bon outil suivant le travail qu’il a à effectuer !
Mais alors comment savoir quel langage est fait pour mon projet digital ?
Pour quelle plateforme est mon projet ?
Avant toutes choses, il est important de comprendre que la plateforme de déploiement de votre projet peut avoir un impact très fort sur le choix de votre langage de programmation. Par exemple, si vous voulez développer une apps pour Android, il ne sera pas opportun de la faire en C# (bonjour Xamarin !) , qui est un langage spécifique à Windows (étendu aussi à Linux et MacOS, il est vrai).
La plateforme va donc conditionner votre choix. Généralement, chaque plateforme à son langage de prédilection (C# pour Windows, C/C++ pour linux, C ou Assembleur pour l’embarqué, Java pour Android, Swipe/Objective C pour iOS, etc – liste non exhaustive). C’est donc un élément de départ. Mais parfois, cela ne suffit pas. Que faire si je veux toucher plusieurs plateforme ? Vais-je devoir développer mon projet sur plusieurs langages différents ?
Heureusement, ce n’est généralement pas nécessaire. Certains langage sont cross-plateforme. Par exemple, Java est interprétable sur beaucoup de plateforme. Le C/C++ aussi, ainsi que son framework Qt,ou encore Python et de nombreux autres, surtout parmi les plus récents.
Quel besoin d’interaction ai-je avec ma plateforme ?
Cependant, les langages spécifiques aux plateformes permettent généralement une très bonne intégration avec celle-ci. Le C# vous permet d’accéder très facilement aux outils liées à la plateforme de Microsoft par exemple. Java pour Android vous permettra l’intégration facile d’éléments Google (Maps, notification android, etc). Ainsi, si je veux développer une application mobile utilisant la géolocalisation des téléphones et d’autres fonctionnalités spécifiques, il faudra que je regarde si les langages cross-plateforme mobile (Qt, Phonegap, etc) peuvent répondre à mon besoin ou non. Si ce n’est pas le cas, alors il sera surement nécessaire de développer deux applications distinctes.
Quel est la durée de vie de mon projet ?
Autre question importante : combien de temps mon projet va-t-il exister ? En effet, comme beaucoup de choses, les langages de développement sont soumis à la mode. Si Java a dominé le début des années 2000, aujourd’hui, c’est Python qui a la faveur des développeurs. Si ici, nous prenons le cas de langage qui ne sont pas prêt de “mourir”, il n’en est pas de même pour de nombreux autres langages. Qui sait ce qu’il restera de Swipe, Objective C, R, D, Go et tant d’autres, dans dix ans ? Hors, plus un langage est à la mode, plus il vous sera facile de trouver des ressources pour travailler dessus. Et moins celles-ci seront chères…
Quel est mon besoin de puissance machine ?
Selon votre projet, vous allez avoir besoin de plus ou moins de puissance pour avoir une expérience utilisateur fluide. Gérer un logiciel de carnet d’adresse n’est pas la même chose qu’un jeux-vidéo pour nos ordinateurs. Et certains langages sont préconisés quand il s’agit de travaux lourds à effectuer. Personne ne programme des jeux-vidéos 3D photo-réaliste en Java, c’est impossible, le java étant un langage bien trop gourmand en puissance…Il est donc important de se renseigner sur son besoin en terme de ressources pour pouvoir choisir un langage qui permettra la bonne exécution du programme.
A chaque projet, son langage !
Au terme de notre billet, il peut nous sembler bien compliqué de trouver un langage en adéquation avec notre projet. Il y a effectivement beaucoup de paramètres à prendre en compte. Alors n’hésitez pas à vous faire conseiller pour un expert dans ce domaine. De nombreuses personnes ne partent pas sur la bonne technologie et sont ensuite obligées de repenser leur projet, voir le redévelopper. Hors la machine doit rester un facilitateur de production et non l’inverse !
Et chez Redfox ?
Chez Redfox, nous prenons le temps de comprendre votre projet pour vous proposer le meilleur outil en adéquation. Là ou de nombreuses agences vont répondre par une offre globale ( vous voulez un site web ? Voila WordPress ! Vous voulez faire du e-commerce : voila prestashop ! … ), nous essayons de voir ce qu’il vous faut réellement et sur le long terme pour vous donner le bonne outil.