Sviluppo software: una revisione storica fino ai giorni nostri
Lo sviluppo software (SD) ha avuto caratteristiche distintive sin dalla sua nascita fino ai giorni nostri. Inizialmente, il mondo dello sviluppo software era diviso in due: lo sviluppo di software libero e open source e lo sviluppo di software proprietario e closed source.
Tutto ciò, a sua volta, ha innescato una corsa in ogni mondo DS per produrre tipi di software simili, portando infine a diverse tipologie di applicazioni. Così, DS ha dato origine al primo e tuttora attuale Software di Sistema (SS), poi al Software di Programmazione (SP) e infine al Software Applicativo (AS). Queste ultime applicazioni, a loro volta, spaziavano dalle tradizionali Applicazioni Native, ovvero installabili e specifiche per ciascun Sistema Operativo (OS), alle innovative Applicazioni Distribuite che funzionano su Internet tramite blockchain.

Software
Praticamente nello stesso periodo in cui nacquero gli SS, che costituivano sostanzialmente il sistema operativo stesso e comprendevano driver di periferica, utility di sistema e tutti quegli strumenti utilizzati per il controllo specifico delle caratteristiche del computer, ovvero tutti quei programmi che facilitavano la gestione degli elementi hardware (HW), come memoria, dischi, porte, dispositivi e periferiche, nacquero anche gli SP e gli SA.
I pacchetti software (SP) comprendono prodotti software utilizzati dai programmatori per sviluppare altri programmi per computer utilizzando diversi linguaggi di programmazione e/o database. I pacchetti software includono generalmente editor di testo, compilatori, interpreti, linker e debugger. Comprendono anche gli ambienti di sviluppo integrati (IDE), ovvero pacchetti software che raggruppano tutti gli strumenti necessari, menzionati in precedenza, in un unico ambiente (di solito un'interfaccia utente grafica, o GUI) per coprire l'intero ciclo di vita dello sviluppo del programma.
E la categoria SA comprende il software utilizzato dagli utenti (finali) per svolgere un compito. SA generalmente include suite per ufficio, software di progettazione grafica o multimediale, software di contabilità o amministrativo, per citare solo una piccola parte di tutte le categorie di applicazioni che possiamo trovare in questa categoria. Pertanto, SA, o semplicemente un'applicazione, riguarda
Qualsiasi programma che consente a un utente finale di eseguire diverse attività su un computer, laptop, tablet, telefono cellulare o altri tipi di apparecchiature o piattaforme tecnologiche.

Applicazioni
Agli albori dell'informatica, le applicazioni (app) erano caratterizzate dal requisito essenziale dell'installazione per poter essere utilizzate, e solo all'interno di un singolo sistema operativo nativo specifico. Tuttavia, con il tempo e il progresso dell'informatica e della tecnologia, le app si sono evolute, acquisendo caratteristiche come la portabilità, la compatibilità multipiattaforma, la modularità e la scalabilità. Pertanto, oggi abbiamo molti tipi di app, che vanno dalle tradizionali app native alle innovative app distribuite.
Inizio
Le applicazioni native, ovvero quelle sviluppate specificamente per un particolare sistema operativo, solitamente tramite un Software Development Kit (SDK), sono state le prime a essere create. La caratteristica principale di queste app è la loro completa integrazione con le funzionalità e le caratteristiche del dispositivo o della piattaforma, che si traduce in una migliore esperienza utente. Pertanto, tendono ad avere un aspetto e prestazioni migliori nel loro ambiente nativo, oltre a funzionare in modo più fluido e affidabile. Tuttavia, spesso comportano costi di sviluppo più elevati se è necessaria una nuova app per ogni versione del sistema operativo nativo.
Con l'avanzare della tecnologia, sono emerse le applicazioni web, note anche come WebApp . Si tratta di applicazioni che vengono eseguite incorporate in una pagina web o in un sito web tramite un browser. Pertanto, possono essere eseguite praticamente su qualsiasi browser e su qualsiasi tipo di computer, dispositivo o piattaforma. E praticamente tutto ciò che è possibile fare nella loro versione web è possibile farlo anche nella loro versione nativa, installabile come applicazione.
Le applicazioni ibride sono nate dalla combinazione dei due approcci precedenti. Si tratta di app sviluppate utilizzando linguaggi tipici delle applicazioni web, che ne consentono l'utilizzo su diverse piattaforme , ma con la capacità delle applicazioni native di accedere a gran parte delle funzionalità hardware del computer, del dispositivo o della piattaforma su cui vengono eseguite. In altre parole, sfruttano appieno la versatilità dello sviluppo web e l'adattabilità hardware delle applicazioni native.
Attualità
Oggi si stanno sviluppando le Progressive Web App (PWA). Si tratta essenzialmente di pagine web che utilizzano i Service Worker e altre tecnologie, comportandosi più come app native che come app web. Mentre i Service Worker e le altre tecnologie vengono eseguiti in background, l'applicazione vera e propria viene eseguita all'interno del browser web.
Infine, le applicazioni attuali stanno migrando verso il formato delle Applicazioni Distribuite, note anche come Applicazioni Decentralizzate (DApp). Si tratta di applicazioni decentralizzate che utilizzano una piattaforma blockchain per consentire agli utenti di interagire direttamente e condurre transazioni (accordi) senza la mediazione di un'entità centrale che gestisce il servizio. Di conseguenza, in una DApp, ogni utente è un nodo in una rete decentralizzata in cui tutti i nodi agiscono collettivamente come un notaio globale di qualsiasi transazione effettuata sulla piattaforma.
Conclusione
Il mondo dello sviluppo software, immerso nel cuore stesso della scienza e della tecnologia, è in continua evoluzione e progresso. E così, dal software installabile (app native) sono emerse molte altre forme di applicazioni (web, ibride, progressive, distribuite).
Forme che sicuramente presto lasceranno il posto a nuove e innovative forme di App, che saranno influenzate dall'uso di tecnologie attuali e in continua evoluzione , come Big Data, Deep Learning, Intelligenza Artificiale e tecnologie ancora in evoluzione come Cloud Computing e Blockchain.