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 ceux 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. Alors que rien d’autre n’était réconfortant, beaucoup d’entre nous se sont retirés de plus en plus profondément dans nos 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.
Coder 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 sort finalement un album, même s’il ne le considère pas comme terminé. Ou, comme John Lennon l’a dit un jour à propos de l’œuvre intemporelle des Beatles, il n’y en a pas une que je n’aimerais pas réenregistrer.
À partir de là, nous pouvons comprendre l’un des principaux facteurs de motivation de 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 la art, après tout. Nous disons souvent que tout est 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 que l’état d’esprit du codeur soit notoirement difficile à associer au sens des affaires, la réunion des deux peut potentiellement capturer cet éclair dans une bouteille.
Les tendances du 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.
IDGLa coalescence : les tendances technologiques qui 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 sur un canevas en évolution. PaaS et les fonctions sans serveur sont les prochaines étapes logiques. On assiste é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 chevauche les 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 Vercels et a déployé une application frontale complexe d’un simple clic de bouton sait ce que je veux dire : Vercel est sans serveur plus. C’est-à-dire son sans serveur qui a été affiné et exploité pour répondre à un besoin précis.
Pendant ce temps, 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 tels que Sentry.io et Auth0 sont similaires. .
La clé est que, comme Vercel pour l’hébergement, ces solutions offrent un haut degré d’abstraction beaucoup de puissance avec un peu de travail adapté à un ensemble spécifique de besoins. Ils sont construits au-dessus de la couche virtuelle moderne. Le déploiement de datastores dans l’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 datastore spécialisé, dédié à faciliter l’intégration de ce que vous avoir avec ce dont vous avez besoin.
Une autre observation intéressante sur les outils performants dans cet espace est qu’ils ont tendance à avoir 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 ?
Ainsi, nous pouvons voir que l’ère des plates-formes cloud a ouvert la voie à quelque chose de nouveau, mais il est difficile de prédire précisément quoi. outils.
Fait intéressant, le monde de la création d’API reste relativement inchangé. Il y a eu des améliorations progressives, mais rien de tel que la perturbation que nous avons vue dans l’hébergement et la fourniture. Un mouvement qui unit l’activité de construction d’API avec les réalisations des hébergeurs et des fournisseurs 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
Au niveau du 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. C’est parce que 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 pense qu’ils resteront un domaine d’activité critique. Tout comme IaaS continue d’être une couche vitale dans le serverless, le code middleware sera important dans un avenir prévisible.
Le code faible et l’apprentissage automatique peuvent menacer de concurrencer les développeurs humains, mais se révéleront finalement comme de simples outils supplémentaires dans la boîte à outils des développeurs. Builder est un excellent exemple de pensée innovante en matière de code faible. 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 appelées microservices, va continuer à 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 qui cherche à 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, tel que découvert dans les grands magasins comme Google et Microsoft, et de le capturer dans des solutions qui fonctionnent pour des é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 où les outils d’automatisation des processus se concentrent sur les activités des développeurs. Le contrôle de version et les services associés tels que GitHub entrent également dans cette catégorie. L’automatisation des processus est un autre domaine clé qui jouera un rôle dans l’avenir du logiciel.
Un nouveau type d’expérience de développeur
Comme le montre 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 pointent vers 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 un développeur de logiciels.
Copyright © 2022 IDG Communications, Inc.