À LA UNE

Avis d'expert

Avis d'expert
langages programmation framework developpement
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 ce, vous devez planifier la performance dont vous aurez besoin. Pour autant, ne vous enfermez pas dans des cas improbables car nul de 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

 

Vous avez aimé ? Partagez cet article
En savoir plus

Notre offre microservices repose sur une nouvelle approche en termes de conception, développement et déploiement en continu d’applications cloud ready. Ces applications sont subdivisées en modules de...

La transformation digitale vous pousse à expérimenter de nouvelles technologies, à réinventer vos méthodes de travail pour gagner en agilité, à vous aventurer dans de nouveaux environnement IT, à...

Le Cloud Native est une nouvelle génération d’architecture modulaire, flexible et évolutive basée sur l’assemblage de composants déjà optimisés pour le cloud. L’Architecture Cloud Native vous permet...

Afficher à la page d'accueil
On
EXPERT
HARINGTON
Anis
Bessa
Microservices Practice Manager

Les architectures de microservices permettent de moderniser rapidement et de manière progressive les applications Legacy. La décomposition en petits modules indépendants, faciles à mettre à jour, accélère le déploiement.