Wrzucę moją odpowiedź na ring (choć uważam, że te wszystkie też są dobre).
Najbardziej podstawową odpowiedzią, jaką można uzyskać, jest to, że chodzi o filozofię.
W świecie Microsoft jest to trochę religijne - masz bogów na Mt. Redmond, do którego należy złożyć petycję, jeśli chcesz coś zrealizować. Czasem będą słuchać, innym razem wasze ofiary i prośby spadną na głuche uszy. Być może polowali. Microsoft kontroluje cały ekosystem - jest właścicielem systemu operacyjnego, posiada IDE i łączy je ze sobą w sposób, który prawdopodobnie nie jest odpowiedni do rozmowy w sieci SE. Nawet w IDE elementy są ściśle ze sobą powiązane - można to nazwać zintegrowanymale myślę, że sprzężenie jest dokładniejsze. Jeśli chcesz coś nieco zmienić, Gates zabrania, abyś chciał coś zmienić w sposób, na który ani projektanci Windows, ani Visual Studio nie zezwolili wyraźnie. A potem wrzuć technologie, takie jak IE, IIS, serwery Microsoft, MS SQL Server i Office ... i wszystko jest fajną, dużą, szczęśliwą rodziną. Ale jeśli chcesz zostawić część rodziny za sobą? wzdrygnij się !
Z drugiej strony, masz Linuksa, który wywodzi się z filozofii uniksowej, że każdy kawałek powinien być odpowiedzialny za swoją własną małą sferę odpowiedzialności. Powinien zrobić jedną rzecz i zrobić to dobrze. I najlepiej komunikacja powinna odbywać się za pomocą ciągów tekstowych. Jak inni zwrócili uwagę, sed
, awk
, grep
, itd. Są doskonałym przykładem. Robią jedną rzecz, do której zostali stworzeni , i robią to bardzo dobrze. Jeśli musisz zrobić dwie rzeczy, połącz oba narzędzia. Co jest bardzo łatwe do zrobienia.
Ponieważ sed
nie oczekuje niczego poza wprowadzaniem danych wejściowych, będzie to tekst, co oznacza, że wszystko , co może wytworzyć tekst, nie musi ponownie wymyślać koła. Mogą po prostu użyć sed
. A ponieważ sed
produkuje tekst, wszystko, co może czytać tekst, może korzystać z danych wyjściowych sed
. Tekst jest bardzo uniwersalny (istnieją wyjątki od tego) i bardzo łatwo jest łączyć ze sobą tego rodzaju rzeczy.
Nie tylko łatwo je połączyć, ale także bardzo łatwo je rozdzielić - jeśli zdecyduję, że nie muszę już edytować strumienia, ale chcę filtrować wyniki, zamiast przekazywać tekst sed
, mogę przekazać go grep
zamiast.
Jest to podstawowa filozofia rozwoju w środowisku Linux - więc nawet jeśli stamtąd pójdziesz wyżej, wiele narzędzi zapewnia podobne rodzaje interfejsów. Pozwalają rozłożyć je na części lub połączyć się z nimi za pomocą wiersza poleceń, portów lub protokołu HTTP.
A nawet gdyby tak nie było, masz również oprogramowanie typu open source. Większość (jeśli nie wszystkie) oprogramowania na platformie Linux jest oprogramowaniem typu open source. Jeśli więc nie podoba ci się, jak napisano, jesteś w stanie całkowicie, całkowicie, samodzielnie zmienić oprogramowanie. Jest to niezwykle wzmacniające. Nie możesz rozdzielić tego IDE tak, jak chcesz? Dokonaj zmian i prześlij je z powrotem, lub rozwidlaj projekt. Nie wiesz, dlaczego coś się tak zachowuje? Użyj źródła, Luke! Potrzebujesz być w stanie zautomatyzować coś za pomocą wiersza polecenia? Włam się do projektu i wprowadzaj zmiany. Napotkasz błąd lub problem bezpieczeństwa? Hej, zgadnij co - możesz to naprawić samodzielnie, nie musisz czekać na pojawienie się SP3.432vb89234.startdate1eQ.
Możesz łączyć narzędzia, które chcesz i których potrzebujesz. A jeśli jest coś na twojej drodze, jesteś w 100% w stanie to zmienić. Nawet jeśli nie masz takiej możliwości, z pewnością możesz zapłacić komuś, kto opracuje tę zmianę - lub nawet zasugerować ją komuś innemu, kto ma wiedzę.
Powodem, dla którego jest to lepsze w programowaniu, jest to, że gdy natrafisz na tarcie , możesz je wyeliminować z przepływu pracy. Ponieważ rozwój jest trudny , jest wiele rzeczy, o których musisz myśleć, aby odnieść sukces jako programista, a im więcej musisz myśleć o tym, tym trudniej jest myśleć o innych rzeczach .
Kluczem jest wyeliminowanie tarcia.
Więc jeśli religia ekostystemu Microsoft jest miejscem, w którym czujesz się jak w domu, i tak bardzo lubisz narzędzia, że nie zapewnia ci to żadnych tarć ... cóż, to prawdopodobnie jest w porządku.
Ale jeśli nie pasujesz do Microsoft Mold (tm), zgłoszony do opatentowania, wpadniesz w tarć. Rozwój będzie bólem. Za każdym razem, gdy chcesz, możesz coś zrobić, ale nie możesz, co spowoduje wyczerpanie cennych zasobów poznawczych. A jeśli tak, to środowisko programistyczne dla Linuksa jest prawdopodobnie dla Ciebie.
vim
ich. To bardzo subiektywny obszar! Wiele osób korzysta z IDE w Linuksie, więc łączysz tutaj wiele rzeczy.