# NeXTSTEP

NeXTSTEP è stato un sistema operativo orientato agli oggetti, multitasking che venne sviluppato dalla NeXT di Steve Jobs per le proprie linee di workstation, NeXTcube (la famosa blackbox) e NeXTstation, tra il 1986 e il 1995.

## Storia

Sebbene le anteprime risalgano al 1986, NeXTSTEP 1.0 venne presentato il 18 settembre 1989 e l'ultima versione, la 3.3, venne presentata all'inizio del 1995. L'ultima versione funzionava su macchine basate su Motorola 68000 (come le macchine NeXT), Sun Microsystems SPARC, HP PA-RISC e IBM compatibile.
Con il rilascio della versione 3.2, venne presentata anche OpenStep, un'API orientata agli oggetti, sviluppata congiuntamente da Sun Microsystems e Next e volta a portare NeXTSTEP, che si basava su un kernel Mach, anche su altre piattaforme hardware. L'implementazione di queste API fu prima un framework per le librerie Objective-C di NeXTSTEP compatibile con Solaris, secondariamente una versione speciale di NeXTSTEP chiamata OPENSTEP (con lettere tutte maiuscole) compatibile con diverse piattaforme (PA-RISC, SPARC, i386 e Motorola 68k).
Il 4 febbraio 1997 Apple Computer acquisì la NeXT e utilizzò OpenStep per sviluppare l'interfaccia grafica di macOS. L'eredità di OpenStep in Mac OS X è visibile nelle librerie Cocoa, librerie sviluppate in Objective C (come l'OpenStep) e che hanno come prefisso NS. Esiste anche un'implementazione libera dello standard OpenStep chiamata GNUstep.

## Descrizione

NEXTSTEP è formato da diverse componenti:
* Un sistema operativo Unix-like basato su kernel Mach con codice BSD UNIX integrato
* Display PostScript per gestire l'interfaccia grafica
* Il linguaggio Objective-C
* La gestione orientata agli oggetti del sistema operativo e le sue librerie
* Applicazioni per lo sviluppo rapido delle applicazioni orientate agli oggetti
La fama del sistema operativo NeXTSTEP deriva dagli ultimi tre elementi. Le librerie erano molto potenti e flessibili e furono utilizzate per realizzare tutte le componenti del sistema operativo e le sue applicazioni. Le caratteristiche peculiari dell'Objective C e le librerie NeXTSTEP permettevano la realizzazione rapida e veloce di applicativi anche molto complessi e furono additate ad esempio per più di un decennio.
L'interfaccia grafica del NeXTSTEP era consistente e raffinata e introdusse il concetto di dock che venne riportato nel macOS e con alcune modifiche in altri sistemi operativi. NeXTSTEP inoltre introdusse molte altre innovazioni nella gestione e nella grafica delle GUI come per esempio le componenti grafiche in finto 3D, finestre ridimensionabili e componenti che accettano come ingresso oggetti grafici che vengono trascinati dall'utente, finestre di informazioni (inspector), notifiche delle modifiche a una finestra. NeXTSTEP inoltre era la prima interfaccia grafica per usi generici a gestire i colori per la tipografia, la trasparenza, un'avanzata gestione dei suoni (tramite il DSP Motorola 56000), primitive grafiche avanzate, gestione della localizzazione e una gestione moderna dei font ereditata da tutte le applicazioni.
In aggiunta il sistema operativo forniva altri strumenti per i programmatori che semplificavano lo sviluppo. Tra questi il Portable Distributed Objects (PDO), che permetteva l'invocazione remota degli oggetti e l'Enterprise Objects Framework, un database relazione a oggetti. Questi strumenti semplificavano molto lo sviluppo di applicazioni per compiti specifici infatti NeXTSTEP è stato spesso utilizzato per realizzare programmi finanziari.

## Nome

Il nome del sistema operativo ha subito nel corso degli anni molte modifiche alla presenza di maiuscole o minuscole. Inizialmente era NeXTstep e NeXTStep, in seguito divenne NeXTSTEP (indicando sia il sistema operativo che le workstation con processori Motorola e Intel) e infine divenne NEXTSTEP con la trasformazione di NeXT Computer Inc in NeXT Software Inc per dedicarsi esclusivamente alla produzione del software. La confusione aumentò con il rilascio delle librerie OpenStep versione 4 che molti confondevano con il sistema operativo NEXTSTEP.

## Software

WorldWideWeb, il primo browser web, venne sviluppato su una macchina NeXTSTEP. Molte caratteristiche come le abbreviazioni da tastiera per esempio derivano da caratteristiche fornite nativamente da NEXTSTEP e in seguito implementate anche negli altri sistemi operativi. Le caratteristiche base dell'HTML versione 1.0 e 2.0 derivano in massima parte dalla classe NeXT Text. Il videogioco Doom venne in buona parte sviluppato su macchine NeXT; FreeHand versione 5 di Macromedia, la moderna interfaccia Notebook di Mathematica e il foglio elettronico Lotus Improv sono altri esempi di programmi sviluppati su sistemi NeXT.