In Windows si tende a dire "everything is an object", anche se più precisamente si dovrebbe dire "every resource is an object": un file è un oggetto, così come un socket o un thread. Se vuoi comunicare
con quella risorsa richiedi un handle e hai potenzialmente qualcosa di più avanzato di un semplice stream di byte.
Hai detto che su Linux una volta che sai leggere e scrivere su file sai già fare molto, e hai fatto l'esempio della stampante. Bene, io non ho la minima idea su come usare la stampante. Tra tutte le cose
che bisogna fare, inviare i byte alla stampante è l'ultimo problema che mi pongo. A dire il vero su Linux c'è CUPS per astrarre le read/write sulla stampante e nessuno mi garantisce che la distro XYZ lo
utilizzi al posto di LPRng o chessò io, Windows invece ha il suo sistema (che piaccia o meno) per gestire questa cosa e il programmatore sa che usando quello va a botta sicura.
Per quanto riguarda l'esempio sui socket: su Linux hai
read e
write, mentre su Windows hai
Readfile e
WriteFile (notare cosa dice per il primo parametro:
"A handle to the file or I/O device (for example, a file, file stream, physical disk, volume, console buffer, tape drive, socket, communications resource, mailslot, or pipe)". Non vedo questa gran differenza.
(Quando mi è capitato di usare i socket su Windows ho usato Boost.asio, quindi anche qui quello che ho detto vale per dei miei ragionamenti e non per esperienza diretta.)
Windows tende a deprecare senza eliminare, pensa ad esempio ad "avvia questo programma in compatibilità con Windows 95" (che poi non so se quanto funzioni bene). Comunque sia avere qualcosa di nuovo e mettere da parte il vecchio non è necessariamente male, posso capire che è questione di punti di vista, ma ogni tanto capire di aver fatto uno sbaglio e riprogettare da zero non è un male.
Ecco, a proposito di mettere da parte il vecchio per qualcosa di nuovo riprogettato da zero: Powershell.
Arrivata (credo) con Windows Vista ti da un linguaggio di scripting object-oriented decisamente più avanzato di batch, inoltre esistono implementazioni di bash con i vari tool di Linux. Sebbene anch'io preferisco di gran lunga Linux da questo punto di vista, da qui a dire che Windows non ha un vero e proprio terminale ce ne passa.
Il registro di sistema di Windows lo possiamo grossomodo paragonare alle cartelle /etc e /var di Linux. Per scrivere sul registro mi risulta (?) che bisogna utilizzare delle funzioni fornite dal sistema operativo, se il registro si corrompe non è a causa del programma che lo modifica, ma della funzione fornita dal sistema operativo che non fa i dovuti controlli. Però non sono informato su come funzioni il registro di sistema, quindi non voglio parlare troppo a vanvera. La mia opinione è che il registro si corrompe perché Windows Registry Cleaner 2015 Ultimate Pro Cracked, che l'utente ha voluto installare fa più casini di quelli che risolve.
Se l'utente da i permessi ad un programma, non importa se sta usando Windows o Linux, questo programma può far danni. Il sistema di permessi di Windows è più sofisticato di quello di Linux (non necessariamente è un bene) anche perché la fascia di utenza è molto più vasta. Il principale vantaggio di Linux secondo me è proprio dovuto all'utenza, se il 90% del mercato desktop lo utilizzasse non sarebbe più così sicuro. Se obblighi l'utente comune a mettere una password ogni volta bisogna avviare qualcosa come amministratore, la prima cosa che fa è cercare di toglierla, anche solo il "clicka qui" di Vista è stato un fallimento completo.
Col passare degli anni i microkernel e gli exokernel si sono rivelati la scelta migliore proprio perché ne migliorano la sicurezza e la stabilità, è esattamente l'opposto di quello che dici. Il punto è che la differenza tra kernel ibrido di Windows e kernel monolitico Linux è molto più sottile di quello che pensi, Torvalds l'aveva chiamata "trovata commerciale": i microkernel sono meglio, quindi diciamo che Windows è un ibrido. Ma in fin dei conti Windows è monolitico tanto quanto Linux, le caratteristiche ibride non sono così nette.
PS.
Ormai è da qualche anno che uso Linux e non uso Windows, se lo faccio è perché anche io lo ritengo migliore per l'utilizzo che ne faccio. Quello che ho scritto, l'ho scritto semplicemente per dire: anche Windows non è poi così male, anche dal punto di vista dello sviluppatore (basta citare alcuni software per rendersene conto).
PPS.
Vista l'ora non ho riletto, spero di aver scritto in un italiano leggibile e di aver detto poche cazzate.