Perché alcuni programmatori preferiscono il sistema operativo Linux invece di Windows o macOS?

Molte risposte sembrano essere di "Fan" o "Haters" di ogni sistema operativo.

Quindi, come persona che sviluppa usando Windows, OSX e Linux, ecco una ragione molto meno opinionista.

Perché sviluppo usando Linux?

Quando lavoro su server LAMP, mi piace avere il più possibile un ambiente di test locale.
Posso avere tutto lo stesso software, e le stesse versioni del software, in esecuzione sul mio sistema operativo di sviluppo, come verrà eseguito sul server reale quando il sito/applicazione sarà ospitato.
Amo apt-get ... lo amo, lo amo, e così fanno tanti altri!

Perché sviluppo usando Windows?

Quando voglio sviluppare un programma per Windows, potrei sviluppare su qualsiasi altra piattaforma, ma come probabilmente non sarà una sorpresa, Visual Studio, e tutti gli strumenti che lo accompagnano, è, senza dubbio, il miglior strumento per il lavoro.
Inoltre, molti degli strumenti migliori, e più raffinati, sono disponibili per windows!

Perché sviluppo usando OSX?

Anche se non ho niente a che fare con iOS, questa è una ragione per molti, ma la mia ragione in realtà è molto diversa.
OSX ha alcuni programmi davvero belli e raffinati per lo sviluppo. Molti sono disponibili su Windows, e alcuni sono disponibili su Linux.
Ma hai un terminale, con un vero supporto SSH nativo, hai homebrew, fondamentalmente, è una grande via di mezzo. Un'interfaccia piacevole, con grandi strumenti, e un terminale a cui puoi tornare per fare del vero lavoro.

Perché NON uso OSX per lo sviluppo?

Hardware, mentre hackintosh è ottimo per un desktop, gli iMac sono spazzatura troppo costosa, e i Mac Pro sono ancora di più uno scherzo. I notebook vanno bene, ma sono molto costosi.
Devi essere logico dove spendi soldi, specialmente quando hai un budget limitato.

Perché NON uso Windows per lo sviluppo?

SSH, onestamente, questa è la chiave. Mentre puoi usare Putty, e altre cose, ha bisogno di SSH nativo, è un vero dolore cercare di gestire i server senza di esso. Minore, ma un dolore enorme. Inoltre, è un pessimo performer. Le prestazioni su un hardware identico, cade dietro sia OSX che Linux

Perché NON uso Linux per lo sviluppo?

Mentre quasi tutto è disponibile, e funziona altrettanto bene di OSX e Windows, ci sono alcuni strumenti che sono semplicemente spazzatura. Alcune applicazioni semplicemente non sono state ottimizzate, e girano come spazzatura rispetto alle controparti OSX e Windows, e molte di queste potrebbero anche essere l'identica applicazione Java!
Il supporto hardware può essere strano e una seccatura.

Quindi, cosa usa uno sviluppatore come me?

Tutti!

OSX è il mio sistema operativo primario perché è la migliore via di mezzo, con 1 monitor dedicato a Ubuntu in una macchina virtuale, e Windows in un'altra macchina virtuale.
Ho bisogno di testare su tutte le piattaforme, quindi Windows è lì quando ne ho bisogno.
Ho il vero Linux, per tutti i suoi grandi strumenti, e il software equivalente al server per lo sviluppo locale.
Ho OSX, che funziona molto meglio di Windows per ospitare macchine virtuali, con tutti i migliori strumenti disponibili in esecuzione su di esso.

Per i notebook, ho un Macbook Pro (con OSX), e un Dell Alienware (con Linux)

La maggior parte degli sviluppatori web fa cose molto simili a me.
Molti altri sviluppatori, usano ciò che gli piace, il gusto personale è un fattore importante, e per la maggior parte degli sviluppatori, questo significa più di ogni altra cosa.
Spesso, la piattaforma per cui si sviluppa, è un fattore più grande di qualsiasi altra cosa.

WebApp == Linux
Mobile == Apple
Desktop == Windows

Se stai sviluppando un'applicazione desktop, più spesso che no, l'80% della tua base clienti è windows, quindi, vuoi dare alla maggior parte dei tuoi clienti la migliore esperienza possibile, quindi sviluppi per soddisfare loro.

Con il mobile, XCode è molto meglio dei work arounds per compilare e lavorare in Windows, e Android ha gli stessi strumenti su OSX come Windows, inchiodati entrambi in 1 colpo.

Con WebApp, tutte le ragioni che ho menzionato sopra.

Cosa NON è vero?

"Posso hackerare il mio sistema operativo su Linux" - Il fatto è che probabilmente non l'hanno mai fatto, e solo perché sono programmatori, probabilmente non hanno idea di come fare

"Se c'è un bug, posso risolverlo" - Ne dubito, vedi sopra

"I programmi sono open source" - La maggior parte lo sono, ma anche la maggior parte degli stessi strumenti che usi su OSX e Windows lo sono. Il loro codice è Open Source? La maggior parte di queste persone sono dei veri ipocriti 🙁

"Più stabile" - Dichiarazione da fanboy, la gente di Windows sostiene lo stesso, così come la gente di OSX. Sono tutti grandi sistemi operativi stabili, io vado per diversi mesi su tutti e 3, riavviando solo per l'hardware o per i principali aggiornamenti software. Questo è un argomento stupido.

Cosa è vero?

Il gusto, è un fattore enorme!