La programmation gagne-t-elle en simplicité ? Suite et fin

Brouillon

À venir

0 commentaire

Dans mes 2 articles précédents, vous avez pu découvrir les 7 premières raisons sur 10 qui font que, selon nous chez SoftFluent, le développement logiciel est et sera de plus en plus complexe. Découvrez les 3 dernières raisons.

8. La multiplication des plates-formes et langages

Au-delà des tailles d’écran dont la variété est facilement visible pour les utilisateurs, cette prolifération de terminaux induit une multiplication des plates-formes et des langages de programmation.

Rien qu’au niveau des choix, si on doit cibler des terminaux mobiles, il faut commencer par décider entre une approche de Web Responsive ou d’application native. Il existe aussi des solutions telles que Xamarin qui vont vous permettre une certaine portabilité (au prix de compromis, il ne faut pas rêver). Et certains (Cordoba) promeuvent une approche hybride mélangeant du natif et du web. Cet article explique bien les avantages et inconvénients des différentes approches.

Du coup, les langages eux-mêmes prolifèrent. Au-delà des classiques Java et C#, PHP a consolidé sa présence et des langages tels que Python sont utilisés par exemple par Spotify, qui n’est pas une application web, mais bien desktop. Mais surtout, la nécessité d’avoir un web interactif, couplée à la disponibilité de frameworks pour la mettre en œuvre, induit une présence de plus en plus importante du langage JavaScript, malgré ses faiblesses intrinsèques.

Là encore, de nouveaux métiers émergent avec la spécialisation de développeur front-end puisqu’il devient alors indispensable de mixer les langages de programmation.

9. L’avènement de technologies non relationnelles

Les technologies de bases de données non-relationnelles ont le vent en poupe. Surfant sur les exemples des sites à très fort trafic et volume qui ont dû trouver ou développer des solutions adaptées à leur problématique, les approches NoSql ont conquis de nombreux développeurs.

De même, des technologies telles qu’Elastic Search sont à la mode, avec la promesse de pouvoir chercher dans des volumes de données important.

Sans remettre en cause les bénéfices de ces différentes technologies, il est évident qu’à multiplier les approches et technologies, on génère des facteurs de complexité importants. Pour prendre un exemple simple sur la recherche, il faut concevoir et implémenter une solution qui assure une bonne synchronisation entre les indexes et le stockage plus classique.

En pratique, cela induit des surcoûts significatifs, la moindre modification de schéma devant être traitée à deux niveaux, le tout avec des tests de plus en plus compliqués à concevoir.

Ces surcoûts sont rarement évalués en amont.

10. Le caractère désordonné des approches d’abstraction

Enfin, les approches d’abstraction, susceptibles sur le papier de simplifier la tâche du développeur, ont du mal à s’affirmer.

D’un côté, les outils qui partent d’une modélisation, comme nous le proposons avec CodeFluent Entities ou encore SoftFluent Code Modeler,  ne séduisent qu’une certaine frange de développeurs, principalement ceux qui ont une compréhension économique forte et mesurent l’intérêt de centraliser des éléments pour les diffuser ensuite dans le code. Une très grande partie des développeurs préfèrent adopter des démarches ‘code-first’, quitte à se lier fortement à une technologie et à devoir réécrire beaucoup au fil des évolutions.

De l’autre, les Frameworks qui proposent des librairies de services connaissent un succès certain… mais vont et viennent rapidement au fil des modes et des soutiens de tel ou tel acteur majeur. Ainsi, choisir un framework est en soi un exercice difficile et un pari assez aléatoire sur l’évolution, avec de vrais enjeux de compétences, des coûts cachés bien expliqués ici, mais pas forcément visibles immédiatement ni toujours évalués, tant il est vrai que les développeurs introduisent aisément des dépendances à du code disponible librement.

Et si on n’est pas encore convaincu de la quantité d’options qui s’offre aux développeurs, il suffit de se rendre sur ce benchmark de frameworks pour mesurer le foisonnement technologique.

En conclusion, l’entropie dans l’univers du développement ne fait qu’augmenter, et en particulier depuis l’avènement d’Internet.

Compte tenu de la vitesse d’évolution, les approches d’abstraction ont du mal à convaincre à ce jour, même si la rationalité économique amènera probablement à quelques retours en force d’approches plus maitrisées, en tout cas dans les contextes où le coût est un facteur important.

Daniel Cohen-Zardi

Profil de l'auteur