Langages de programmation et Framework ? 10 points essentiels à prendre en compte.

Vous avez un nouveau projet et dès lors, un des premiers choix à faire est celui du langage de programmation et du framework de développement. Et ils sont très nombreux avec, parmi les plus populaires, Java Script, Python, Java, C#, C/C++, Swift, R, PHP et Ruby pour ne citer qu’eux. Voici les critères qui nous semblent essentiels chez Harington pour orienter votre choix.

1. La communauté

Même si vous êtes un expert absolu du langage de programmation que vous avez choisi pour votre projet, vous aurez vraisemblablement des questions ou des problèmes à un moment donné. Choisir un langage avec une communauté active et importante est clairement indispensable. Plus le langage est populaire, plus la communauté propose des ressources.

 

2. Les bibliothèques disponibles

Certains langages de programmation peuvent être intéressants mais insuffisamment documentés ou avec une communauté peu active. N’oubliez pas que l’objectif est de développer des fonctionnalités rapidement et les bibliothèques doivent comprendre des composants de base conçus, développés et maintenus par la communauté. Plus la librairie est riche, plus vous avez de choix dans les frameworks, plus le temps de développement sera optimisé. Vous devez vous concentrer sur valeur ajoutée business des fonctionnalités que vous développez et le time-to-market.

 

3. Pensez usages utilisateurs

Si vous vous adressez aux utilisateurs finaux, vous devez anticiper leur système d’exploitation et leur navigateur. Si vous êtes sur un système qui doit s’adapter immédiatement à un comportement donné, le temps réel devient essentiel. Cela influe forcément sur votre choix.

 

4. Performances attendues

Vous devez anticiper les stress que va subir votre application et pour cela, vous devez planifier la performance dont vous aurez besoin. Pour autant, ne vous enfermez pas dans des cas improbables car nul ne peut planifier complètement l’avenir … et cela pourrait justement être contre-performant.

 

5. Retours d’expériences

Si le langage que vous avez choisi est nouveau ou s’il s’agit d’une toute dernière version ; prenez le temps de recueillir des retours d’expérience sur d’autres projets dans la durée. Rapprochez-vous des entreprises pionnières pour avoir leur feed-back avant de vous engager.

 

6. Maintenabilité

Dans tout projet, au début, le code est propre et facile à développer… mais cela a tendance à dégénérer rapidement dans le temps ! Le langage de programmation choisi doit vous aider à garantir la maintenabilité du code. Vous devez pouvoir le modifier rapidement ainsi que les autres intervenants qui seront amenés à intervenir dessus dans le futur. Vous devez également pouvoir rajouter de nouvelles fonctionnalités facilement.  

 

7. Les compétences

La notion de compétences disponibles est essentielle. Vous avez surement déjà dans votre équipe des collaborateurs ou des prestataires qui parlent déjà couramment tel ou tel type de langage. S’il convient à votre projet, il est plus raisonnable de partir là-dessus. Si vous choisissez un nouveau langage, vous devez anticiper le coût au démarrage de remise à niveau des équipes. Par contre, les enjeux d’innovation ou d’avantage concurrentiel peuvent en valoir le coût (et le risque)…

 

8. Réusabilité des compétences

Souvent, les applications sont basées sur plusieurs langages. Les uniformiser et les réduire facilite d’autant la maintenance et l’évolution de votre patrimoine applicatif. Cela vous permet aussi de spécialiser et faire gagner en expertise vos équipes. Sans compter que vous allez surement subir une certaine volatilité dans vos équipes et qu’il est plus facile de trouver des compétences sur un langage que des profils qui en maitrisent plusieurs.

 

9. Disponibilité des compétences marché

Dans cette même logique, vous devez anticiper le turn-over des équipes … Si vous avez choisi un langage de niche encore peu utilisé, vous risquez d’être confronté à un problème de ressources disponibles sur un marché aujourd’hui globalement pénurique. En même temps, un « bon » développeur est souvent curieux et avide de nouveautés, un nouveau langage peut être fortement attractif mais vous avez un coût de passation et d’appropriation à anticiper également.

 

10. Simplicité et time-to-market

Certains langages peuvent être particulièrement intéressants… mais plus ou moins « secs ». Au-delà de leur qualité et de leur potentiel, vous ne devez pas perdre de vue que l’enjeu pour votre entreprise est le time-to-market, à savoir, délivrer l’application et mettre rapidement les nouvelles fonctionnalités ou les nouveaux services dans les mains des utilisateurs finaux. Il est souvent judicieux de planifier des livraisons rapprochées de fonctionnalités plutôt que de développer en mode « tunnel »

 

Quoi qu’il en soit, selon votre projet, vous ne pourrez vraisemblablement pas respecter l’ensemble de ces points et vous devrez faire des compromis. L’important est de garder en tête votre objectif car le langage est un moyen de l’atteindre. Pour faire le bon choix, faites-vous conseiller 😉

 

Pour aller plus loin :

Les technologies les plus populaires, l’étude StackOverFlow 2019 https://insights.stackoverflow.com/survey/2019/#technology

 

En savoir plus

Architecture MACH, vers toujours plus d’agilité et de scalabilité

L’architecture MACH, combinant Microservices, API-first, Cloud-native et Hybrid, offre une approche flexible et scalable pour les entreprises. Elle décompose les systèmes monolithiques en composants autonomes, facilite la gestion des données grâce à des API robustes, et intègre parfaitement les solutions cloud pour réduire les coûts et améliorer l’efficacité. Toutefois, elle présente des défis tels que…

Lire

Modernisation du SI et poids du Legacy ?

La modernisation du système d’information est essentielle pour les DSI qui visent à éliminer les contraintes des systèmes legacy et à renforcer l’innovation et la compétitivité. En se concentrant sur le décommissionnement, la migration vers le cloud, la réingénierie d’applications et l’encapsulation via des API, les entreprises abordent la dette technologique et simplifient leur infrastructure…

Lire

Move-to-cloud, pour ou contre ?

Découvrez les avantages et défis de la migration vers le cloud pour les entreprises, incluant flexibilité, réduction des coûts, accès à des technologies avancées, et les considérations sur la sécurité, la dépendance, et la stratégie FinOps pour une gestion optimale des coûts cloud.

Lire