venerdì 27 aprile 2012

Perchè windows è bacato?

Mica male no? Il contenuto, intendo, perchè il contenitore...
   Chi non ha mai visto una schermata blù come quella della foto e, specialmente, chi è mai stato contento di vederla se non, come in questo caso, a vestire una bella ragazza? Eppure, per gli utenti di windows questo, la schermata blu intendo, non la ragazza, è stato uno spettacolo consueto per anni e solo di recente è stato sostituito da delle ancora più irtritanti pop up di errore che, non solo ci informano per filo e per segno del fatto che è successo un casino, ma non ci offrono di norma nessuna possibilità di rimedio.
   Si narra, a questo proposito, che ad un recente CONDEX Bill Gates, comparando l'industria informatica con quella automobilistica, dicesse:

"If Ford had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1,000 miles to the gallon"
Ovvero:
se la Ford avesse avuto l'incremento di tecnologia che ha avuto l'industria dei computer, tutti guideremmo macchine che costano 25$ e che fanno 1000 miglia con un gallone di benzina.
   La Ford ha risposto a questa poco felice asserzione con il seguente comunicato:
"If Ford had developed technology like Microsoft, we would all be driving cars with the following characteristics:
  1. For no reason whatsoever, your car would crash twice a day.
  2. Every time they repainted the lines in the road, you would have to buy a new car.
  3.  Occasionally your car would die on the freeway for no reason.. You would have to pull to the side of the road, close all of the windows, shut off the car, restart it, and reopen the windows before you could continue. For some reason you would simply accept this.
  4.  Occasionally, executing a maneuver such as a left turn would cause your car to shut down and refuse to restart, in which case you would have to reinstall the engine.
  5. Macintosh would make a car that was powered by the sun, was reliable, five times as fast and twice as easy to drive - but it would run on only five percent of the roads.
  6. The oil, water temperature, and alternator warning lights would all be replaced by a single "This Car Has Performed An Illegal Operation" warning light.
  7. The airbag system would ask "Are you sure?" before deploying.
  8.  Occasionally, for no reason whatsoever, your car would lock you out and refuse to let you in until you simultaneously lifted the door handle, turned the key, and grabbed hold of the radio antenna.
  9. Every time a new car was introduced, car buyers would have to learn how to drive all over again because none of the controls would operate in the same manner as the old car.
  10. 10. You'd have to press the 'Start' button to turn the engine off.
And of course, when all else fails, you could call "customer service" in some foreign country, and be instructed in some foreign language how to fix your car yourself!" 
   Che, tradotto nella mia solita maniera approssimativa, significa:
 Se la Ford avesse sviluppato tecnologia allo stesso modo della Microsoft, guideremmo auto con le seguenti caratteristiche:
  1. Per nessuna ragione apparente, la tua auto si schianterebbe due volte al giorno;
  2. Ogni volta che vengono ridisegnate le linee stradali dovresti comprare una nuova auto;
  3. Alle volte la tua auto si pianterebbe senza ragione. Tu allora dovresti trainarla al lato della strada, chiudere tutti i finestrini, spegnerla, riaccenderla e riaprire i finestrini prima di poter continuare. Per una qualche inesplicabile ragione tu lo troveresti normale;
  4. Alle volte eseguire alcune manovere come svoltare a sinistra potrebbe provocare l'arresto del motore ed il suo rifiuto di ripartire. Occorrerebbe, nel caso, reinstallare il motore;
  5. Macintosh farebbe un'auto che funziona a luce solare, è affidabile, cinque volte più veloce e due volte più facile da guidare, ma che funziona solamente sul cinque per cento della rete stradale;
  6. Le luci di allarme temperatura acqua, olio ed alternatore verrebbero rimpiazzate da una sola che significherebbe "quest'auto ha eseguito una operazione non consentita";
  7. L'Air bag vi domanderebbe "sei certo di voler continuare l'operazione?" prima di esplodere;
  8. Occasionalmente e sempre senza ragione apparente la tua auto ti chiuderebbe fuori e si riiuterebbe di farti entrare fino a che tu non tiri la maniglia della porta e simultaneamente giri la chiave ed impugni l'antenna dell'auto;
  9. Ogni volta che una nuova auto venisse lanciata sul mercato gli acquirenti dovrebbero reimparare a guidare in quanto nessun comando funzionerebbe nello stesso modo che nei modelli precedenti;
  10. Per spegnere il motore dovresti premere Start;
   E comunque, quando tutto fallisce, tu potresti sempre chiamare il customer service che si troverebbe in un qualche paese straniero e che, in una lingua diversa dalla tua, ti insegnerebbe a ripararti l'auto da solo!
   Ma perché Windows ha tutti questi problemi?  C'è una regola, che si applica in tutti i rami dell'ingegneria ma non, evidentemente, in casa Microsoft: dividere il necessario dagli orpelli. Come dire che tutto quello che non c'è non si può rompere per cui curiamo la parte essenziale in modo che sia semplice ed efficace,  e manteniamo gli abbellimenti e tutto quello che non è indispensabile al funzionamento di un oggetto su un diverso strato, in modo che una loro assenza o un loro malfunzionamento non possano pregiudicare il funzionamento dell'oggetto stesso. In alcuni sistemi operativi è tuttora così. La separazione è rigidissima ed il funzionamento del nucleo centrale, quello che tiene in piedi il sistema, è molto testato, ma Windows è un intricato calderone inestricabile di codice scritto oltretutto accumulando strati su strati di modifiche fatte da personale che, per scelta aziendale, spesso non lavora in Microsoft che per pochi mesi. Ci sono motivazioni storiche dietro di questo. Nato in origine come multi tasking cooperativo, ovvero come un OS dove ogni singola task, a turno, assumeva il controllo totale del sistema e lo rilasciava solamente quando invocava una funzione di sistema, prevedeva come specifica di progetto che ogni singola task potesse, in qualsiasi momento, bloccarsi e, in questo modo, uccidere tutto il sistema. Brutto, inelegante ma molto semplice da implementare. Teniamo presente che all'epoca il vecchio Bill si occupava ancora del lato tecnico della questione e, non dimentichiamolo, se anche era un genio dal punto di vista commerciale da quello tecnico proprio non brillava. In fondo doveva la sua fortuna all'MS-DOS, un sistema operativo scritto scopiazzando il CP/M80 e che sembrava un incrocio fra ISIS/80 ed un videogioco, purtroppo lanciato da IBM solo perché IBM stessa, in quel progetto dei PC, proprio non ci credeva.
   Qua una piccola digressione. Quando è nato il PC il personal computer non era ancora un fenomeno diffuso. Per personal, per altro, non si intendeva "ad personam", ma semplicemente "monoutente". Tuttavia a qualcuno, là in IBM, la cosa rodeva. C'era gente che, priva di rispetto, pretendeva di fare con un trabiccolo del lavoro vero, bisognava assolutamente dargli una lezione. Così presero due o tre disgraziati, i peggiori del mazzo, e li misero a progettare un PC alla maniera di IBM, in modo da mostrare come doveva essere fatto un PC e da chiarire a tutti gli altri che quelle cose che stavano facendo loro non erano veri PC, ma solo spazzatura. Questi progettisti si misero di buzzo buono e scelsero, come processore, l'8088 di intel, ovvero lo sgorbio più improbabile che si potesse immaginare. C'erano, all'epoca, gli Z8000 della Zilog, ad esempio, che avrebbero consentito di avere una M.M.U. ed una architettura decente, sulla quale oltretutto esistevano già dei sistemi operativi, ma loro niente. Scelsero intel (decretandone in questo modo la futura fortuna) e via, lancia in resta, a copiare tutte le scelte sbagliate di Apple come, ad esempio, i board edge connector e la mancanza di uno scheduler. Poi, resosi conto del fatto che, se volevano mantenere l'architettura proprietaria, non potevano usare un software commerciale (c'era, ad esempio CP/M 86 pronto ad essere usato, ma loro lo volevano proprietario) bandirono un concorso per farsi fare un OS custom. Ora, stiamo parlando di IBM, una azienda che all'epoca costruiva praticamente tutti i main frame usati dalle banche e dalle amministrazioni di tutto il mondo, vuoi che non avessero in casa la tecnologia per scriverselo, un sistema operativo decente? Il fatto era che loro, in questa cosa, non ci credevano. Come già detto doveva essere una dimostrazione, non un prodotto.
   Così Windows, e tutto quanto ci gira sopra, nasce concettualmente bacato. Purtroppo, e questo lo dico per i non addetti ai lavori, quando si pensa ad un sistema operativo non ci si deve limitare a pensare al kernel e all'interfaccia grafica. Un sistema operativo, lo dice la parola stessa, è tutto l'insieme dei programmi con i quali operiamo, compreso l'editor, il compilatore, il debugger, il linker, il locator, le utility per la gestione degli archivi, il DBMS e chi più ne ha più ne metta. Quando si incomincia con il piede sbagliato diventa difficile tornare indietro, perché bisognerebbe riscrivere tutta questa roba con una filosofia diversa e si parla di milioni di ore uomo di software, senza contare tutto quello di terze parti. Il processo per abbandonare il multitasking cooperativo, quindi, ed iniziare a gestire risorse e memoria in modo decente, è stato lungo e faticoso ed è passato per tante strade chiuse come ad esempio quella di NT e 2000, tentativi di cambiare in modo radicale che sono stati stoppati dal pubblico disgustato sia dai difetti di gioventù che dalle difficoltà di utilizzo.
   Tuttavia, dietro alle spalle di Microsoft, c'era IBM con il suo OS2, un sistema operativo che, a differenza di Windows, nasceva per funzionare in modo protetto e per utilizzare finalmente le potenzialità hardware delle nuove CPU. Microsoft non poteva dormire sugli allori con il fiato sul collo, la gente era stanca di schermate blu e, finalmente, c'era una alternativa. Per non perdere il mercato quindi la Microsoft butta fuori in fretta WIN32 e WIN32S, aprendo la strada al vero multi tasking fino a che, con XP, finalmente un prodotto che sembra stabile.
l'inarrestabile PDP11
   Non perfetto, intendiamoci, ma usabile senza rimpiangere troppo il vecchio RSX11 che girava sui PDP e che, è noto, non si piantava mai al punto che, quando si guastava qualcosa e si doveva spegnere il mini, per riaccenderlo si doveva far ricorso al manuale perché nessuno si ricordava la sequenza di boot. Sembrava una situazione di quiete. Le discussioni del tipo "meglio Linux" o "meglio un Apple" erano diventate tutto sommato sterili, il PC faceva finalmente il PC e tutti erano felici e contenti, specialmente quelli che, un po' smaliziati, evitavano di usare il browser ed il programma di posta elettronica originali del sistema operativo, amati bersagli degli haker di tutto il mondo, e preferivano usare prodotti free come Eudora, Mozilla, Thunderbird ed altri ancora. Tuttavia si trattava di una situazione ingannevole, la famosa quiete prima della tempesta.
Ok, se siete arrivati fino a qua, evidentemente non avevate nulla da fare per cui tanto vale che proseguiate ed andiate a scoprire dove sta andando Windows

Nessun commento:

Posta un commento