Développement de logiciels: une revue historique jusqu'à nos jours
Le développement logiciel (DS) a toujours été marqué par des caractéristiques propres, depuis ses débuts jusqu'à nos jours. Dès le départ, le monde du développement logiciel s'est divisé en deux catégories : le développement de logiciels libres et open source, et le développement de logiciels propriétaires et à code source fermé.
Tout cela a engendré une course, dans chaque univers du DS, à la production de logiciels similaires, aboutissant finalement à une grande diversité d'applications. Le DS a ainsi donné naissance aux premiers logiciels système (SS), toujours d'actualité, puis aux logiciels de programmation (SP), et enfin aux logiciels d'application (AS). Ces dernières applications, à leur tour, vont des applications natives traditionnelles – c'est-à-dire installables et spécifiques à chaque système d'exploitation (OS) – aux applications distribuées innovantes, exécutées sur Internet via une blockchain.

Logiciels
Pratiquement en même temps que naissaient les SS, qui étaient essentiellement le système d'exploitation lui-même et englobaient les pilotes de périphériques, les utilitaires système et tous les outils utilisés pour le contrôle spécifique des caractéristiques de l'ordinateur, c'est-à-dire tous les programmes qui facilitaient la gestion des éléments matériels (HW), tels que : la mémoire, les disques, les ports, les périphériques et les appareils, naissaient également les SP et les SA.
Les progiciels (SP) regroupent les logiciels utilisés par les programmeurs pour développer d'autres programmes informatiques à l'aide de différents langages de programmation et/ou bases de données. Les progiciels comprennent généralement des éditeurs de texte, des compilateurs, des interpréteurs, des éditeurs de liens et des débogueurs. Ils incluent également les environnements de développement intégrés (IDE), qui sont des progiciels regroupant tous les outils nécessaires, mentionnés ci-dessus, dans un environnement unique (généralement une interface utilisateur graphique, ou GUI) afin de couvrir l'intégralité du cycle de vie du développement logiciel.
La catégorie SA englobe les logiciels utilisés par les utilisateurs finaux pour accomplir une tâche. SA comprend généralement les suites bureautiques, les logiciels de conception graphique ou multimédia, les logiciels de comptabilité ou de gestion, pour ne citer qu'une petite partie des applications que l'on trouve dans cette catégorie. Ainsi, une application SA, ou simplement une application, concerne…
Tout programme permettant à un utilisateur final d'effectuer différentes tâches sur un ordinateur, un ordinateur portable, une tablette, un téléphone mobile ou d'autres types d'équipements ou de plates-formes technologiques.

applications
Aux débuts de l'informatique, les applications nécessitaient impérativement une installation pour être utilisées, et ne fonctionnaient que sur un seul système d'exploitation natif. Cependant, avec le temps et les progrès de l'informatique, les applications ont évolué, acquérant des fonctionnalités telles que la portabilité, la compatibilité multiplateforme, la modularité et l'évolutivité. Ainsi, il existe aujourd'hui de nombreux types d'applications, allant des applications natives traditionnelles aux applications distribuées innovantes.
Accueil
Les applications natives, développées spécifiquement pour un système d'exploitation particulier, généralement à l'aide d'un kit de développement logiciel (SDK), ont été les premières à voir le jour. Leur principale caractéristique réside dans leur intégration complète aux fonctionnalités de l'appareil ou de la plateforme, offrant ainsi une expérience utilisateur optimale. De ce fait, elles présentent généralement un meilleur rendu et des performances supérieures dans leur environnement natif, et leur fonctionnement est plus fluide et fiable. Cependant, leur coût de développement est souvent plus élevé si une nouvelle application est nécessaire pour chaque version du système d'exploitation.
Avec les progrès technologiques, les applications web, également appelées applications web, ont fait leur apparition . Ce sont des applications intégrées à une page web ou un site web, accessibles via un navigateur internet. Elles sont donc compatibles avec quasiment tous les navigateurs et tous les types d'ordinateurs, d'appareils et de plateformes. De plus, presque toutes les fonctionnalités offertes par leur format web le sont également par leur format d'application native installable.
Les applications hybrides sont nées de la combinaison des deux approches précédentes. Ce sont des applications développées à l'aide de langages typiques des applications web, ce qui permet leur utilisation sur différentes plateformes , tout en bénéficiant de la capacité des applications natives à accéder à une grande partie des fonctionnalités matérielles de l'ordinateur, de l'appareil ou de la plateforme sur laquelle elles s'exécutent. Autrement dit, elles tirent pleinement parti de la polyvalence du développement web et de l'adaptabilité matérielle des applications natives.
Actualité
Aujourd'hui, on développe des applications web progressives (PWA). Ce sont essentiellement des pages web qui utilisent les service workers et d'autres technologies, se comportant davantage comme des applications natives que comme des applications web classiques. Tandis que les service workers et autres technologies s'exécutent en arrière-plan, l'application elle-même s'exécute dans le navigateur web.
Enfin, les applications actuelles migrent vers le format des applications distribuées, également appelées applications décentralisées (DApps). Ces applications décentralisées utilisent une plateforme blockchain pour permettre aux utilisateurs d'interagir directement et de réaliser des transactions (accords) sans l'intermédiaire d'une entité centrale gérant le service. Ainsi, dans une DApp, chaque utilisateur est un nœud d'un réseau décentralisé où tous les nœuds agissent collectivement comme un notaire global pour toute transaction effectuée sur la plateforme.
Conclusion
Le monde du développement logiciel, ancré au cœur même de la science et de la technologie, est en constante évolution. Ainsi, des logiciels installables (applications natives) ont émergé de nombreuses autres formes d'applications (web, hybrides, progressives, distribuées).
Les formats actuels céderont bientôt la place à des formes d'applications nouvelles et innovantes, qui seront influencées par l'utilisation des technologies actuelles et en constante évolution , telles que le Big Data, l'apprentissage profond, l'intelligence artificielle et les technologies encore en évolution comme le cloud computing et la blockchain.