vendredi, 29 mars 2024

Vers où se dirige le développement logiciel en 2022

Après avoir résisté à une pandémie qui a fondamentalement modifié la forme de la société mondiale, nous nous retrouvons au milieu de 2022. L’un des changements les plus notables de ces deux dernières années a été notre dépendance à l’infrastructure numérique, motivée par la nécessité. Le système a admirablement résisté, alors même que les personnes qui le maintenaient luttaient pour inventer de nouvelles façons de travailler.

Nous avons appris que le Web peut tout fournir, des EPI aux mariages virtuels. Quand rien d’autre n’était réconfortant, beaucoup d’nous se sont retirés de plus en plus profondément dans notre cocons numériques. Alors que l’utilisation du Web montait en flèche, nous avons découvert de nouvelles lignes de faille et des domaines à améliorer. Aujourd’hui, une nouvelle vague de technologies émerge pour mettre à niveau et développer l’expérience en ligne. Jetons un coup d’œil aux tendances en jeu dans les efforts actuels pour reconstruire Internet tel que nous le connaissons.

Codage pour le plaisir et le profit

Vous pouvez demander à presque n’importe quel développeur de logiciel si le programme qu’il vient de finir de développer est assez bon, et il vous dira qu’il pourrait être meilleur. C’est similaire à la façon dont un musicien va finalement simplement sortir un album, même s’ils ne considèrent pas que c’est fait. Ou, comme John Lennon l’a dit un jour à propos de l’œuvre intemporelle des Beatles, « Il n’y en a pas un seul que je n’aimerais pas réenregistrer. »

De là, nous pouvons comprendre l’un des principaux facteurs de motivation pour l’amélioration continue : les ingénieurs logiciels sont guidés par quelque chose qui s’apparente à l’esprit artistique, une envie irrépressible de construire quelque chose d’excellent. C’est ce qu’on appelle l’état de l’art, après tout. Nous disons souvent que tout est une question de lisibilité et de maintenabilité du code. En vérité, beaucoup d’entre nous sont également motivés par le désir inné de créer quelque chose de valeur inhérente.

Bien sûr, l’excellence n’est pas la seule motivation. Le profit est un autre facteur. Malgré les chances féroces contre les innovateurs, lorsque la foudre frappe, les avantages financiers peuvent être étonnants. Bien qu’il soit notoirement difficile d’associer l’état d’esprit du codeur au sens des affaires, le fait de réunir les deux peut potentiellement capturer cet éclair dans une bouteille.

Les tendances de développement de logiciels fusionnent

Alors que ces puissantes forces motrices produisent leurs effets dans le creuset de l’industrie, nous obtenons un paysage de développement en évolution rapide. Examinons certaines des tendances les plus influentes dans le développement de logiciels et comment elles se rejoignent actuellement.

Tendances du développement logiciel en 2022. IDG

La coalescence : les tendances technologiques façonnent le développement de logiciels en 2022.

Adoption du cloud et infrastructure de niveau supérieur

Il est incontestable que les dépenses liées au cloud continuent d’augmenter. En fait, les dépenses liées au cloud ont récemment dépassé la moitié de toutes les dépenses informatiques. La raison est simple : l’infrastructure et les outils virtualisés offrent une solution plus agile à de nombreux besoins. Ce qui est fascinant, c’est l’évolution de l’utilisation du cloud.

L’idée de machines virtuelles dynamiques hébergées dans le cloud (également appelées infrastructure en tant que service ou IaaS) était puissante, mais elle s’est avérée être la première esquisse d’un canevas en évolution. PaaS et les fonctions sans serveur sont les prochaines étapes logiques. Nous assistons également à une diversification et à une spécialisation des solutions, une évolution tant verticale qu’horizontale.

L’infrastructure virtualisée permet aux acteurs innovants de développer des solutions d’ordre supérieur. Les acteurs de ce domaine se répartissent en deux grands camps : les hébergeurs d’API et les fournisseurs d’API.

Déploiements sans serveur et fournisseurs d’API

Des services comme Vercel et Netlify sont deux bons exemples d’hébergeurs d’API à la pointe de la technologie. Ils représentent une sorte d’infrastructure sans serveur qui se superpose aux couches IaaS et PaaS. De plus, ils représentent une spécialisation de cette infrastructure, ciblée sur un certain univers de cas d’utilisation.

Quiconque s’est assis devant le tableau de bord de Vercel et a déployé une application frontale complexe d’un simple clic de bouton sait ce que je veux dire : Vercel est plus sans serveur. C’est-à-dire qu’il s’agit d’un serveur sans serveur qui a été affiné et exploité pour répondre à un besoin précis.

En attendant, un bon exemple de fournisseur d’API moderne est MongoDB Atlas. Il s’agit d’une API qui fournit principalement la persistance des données. En son cœur, MongoDB Atlas est une API disponible à distance en tant que service. Des services comme Sentry.io et Auth0 sont similaires.

L’essentiel est que, comme Vercel pour l’hébergement, ces solutions offrent un degré élevé d’abstraction (beaucoup de puissance avec peu de travail) adapté à un ensemble spécifique de besoins. Ils sont construits au-dessus de la couche virtuelle moderne. Le déploiement de banques de données dans une infrastructure virtuelle est le modèle traditionnel, uniquement déplacé vers le cloud. Utiliser quelque chose comme MongoDB Atlas revient plus à avoir un partenaire de magasin de données spécialisé, dédié à faciliter l’intégration de ce que vous avez avec ce dont vous avez besoin.

Une autre observation intéressante concernant les outils performants dans ce domaine est qu’ils ont généralement trois aspects : une API à laquelle les applications se connectent, une prise en charge de l’intégration dans le code et une console de gestion basée sur le Web.

Qu’en est-il des constructeurs d’API ?

Nous pouvons donc voir que l’ère des plates-formes cloud a ouvert la voie à quelque chose de nouveau, mais il est difficile de prédire exactement quoi. Il s’agit de découvrir où les besoins des utilisateurs, souvent inconnus d’eux-mêmes, rencontrent de manière novatrice les fonctionnalités implicites de ces nouveaux outils.

Il est intéressant de noter que le monde de la création d’API reste relativement inchangé. Il y a eu des améliorations progressives, mais rien de tel que les perturbations que nous avons constatées dans l’hébergement et la fourniture. Un mouvement unissant l’activité de construction d’API avec les réalisations des hébergeurs et des prestataires représentera un bouleversement riche en opportunités.

Ensuite, examinons quelques-uns des domaines dans lesquels la construction de logiciels évolue activement.

Outils et frameworks front-end

Sur le front-end, où la magie des API tierces et de la logique back-end trouve son expression homme-machine, le langage JavaScript continue d’évoluer régulièrement. Pendant ce temps, les frameworks construits au-dessus de JavaScript subissent une sélection naturelle endémique via une vive concurrence. Des projets comme Solid, Svelte et Qwik repoussent les limites dans diverses directions, tandis que des frameworks réactifs plus établis comme React et Vue continuent de se développer. Il est rare de voir une itération et une pollinisation croisée aussi intenses dans un seul domaine logiciel.

Intergiciel personnalisé

Une grande partie du travail dans le cloud consiste à intégrer des outils existants et à unir les API, ce qui impliquera toujours des humains effectuant une certaine quantité de travail personnalisé au niveau du middleware. En effet, le but ultime de toute automatisation est de répondre aux besoins changeants des humains.

Les langages côté serveur comme Rust et les frameworks comme JHipster sont des développements intéressants, mais dans l’ensemble, le domaine est en pleine mutation. Comme la partie avant, la partie arrière attend une évolution plus poussée.

Les solutions existantes telles que Java, Node.js et Python (et leurs frameworks associés) sont toutes bien adaptées à l’environnement et évoluent constamment en réponse aux demandes du monde réel. Je crois qu’ils resteront un domaine d’activité critique. Tout comme l’IaaS continue d’être une couche vitale du sans serveur, le code middleware sera important dans un avenir prévisible.

Low code et l’apprentissage automatique peuvent menacer de concurrencer les développeurs humains, mais finiront par se révéler simplement comme des outils supplémentaires dans la boîte à outils du développeur. Builder est un excellent exemple de pensée low-code innovante. Pour voir comment l’apprentissage automatique peut aider au codage, nous pouvons nous tourner vers GitHub Copilot.

Architectures découplées, alias microservices

Ensuite, la transition vers des architectures découplées à distance, également connues sous le nom de microservices, continuera à se développer et à être mieux comprise. Le paradigme de l’architecture monolithique était clairement incapable de capitaliser pleinement sur le potentiel inhérent au cloud. L’alternative, l’architecture de microservices, implique d’assumer un fardeau devops qui est loin d’être anodin. Les microservices sont à la fois un catalyseur de mise à l’échelle des processus et une loupe de complexité.

Toute innovation visant à englober de nouvelles orientations technologiques, telles que les API en tant que service, l’évolution frontale et le middleware personnalisé, devra tenir compte de la complexité de l’architecture des microservices.

Automatisation des processus

L’automatisation des processus, c’est-à-dire la coordination des processus utilisés par les équipes pour créer et fournir des logiciels, est de plus en plus essentielle pour sa capacité à regrouper et à fournir les meilleures pratiques. Dans ce domaine, nous voyons un accent sur les solutions personnalisées. Chaque organisation est unique, il est donc utile de distiller ce qui fonctionne bien, comme on le découvre dans de grands magasins comme Google et Microsoft, et en les intégrant dans des solutions adaptées aux équipes de toutes tailles et de tous types.

Les nombreuses solutions CI/CD, les outils de gestion des builds et des dépendances et les frameworks de test sont des exemples d’outils d’automatisation des processus qui se concentrent sur les activités des développeurs. Le contrôle de version et les services associés comme GitHub entrent également dans cette catégorie. L’automatisation des processus est un autre domaine clé qui jouera un rôle dans l’avenir des logiciels.

Un nouveau type d’expérience de développeur

Comme illustré dans le diagramme de coalescence au début de cet article, chacune de ces tendances de développement logiciel est une force de changement. Ensemble, ils indiquent un nouveau type d’expérience de développeur convaincant, mais pas encore manifesté. Nous pouvons voir les forces en jeu et comment elles évoluent, mais l’avenir n’est pas encore clair. C’est une période passionnante pour être développeur de logiciels.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici