Cevabımı halkaya atacağım (bunların hepsinin de iyi olduğuna inanıyorum).
Alabileceğiniz en temel cevap, her şeyin felsefe ile ilgili olmasıdır.
Microsoft dünyasında, biraz dindar - Mt. Redmond, uygulanan herhangi bir şey istiyorsanız dilekçe vermelidir. Bazen dinlerler, diğer zamanlar sizin fedakarlıklarınız ve sağır kulaklara düşer. Belki de avlanıyorlardı. Microsoft tüm ekosistemi kontrol ediyor - OS'ye sahipler, IDE'ye sahipler ve onları bir SE ağında konuşmak için uygun olmayan yollarla bir araya getiriyorlar. IDE parçaları içinde bile sıkı bir şekilde bağlanmış - buna entegre edilmiş denilebilir, fakat sanırım daha doğru olur. Bazı şeyleri değiştirmek isterseniz, Gates, Windows veya Visual Studio tasarımcılarının açıkça izin vermediği bir şekilde bir şey değiştirmek istediğinizi yasaklar. Ve sonra IE ve IIS, Microsoft sunucuları ve MS SQL Server ve Office gibi teknolojilere atıyorsunuz ... ve her şey güzel ve mutlu bir aile. Ama ailenin bir kısmını geride bırakmak istiyorsan? titreme
Öte yandan, Unix felsefesinden miras alan, her parçanın kendi küçük sorumluluk alanından sorumlu olması gereken Linux'a sahipsiniz. Bir şeyi yapmalı ve iyi yapmalı. Ve tercihen, iletişim, metin dizileri yoluyla gerçekleşmelidir. Başkalarının işaret ettiği gibi,
sed ,
awk ,
grep vb. Bunun mükemmel örnekleridir. Yapacakları bir şeyi yaparlar ve çok iyi yaparlar. İki öğe yapmanız gerekiyorsa, iki aracı birleştirirsiniz. Hangisi çok kolay?
sed içeriğin girilmesinin yanı sıra hiçbir şey beklemediğinden, metin oluşturabilecek herhangi bir şey , tekerleği yeniden icat etmek zorunda kalmaz. Sadece
sed kullanabilirler. % Co_de% 'si metin oluşturduğundan, oku metnini okuyabilecek her şey çıktıyı
sed ' den kullanabilir. Metin çok evrenseldir (bunun için bazı istisnalar vardır) ve bu tür şeyleri bir araya getirmek çok kolaydır.
Bunları birleştirmek kolay değildir, aynı zamanda onları ayırmak da çok kolaydır - eğer bir akışı düzenlemeye artık ihtiyacım olmadığına karar verirsem, fakat sonuçları filtrelemek yerine, sonuçları filtrelemek istiyorum. co_de%, bunun yerine
sed adresine geçirebilirim.
Şimdi, bu, Linux ortamındaki gelişmenin arkasındaki temel felsefedir - bu yüzden oradan çıksanız bile, birçok araç benzer türde arayüzler sağlar. Bunları parçalara ayırmanıza veya komut satırı veya bağlantı noktaları veya HTTP aracılığıyla bunlarla arabirim oluşturmanıza izin verir.
Ve bu durumda olmasa bile, açık kaynaklı yazılımınız da var. Linux platformunda çoğu (tümü olmasa da) bir yazılım açık kaynak. Öyleyse, nasıl yazıldığını beğenmezseniz, tamamen, tamamen, yazılımı kendiniz değiştirebileceksiniz. Bu inanılmaz derecede güçleniyor. IDE'yi istediğin gibi kıramaz mısın? Değişiklikleri yapın ve onları geri akışa gönderin ya da projeyi çatallayın. Bir şeyin neden böyle davrandığından emin değil misiniz? Kaynağı kullan, Luke! komut satırında bir şeyi otomatikleştirmek için? Projede hack olun ve değişikliklerinizi yapın. Bir hata veya güvenlik sorunuyla karşılaşın mı? Hey tahmin edin - kendiniz düzeltebilirsiniz, SP3.432vb89234.startdate1eQ'in çıkmasını beklemeniz gerekmez.
İstediğiniz ve istediğiniz araçları birleştirebilirsiniz. Ve eğer yolunda olan bir şey varsa, bunu% 100 değiştirebilirsin. Yeteneğiniz olmasa bile, bu değişikliği geliştirmek için birilerine kesinlikle ödeme yapabilirsiniz - hatta bunu know-how'a sahip başka birine de önerebilirsiniz.
Bunun programlama için daha iyi olmasının nedeni, sürtünme ile karşılaştığınız zaman, bunu iş akışı. Geliştirme zor olduğundan, başarılı bir programcı olmak için düşünmeniz gereken çok şey var ve daha fazlası hakkında düşünmeniz gereken diğer şeyleri düşünmek daha zor".
Sürtünmeyi ortadan kaldırmak önemli.
Yani eğer Microsoft ekosistem din, evde hissettiğiniz yerdir ve size çok fazla / sürtünme sağlamayan araçların keyfini çıkarırsınız ... iyi, muhtemelen sadece iyi o zaman.
Fakat eğer Microsoft Kalıbı (tm) 'ye uymazsanız, patenti beklemede kalırsanız, sürtünme ile karşılaşırsınız. Gelişme bir acı olacaktır. Her dilediğiniz zaman bir şeyler yapabilirdiniz, ama yapamazsınız, bu değerli bilişsel kaynakları tüketecektir. Ve eğer durum buysa, bir Linux geliştirme ortamı muhtemelen sizin için.