Quel sera l’avenir du développement de logiciels en 2023 ? Sera-t-il encore nécessaire d’avoir un groupe de développeurs professionnels autour de soi pour un logiciel personnalisé, sera-t-il créé à partir d’UML ou d’un langage de niveau supérieur, ou autre chose ?


Le futur du développement logiciel aura probablement une ou plusieurs des caractéristiques suivantes :
- Hautement parallèle. Le code séquentiel sera relégué à une minorité de code.
- De haut niveau. La tendance des langages est de faciliter le développement au détriment de la performance.
- Fonctionnelle. La programmation fonctionnelle donne tellement d'avantages que cela ne peut être ignoré, si cela se produira dans un langage pur ou mixte n'est pas clair.
- La programmation logique fera un retour possible, certainement des styles plus déclaratifs.


La force motrice est la limite de la performance du fil unique des CPU. Cela entraîne le besoin de plus de parallélisme dans les logiciels. L'état actuel des choses d'avoir une poignée de cœurs sera un pas relativement petit vers le futur CPU massivement parallèle.
Les langages impératifs actuels ne gèrent pas bien le parallélisme, nous devrons donc développer un tout nouvel ensemble de primitives parallèles qui fonctionnent de manière parallèle aux données (pensez à map/reduce/filter/scan). Les programmes seront construits sur cette prémisse et commenceront à changer la façon dont les gens pensent à la programmation, passant d'un mode d'organigramme séquentiel à un mode parallèle et axé sur les données.
De concert avec cela, une certaine réflexion devra être mise sur la façon dont nous décrivons les modèles d'accès aux données que le logiciel effectue. Cela sera essentiel pour réduire le surcoût des communications pour les s/w parallèles.


Les langages de programmation fonctionnelle nous donnent déjà une partie de ce qui précède et sont 'naturels'à le faire, surtout lorsqu'ils sont complétés par des structures de données immuables à la Clojure.

Comme pour la plupart de vos points ci-dessus, complètement en désaccord. Les logiciels ne peuvent pas devenir 'standardisés&apos ;. Les logiciels résolvent des problèmes. À moins que les problèmes ne soient standardisés, cela ne se produira pas.
La programmation graphique a tendance à ne pas fonctionner très bien (voir LabView). Elle fonctionne bien pour des solutions très simples mais devient rapidement incontrôlable. Le texte a tendance à bien fonctionner pour cela, donc je ne vois pas cela changer.