Non è sempre colpa di Microsoft


C’è la tendenza ad addossare tutte le colpe di Windows (nel contesto di questo articolo Windows 7) a Microsoft.

Per onestà bisogna dire che Redmond condivide le colpe con gli sviluppatori che, negli anni, hanno deliberatamente ignorato le linee guida dettate per la scrittura dei programmi.

Già quando era uscito Windows 7 gli sviluppatori del sistema operativo avevano rivelato di aver tolto alcune limitazioni pressanti perché altrimenti molti software di terze parti scritti male non avrebbero funzionato e la colpa sarebbe ricaduta su Redmond anziché sul vero colpevole.

All’alba del 2013 mi capita di avere a che fare con pacchetto dichiarato compatibile con Windows 7 che fa cose turpi sul file system. Si badi: un pacchetto non scritto da un cantinaro, ma da una rinomata (anche se non nota al pubblico) società di software.

Immaginate un programma per *NIX fatto da una parte utente e un daemon. Immaginate che questo daemon scriva dei dati su un file creato ogni volta in /usr/bin il quale viene poi letto, modificato e cancellato dal software che interagisce con l’utente.

Come in *NIX, anche in Windows 7 esiste l’equivalente della /var dove tutti i software possono leggere e scrivere allegramente senza problemi: %APPDATA% e %ProgramData% sono lì per questo. In ultima analisi c’è sempre %TEMP% su cui scrivere e leggere. Ma perché vuoi scrivere proprio in %ProgramFiles% che non è fatto per quello?! Se il servizio e l’applicativo girano sotto contesti di sicurezza diversi, crea la tua brava chiave di registro sotto HKLM/Software e mettici i path dei file dati cosicché possano essere letti e interpretati.

Inutile anche discutere con questa gente perché sanno di essere in torto e tirano fuori le storie più assurde. Purtroppo certe cose si scoprono dopo aver acquistato il software e costa meno fare delle modifiche al file system che mettersi a litigare.

Nel caso in cui il sistema operativo forzi una legittima sicurezza del suo file system, gli autori e i distributori del software che non rispetta le regole faranno terrorismo psicologico contro il nuovo sistema operativo con idiozie tipo “non è sicuro”, “non funziona nulla” eccetera. Ricordate quelli che all’alba di questo millennio dicevano che Windows XP non era affidabile rispetto a Windows 98 perché non si poteva più fare il boot da un floppy MS-DOS per sistemare eventuali problemi?

Non lamentiamoci solamente con Microsoft se gli sviluppatori degli applicativi non leggono le specifiche.


2 risposte a “Non è sempre colpa di Microsoft”

  1. é un po’ un cane che si morde la coda. Da una parte tanti sviluppatori lavorano con i piedi (e il caso che citi ne è un esempio, non ci voleva un abbonamento MSDN per capire il metodo giusto di scrivere nel posto giusto), dall’altra c’è la difficoltà/costo nel reperire e consultare la documentazione in maniera proficua, la brutta (passata) abitudine di avere librerie di serie A (private) e librerie di serie B per fare le stesse cose, la mancanza di razionalizzazione e ordine nel set di librerie disponibili per gli sviluppatori, la brutta abitudine di utilizzare protocolli standard modificandone tutta la nomenclatura e cambiandoli quel tanto che basta per rendere i sistemi poco compatibili… Solo recentemente Redmond ha capito che per vendere un sistema operativo è necessario avere del software di qualità. Finchè poteva vendere comunque, a qualsiasi costo, ha cavalcato l’onda del software “scassone” per i propri interessi di marketing. Non trovo giusto che ora si lamentino di dover mantenere la compatibilità con il regresso.

    • Alla fine il problema è sempre stato il conflitto tra gli ottimi ingegneri microsoft e un marketing che li ha obbligati a troppi compromessi.

      Dove comandano gli architetti del software (leggi unix, apple, ecc) le cose funzionano decisamente in maniera diversa.

      Rimane il fatto che i programmatori esperti di scotch, glue, drawing pins e gli altri “linguaggi” analoghi esisteranno sempre 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *