Saya akan melemparkan jawaban saya ke atas ring (meskipun saya percaya semua ini juga bagus).
Jawaban paling mendasar yang bisa Anda dapatkan adalah bahwa itu semua tentang filsafat.
Di dunia Microsoft, ini agak religius - Anda memiliki dewa di Mt. Redmond yang harus mengajukan petisi jika Anda ingin sesuatu diterapkan. Kadang-kadang mereka akan mendengarkan, di lain waktu pengorbanan dan permohonan Anda akan jatuh di telinga tuli. Mungkin mereka sedang berburu. Microsoft mengendalikan seluruh ekosistem - mereka memiliki OS, mereka memiliki IDE, dan mereka menyatukan mereka dengan cara yang mungkin tidak pantas untuk dibicarakan di jaringan SE. Bahkan di dalam potongan IDE sangat erat - itu bisa disebut terintegrasitapi saya pikir ditambah lebih akurat. Jika Anda ingin mengubah keadaan sedikit, Gates melarang Anda ingin mengubah sesuatu dengan cara yang tidak diizinkan oleh perancang Windows atau Visual Studio. Dan kemudian melempar teknologi seperti IE, dan IIS, server Microsoft, dan MS SQL Server, dan Office ... dan semuanya adalah keluarga besar yang menyenangkan. Tetapi jika Anda ingin meninggalkan bagian keluarga? bergidik !
Di sisi lain, Anda memiliki Linux, yang mewarisi dari filosofi Unix bahwa setiap bagian harus bertanggung jawab atas lingkup tanggung jawabnya yang kecil. Itu harus melakukan satu hal, dan melakukannya dengan baik. Dan lebih disukai, komunikasi harus terjadi melalui string teks. Seperti orang lain telah menunjukkan, sed
, awk
, grep
, dll adalah contoh sempurna dari ini. Mereka melakukan satu hal yang dirancang untuk mereka lakukan, dan mereka melakukannya dengan sangat baik. Jika Anda perlu melakukan dua hal, maka Anda menggabungkan kedua alat tersebut. Yang sangat mudah dilakukan.
Karena sed
tidak mengharapkan apa pun selain input yang masuk adalah teks, itu berarti bahwa apa pun yang dapat menghasilkan teks tidak harus menemukan kembali roda. Mereka hanya bisa menggunakan sed
. Dan karena sed
menghasilkan teks, apa pun yang dapat membaca teks dapat menggunakan output dari sed
. Teks sangat universal (ada beberapa pengecualian untuk ini), dan sangat mudah untuk menggabungkan hal-hal ini bersama-sama.
Tidak hanya mudah untuk menggabungkannya, tetapi juga sangat mudah untuk memisahkannya - jika saya memutuskan bahwa saya tidak perlu lagi mengedit aliran, tetapi saya ingin memfilter hasilnya, daripada meneruskan teks saya ke sed
, saya bisa meneruskan itu grep
sebagai gantinya.
Sekarang, ini adalah filosofi dasar di balik pengembangan dalam lingkungan Linux - jadi bahkan jika Anda naik dari sana, banyak alat yang menyediakan jenis antarmuka yang serupa. Mereka memungkinkan Anda untuk menguraikannya menjadi beberapa bagian, atau berinteraksi dengan mereka melalui baris perintah atau port atau HTTP.
Dan bahkan jika itu tidak terjadi, Anda juga memiliki perangkat lunak sumber terbuka. Sebagian besar (jika tidak semua) perangkat lunak pada platform Linux adalah open source. Jadi, jika Anda tidak suka bagaimana ini ditulis, Anda benar-benar, benar-benar dapat mengubah perangkat lunak sendiri. Ini sangat memberdayakan. Tidak dapat memecah IDE itu seperti yang Anda inginkan? Entah membuat perubahan dan mengirimkannya kembali ke hulu, atau memotong proyek. Tidak yakin mengapa sesuatu berperilaku seperti itu? Gunakan sumbernya, Luke! Perlu dapat mengotomatisasi sesuatu melalui baris perintah? Meretas proyek dan memasukkan perubahan Anda. Menemukan bug, atau masalah keamanan? Hei coba tebak - Anda dapat memperbaikinya sendiri, Anda tidak perlu menunggu SP3.432vb89234.startdate1eQ keluar.
Anda dapat menggabungkan alat yang Anda inginkan dan yang Anda butuhkan. Dan jika ada sesuatu yang menghalangi Anda, Anda 100% bisa mengubahnya. Bahkan jika Anda tidak memiliki kemampuan, Anda tentu dapat membayar seseorang untuk mengembangkan perubahan itu - atau bahkan menyarankannya kepada orang lain yang memiliki pengetahuan.
Alasan ini lebih baik untuk pemrograman adalah karena ketika Anda menemukan gesekan , Anda dapat menghilangkannya dari alur kerja Anda. Karena pengembangan itu sulit, ada banyak hal yang harus Anda pikirkan untuk menjadi programmer yang sukses, dan semakin banyak Anda harus berpikir tentang semakin sulit untuk memikirkan hal-hal lain .
Menghilangkan gesekan adalah kuncinya.
Jadi jika Microsoft ecostystem agama adalah di mana Anda merasa di rumah, dan Anda menikmati alat begitu banyak sehingga tidak menyediakan Anda dengan banyak / gesekan setiap ... baik, itu mungkin baik-baik saja kemudian.
Tetapi jika Anda tidak cocok dengan Microsoft Mold (tm), paten tertunda, maka Anda akan mengalami gesekan. Perkembangan akan menyusahkan. Setiap kali Anda berharap bisa melakukan sesuatu, tetapi tidak bisa, itu akan menghabiskan sumber daya kognitif yang berharga. Dan jika itu masalahnya, maka lingkungan pengembangan Linux mungkin untuk Anda.
vim
dengan keinginan mereka. Ini adalah area yang sangat subyektif! Banyak orang menggunakan IDE di Linux, jadi Anda menggabungkan banyak hal di sini.