Lancio la mia risposta sul ring (anche se credo che anche questi siano tutti buoni).
La risposta più semplice che puoi ottenere è che si tratta di filosofia.
Nel mondo Microsoft, è un po 'religioso - Hai gli dei sul Monte. Redmond, che deve presentare una petizione se si desidera implementare qualcosa. A volte ascolteranno, altre volte i tuoi sacrifici e le tue richieste cadranno inascoltati. Forse erano fuori a caccia. Microsoft controlla l'intero ecosistema: possiede il sistema operativo, possiede l'IDE e li accoppia in modi probabilmente inappropriati di cui parlare su una rete SE. Anche all'interno dei pezzi IDE sono strettamente accoppiati - può essere chiamato integratoma penso che l'accoppiamento sia più preciso. Se desideri cambiare un po 'le cose, Gates ti proibisce di voler modificare qualcosa in un modo che né i progettisti di Windows o Visual Studio non hanno espressamente consentito. E poi aggiungi tecnologie come IE, IIS, server Microsoft e MS SQL Server e Office ... e tutto è una bella famiglia felice. Ma se dovessi lasciare una parte della famiglia alle spalle? brivido !
D'altra parte, hai Linux, che eredita dalla filosofia Unix che ogni pezzo dovrebbe essere responsabile della propria piccola sfera di responsabilità. Dovrebbe fare una cosa e farlo bene. E preferibilmente, la comunicazione dovrebbe avvenire tramite stringhe di testo. Come altri hanno fatto notare, sed
, awk
, grep
, ecc, sono perfetti esempi di questo. Fanno l' unica cosa per cui sono progettati e lo fanno molto bene. Se devi fare due cose, allora combini i due strumenti. Che è molto facile da fare.
Poiché sed
non si aspetta nulla oltre l'ingresso in ingresso sarà il testo, ciò significa che tutto ciò che può produrre testo non deve reinventare la ruota. Possono semplicemente usare sed
. E poiché sed
produce testo, tutto ciò che può leggere il testo può usare l'output di sed
. Il testo è molto universale (ci sono alcune eccezioni a questo), ed è molto facile combinare questi tipi di cose insieme.
Non solo è facile combinarli, ma è anche molto facile dividerli a parte: se decido che non ho più bisogno di modificare uno stream, ma voglio filtrare i risultati, piuttosto che passare il mio testo a sed
, posso passare a grep
posto.
Ora, questa è la filosofia fondamentale alla base dello sviluppo in un ambiente Linux - quindi anche se si sale da lì, molti strumenti forniscono tipi simili di interfacce. Consentono di scomporli in parti o di interfacciarsi con essi tramite la riga di comando o le porte o HTTP.
E anche se non fosse così, hai anche un software open source. La maggior parte (se non tutti) dei software sulla piattaforma Linux è open source. Quindi, se non ti piace come è scritto, sei completamente, totalmente, assolutamente in grado di cambiare tu stesso il software. Questo è incredibilmente potente. Non riesci a separare quell'IDE nel modo in cui vuoi? Apportare le modifiche e inviarle nuovamente a monte o fork del progetto. Non sei sicuro del perché qualcosa si comporti in questo modo? Usa la fonte, Luke! Devi essere in grado di automatizzare qualcosa attraverso la riga di comando? Attacca il progetto e attacca le tue modifiche. Hai riscontrato un bug o un problema di sicurezza? Ehi indovina un po ': puoi risolverlo da solo, non devi aspettare che SP3.432vb89234.startdate1eQ esca.
Puoi combinare gli strumenti che desideri e di cui hai bisogno. E se c'è qualcosa che ti ostacola, sei al 100% in grado di farlo cambiare. Anche se non hai la possibilità, potresti sicuramente pagare qualcuno per sviluppare quel cambiamento - o persino suggerirlo a qualcun altro che ha il know-how.
Il motivo per cui questo è meglio per la programmazione è perché quando si incontra attrito , è possibile eliminarlo dal flusso di lavoro. Poiché lo sviluppo è difficile, ci sono molte cose a cui devi pensare per essere un programmatore di successo, e più devi pensare a più è difficile pensare ad altre cose .
Eliminare l'attrito è la chiave.
Quindi, se la religione dell'ecosistema Microsoft è dove ti senti a casa, e ti piacciono così tanto gli strumenti che non ti danno molto / nessun attrito ... beh, allora probabilmente va bene.
Ma se non si adatta a Microsoft Mold (tm), in attesa di brevetto, si verificherà un attrito. Lo sviluppo sarà un dolore. Ogni volta che desideri di poter fare qualcosa, ma non puoi, questo drenerà preziose risorse cognitive. E se è così, allora un ambiente di sviluppo Linux è probabilmente per te.
vim
a loro piacimento. Questa è un'area molto soggettiva! Molte persone usano gli IDE su Linux, quindi stai combinando più cose qui.