Le d�veloppement logiciel moderne est-il essentiellement une source de frais g�n�raux inutiles ? Oui
selon un ancien ing�nieur de Google qui ajoute que le secteur est submerg� par une complexit� inutile
Avery Pennarun, ancien ing�nieur de Google et PDG de Tailscale, critique les pratiques modernes de d�veloppement de logiciels. Il affirme dans une r�cente analyse que le d�veloppement logiciel moderne est submerg� par une complexit� inutile et des "frais g�n�raux inutiles". Ce ph�nom�ne serait d� � "une focalisation erron�e" sur l'�volutivit� pour des t�ches qui en ont rarement besoin. Il oppose les pratiques de d�veloppement actuelles � l'efficacit� de la programmation dans les ann�es 90, o� des syst�mes plus simples pouvaient g�rer des charges de travail substantielles rapidement et efficacement sans l'infrastructure gonfl�e que l'on voit aujourd'hui.
Les pratiques de programmation ont-elles �volu� dans le mauvais sens ?
Bien que Avery Pennarun ne l'affirme pas directement, il d�plore une perte inqui�tante de l'efficacit� qui caract�risait le secteur jusqu'� la fin des ann�es 1990 et invite � une profonde r�flexion sur le sujet. Ancien ing�nieur de Google, Avery Pennarun est aujourd'hui cofondateur et PDG de l'entreprise de logiciels Tailscale bas�e � Toronto, en Ontario, au Canada. Tailscale d�veloppe un r�seau priv� virtuel maill� d�fini par logiciel partiellement open source et un service de gestion bas� sur le Web. La soci�t� propose un VPN sans configuration en tant que service sous le m�me nom. Pennarun est dipl�m� de l'universit� de Waterloo.
Dans un r�cent billet de blogue publi� sur le site Web officiel de Tailscale, Pennarun a fait remarquer qu'il y a 100 fois plus de gens qui peuvent �tre programmeurs aujourd'hui parce qu'ils ne sont pas coinc�s avec le C++ et le langage d'assemblage, et beaucoup, beaucoup, beaucoup plus de gens ont maintenant une sorte d'ordinateur. Plus les boutiques d'applications, les syst�mes de paiement, les graphiques. � Tout �a, c'est du bon boulot. Mais les choses ont aussi empir�. Beaucoup de choses quotidiennes qui �taient faciles pour les d�veloppeurs sont d�sormais difficiles. C'�tait inattendu. Je ne m'y attendais pas �, a-t-il �crit.
Il ajoute : � je m'attendais � ce que je n'aie plus de travail � l'heure actuelle parce que la programmation �tait si facile. Au lieu de cela, l'industrie technologique est devenue un v�ritable fouillis. Et la situation empire au lieu de s'am�liorer ! Notre tour de la complexit� est maintenant si haute que nous envisageons s�rieusement d'y ajouter des grands mod�les de langage pour �crire le code incompr�hensible dans les cadres incompr�hensibles afin que nous n'ayons pas � le faire. Et vous savez, nous, les personnes �g�es, sommes celles qui ont le contexte pour voir cela �. Il n'est pas pessimiste et a d�clar� que tout est r�parable.
Dans son analyse, Pennarun met en cause de nombreuses pratiques modernes, dont la mise � l'�chelle et la notation Big O, qui ont complexifi� la t�che pour les d�veloppeurs au lieu de rendre les choses plus faciles. Il critique l'obsession des programmeurs pour les outils comme Kubernetes pour des t�ches triviales, sugg�rant que de nombreuses pratiques modernes ralentissent les d�veloppeurs.
La mise � l'�chelle, les conteneurs... que des facteurs de ralentissement ?
Le billet de blogue de Pennarun appelle � une r��valuation des approches actuelles de d�veloppement logiciel, pr�conisant un changement pour rendre les "choses faciles faciles" et r�duire la complexit� qui entrave la productivit�. Il critique s�v�rement la notion de mise � l'�chelle qui a rendu les programmeurs d'aujourd'hui impatients et les pousse � embrasser des technologies qui leur donnent l'illusion qu'ils sont productifs et efficaces. � Les programmeurs d'aujourd'hui sont impatients de r�ussir. Ils commencent � planifier pour un milliard d'utilisateurs avant m�me d'�crire leur premi�re ligne de code �, a-t-il d�plor�.
Il a ajout� : � en fait, de nos jours, nous les entra�nons � faire cela sans m�me savoir qu'ils le font. Tout ce qu'on leur a appris tourne autour de la mise � l'�chelle. Nous sommes tomb�s dans ce pi�ge depuis que les informaticiens ont commenc� � enseigner la notation big-O. En notation big O, si vous l'utilisez mal, une table de hachage est cens�e �tre plus rapide qu'un tableau, pour pratiquement tout ce que vous voulez faire. En r�alit�, ce n'est pas toujours le cas. Lorsque vous avez un milliard d'entr�es, une table de hachage est peut-�tre plus rapide. Mais lorsque vous avez 10 entr�es, ce n'est presque jamais le cas �.
Mais d'apr�s Pennarun, les gens ont du mal � accepter cette id�e. � Ils continuent � choisir les algorithmes et les architectures qui peuvent �tre mis � l'�chelle, m�me si, en l'absence d'une telle mise � l'�chelle, une autre solution serait des milliers de fois plus rapide, et �galement plus facile � construire et � ex�cuter �, a-t-il d�clar�. Il donne cet exemple :
� la question de savoir comment nous en sommes arriv�s l�, Pennarun a r�pondu : � nous en sommes arriv�s l� parce que parfois, quelqu'un a vraiment besoin d'�crire un programme qui doit s'adapter � des milliers ou des millions de back-end, et qui a donc besoin de tous ces... trucs. Et c'est en prenant ses d�sirs pour des r�alit�s que l'on s'imagine que m�me le plus petit des tableaux de bord pourrait un jour devenir aussi populaire �.Envoy� par Avery Pennarun
Toutes les applications modernes ont-elles besoin d'�tre mises � l'�chelle ?
Selon l'ancien ing�nieur de Google, la v�rit� est que la plupart des choses ne sont pas mises � l'�chelle et n'ont jamais besoin de l'�tre. � M�me les d�veloppeurs des entreprises qui fabriquent des produits pouvant �tre mis � l'�chelle de milliards d'utilisateurs passent la plupart de leur temps sur des choses qui ne le sont pas, comme les tableaux de bord et les g�n�rateurs de m�mes. En tant qu'industrie, nous avons pass� tout notre temps � rendre les choses difficiles possibles, et pas du tout � rendre les choses faciles �, a �crit Pennarun. Selon l'ing�nieur, tout ceci ruine la productivit� et cr�e aussi des frais g�n�raux inutiles.
� Les programmeurs sont tous enlis�s dans la boue. Il suffit d'�couter n'importe quel d�veloppeur professionnel et de lui demander quel pourcentage de son temps est consacr� � la r�solution du probl�me qu'il s'est fix�, et quel pourcentage est consacr� � des frais g�n�raux inutiles. Lorsque nous explorons le monde de l'hypercomplexit�, nous constatons que la plupart des probl�mes ne pr�sentent pas de complexit� essentielle. En d'autres termes, les probl�mes peuvent �tre r�solus sans complexit�, mais pour une raison ou une autre, les solutions que nous utilisons sont de toute fa�on compliqu�es �, a-t-il d�clar�.
Il donne l'exemple suivant : � les syst�mes de journalisation. Ils se contentent de transmettre du texte d'un endroit � un autre, mais pour une raison ou une autre, il faut 5 minutes pour qu'il apparaisse. Ou les syst�mes d'orchestration : ce sont des programmes dont la seule t�che est d'ex�cuter d'autres programmes, ce que les noyaux Unix font tr�s bien, en quelques millisecondes, depuis des d�cennies. Les gens superposent des tas de boue. Mais on peut les enlever �.
Dans la communaut�, les r�actions sont mitig�es. De nombreux commentateurs partagent l'avis de Pennarun, affirmant que les programmeurs et les entreprises d'aujourd'hui suivent les mots � la mode ou les tendances qui n'ont parfois aucun rapport avec les produits qu'ils cherchent � d�velopper. � Le secteur est �ternellement sensible aux "habitudes des gens efficaces" et se lance la t�te premi�re dans l'ing�nierie et les promesses de mots � la mode. La plupart du temps, ils cherchent � r�soudre un probl�me qu'ils n'auront jamais en utilisant une technologie qu'ils ne comprennent pas vraiment �, a �crit un critique.
Les fournisseurs de cloud profitent de la situation et per�oivent des loyers
Pennarun s'en prend �galement au r�le pr�pond�rant des entreprises comme AWS (Amazon Web Services) dans la complexification sans cesse croissante du d�veloppement logiciel moderne. Il lance un appel � reprendre l'Internet � ces entreprises qu'il appelle : les gardiens centralis�s du cloud computing qui per�oivent des loyers.
Selon Pennarun, il est facile de se tromper en pensant que le syst�me global est distribu�. Mais tout cela est centralis� chez des fournisseurs de services cloud. � Ce n'est pas nouveau. IBM faisait d�j� de l'informatique multic�ur et des machines virtuelles dans les ann�es 1960. C'est la m�me chose aujourd'hui, avec 50 ans de loi de Moore en plus. Nous avons toujours un grand monopole qui peut faire payer un loyer � tout le monde parce qu'il est le gardien de la seule chose qui compte vraiment �, a-t-il d�clar�.Envoy� par Avery Pennarun
Le VPN "zero-config" de Tailscale est pr�sent� comme un exemple de simplification des t�ches qui ne n�cessitent pas une mise � l'�chelle importante, soulignant la n�cessit� de se concentrer sur des projets essentiels et �volutifs uniquement lorsque cela est n�cessaire.
Source : billet de blogue
Et vous ?
Quel est votre avis sur le sujet ?
Le d�veloppement logiciel moderne est submerg� par une complexit� inutile ?
Le d�veloppement logiciel moderne est-il essentiellement une source de frais g�n�raux inutiles ?
�tes-vous d'avis que la mise � l'�chelle a rendu le d�veloppement logiciel beaucoup plus complexe qu'il ne l'�tait ?
Toutes les applications modernes ont-elles besoin d'�tre mises � l'�chelle ? La mise � l'�chelle est-elle importante en informatique ?
Les pratiques de d�veloppement actuelles ont-elles perdu l'efficacit� qui caract�risait la programmation dans les ann�es 1990 ?
Les pratiques de d�veloppement actuelles favorisent-elles l'accumulation de la dette technique ?
Selon vous, comment rendre les logiciels plus faciles � construire et � ex�cuter ?
Voir aussi
Des d�veloppeurs d�missionnent pour �chapper aux mauvaises pratiques de codage de leurs entreprises, d'apr�s un r�cent sondage qui pointe la dette technique comme raison de ce choix d'un lot de 51 %
De nombreux d�veloppeurs � n'ont pas les connaissances et les comp�tences essentielles pour d�velopper efficacement des logiciels s�curis�s �, l'�ducation et la formation sont requises, selon la Fondation Linux
Les ing�nieurs en logiciel ne sont pas (et ne devraient pas �tre) des techniciens, car un grand ing�nieur en logiciel est celui qui automatise le travail r�p�titif ou manuel, par Gabriella Gonzalez
Partager