XP è stato il 2° tentativo di spostare tutti da Win9x alla base di codice NT, ed è riuscito dove Windows 2000 ha fallito. Ci sono tre ragioni per la differenza:
- Costo
- Capacità
- Maturità
Costo
Al volgere del secolo, Microsoft sperava di spingere tutti al prezzo più alto di NT Workstation. I nomi furono cambiati per nascondere le diverse basi di codice; il successivo Win9x fu chiamato Windows Millennium, mentre il successivo NT fu chiamato Windows 2000, e quest'ultimo fu presentato come genericamente "migliore" senza evidenziare il cambiamento della base di codice. Questo ebbe un successo limitato con i PC e i portatili "in scatola", ma in generale la gente resistette al prezzo più alto di Windows 2000 quando questo era visibile.
Al contrario, Windows XP Home fu offerto allo stesso prezzo di Win9x. Una volta che la base del codice NT si è affermata come l'unico Windows, Microsoft ha potuto aumentare il prezzo; Vista Home Basic vs. Home Premium, poi Windows 7 ha reso Premium il nuovo punto di prezzo, con Starter come opzione a prezzo ridotto nei mercati a rischio di pirateria. Windows 8.x aveva "Single Language" come opzione più economica in alcuni mercati; anche questo è sparito, nell'era di Windows 10.
Capacità
NT è sempre stato dichiarato "migliore", e lo era, in due modi. In primo luogo, aveva un obiettivo più modesto di Win9x (eseguire codice a 32 bit, chi se ne frega dei programmi DOS e Windows a 16 bit, richiedere tutta la RAM necessaria per farlo correttamente). Al contrario, Windows 95 doveva essere un DOS migliore del DOS, un Windows a 16 bit migliore del 3.yuk, ed eseguire programmi a 32 bit scritti per NT... e fare tutto questo in 4M di RAM.
Il secondo motivo per cui NT era "migliore" era che era "più sicuro", grazie ai permessi NTFS e altri aspetti fatti su misura per le reti aziendali. Tuttavia, poiché era stato progettato per essere un "giocattolo da masticare in rete" (scusate, "client di rete") ed era abbastanza stupido da trattare Internet come un'altra rete, era fondamentalmente insicuro; questo divenne ovvio una volta che fu distribuito nella terra dei consumatori, con le generazioni di worm Lovesan/Blaster e Sasser, ognuna delle quali sfruttava superfici di codice esposte che non esistevano in Win95.
Microsoft aveva spinto NT rispetto a Win9x fin dall'inizio, ma è sempre rimasto indietro in UI, giochi e capacità multimediali. NT 3.x sembrava ancora Win3.yuk, e mentre NT 4 ha raggiunto la GUI di Win9x, è rimasto indietro in DirectX e nel supporto multimediale. Windows 2000 potrebbe aver recuperato, ma il prezzo era sbagliato; era XP dove queste capacità erano al loro meglio all'interno della base di codice NT.
Un altro aspetto della capacità era il supporto legacy per i programmi DOS e Windows a 16 bit. Questo era ancora un problema nell'era di WinME vs. Win2000, così WinME era ostacolato a condividere le stesse limitazioni di NT; nessuna vera modalità DOS, anche se l'ho adattata usando un po' di codice Win98 con l'editing esadecimale per alterare certi nomi di file per stare fuori dalla strada di WinME. Al contrario, quando XP fu rilasciato, ci preoccupavamo molto meno delle vecchie generazioni di software.
Maturità
Le basi di codice di Windows hanno sviluppato una cadenza "tick tock"; la prima versione è vista come troppo ingombrante, difettosa e/o diversa (Win2000, Vista, Win8.x) mentre il successore meno ambizioso diventa il preferito (Win98, XP, Windows 7, Windows 10).
Parte di questo è il recupero dell'hardware; il secondo tentativo generalmente ha esigenze di risorse simili al primo (o, da Vista, anche meno), ed entra in un mercato dove quelle risorse sono la norma. Questo si applica alla RAM in particolare, poiché le esigenze previste determinano i volumi di produzione, il che riduce il costo delle capacità RAM più popolari. Entro 6 mesi dall'uscita di Vista, è diventato conveniente avere abbastanza RAM per il sistema operativo più grande, e al momento dell'uscita di Windows 7, anche i sistemi più economici se la sarebbero cavata abbastanza bene.
XP è stato un tale successo per ragioni simili a quelle di Windows 95; era davvero migliore dei sistemi operativi che ha sostituito, sia attraverso l'eredità in uscita (stesso prezzo, gioco e multimedia migliori) che le basi di codice attuali.
Ma esporre un "client di rete" a Internet è stato un disastro; NT era rimasto sicuro come sembrava, solo perché aveva una piccola quota di mercato ed era nascosto all'interno di reti aziendali ben protette. Proprio come la piccola quota di mercato di Linux e MacOS evita la maggior parte degli attacchi, come una casetta di legno nel bosco, così fu per NT - finché non si trasferì nel cuore della città per affrontare un "carico di criminalità urbana" molto più pesante.
A causa di quella debacle, e forse a causa del ritmo più lento e cauto dello sviluppo di NT rispetto a Win9x, XP mancò l'attesa versione successore; invece, questa fu distribuita gratuitamente come XP Service Pack 2. Questo riportò il cavallo nella stalla e chiuse la porta agli attacchi massicci di worm, ma significò che XP visse il doppio del tempo previsto. Una nuova generazione di sviluppatori e gente di supporto è "cresciuta" senza avere a che fare con una nuova versione di Windows, mentre il progetto Longhorn a lungo raggio è stato affrettato per un rilascio prematuro come Vista.
Vista è poi entrato nel mercato in anticipo, in norme hardware che erano rimaste stagnanti durante la lunga e pigra era di XP, senza il tempo di ottimizzare per questo hardware insufficiente. Proprio come WinME ha prototipato System Restore, così Vista ha fatto lo stesso per ciò che restava del set di funzionalità di Longhorn, specialmente User Account Control.
Il risultato è stato una grande ostilità e risentimento del mercato, e una vita ancora più lunga per XP, e con ciò, un'esposizione prolungata ai rischi di progettazione e di sfruttamento del sistema operativo pre-Vista. Ecco perché "uccidere XP" è diventata una tale battaglia!