Vou jogar minha resposta no ringue (embora acredite que todas sejam boas também).
A resposta mais básica que você pode obter é que é tudo sobre filosofia.
No mundo da Microsoft, é um pouco religioso - você tem os deuses no Monte. Redmond, que deve ser solicitado se você quiser algo implementado. Às vezes eles ouvem, outras vezes seus sacrifícios e pedidos caem em ouvidos surdos. Talvez eles estivessem caçando. A Microsoft controla todo o ecossistema - eles possuem o SO, o IDE e os juntam de maneiras provavelmente inapropriadas para falar em uma rede SE. Mesmo dentro das peças do IDE estão fortemente acopladas - pode ser chamado de integradomas acho que acoplado é mais preciso. Se você gostaria de mudar um pouco as coisas, Gates proíbe que você queira alterar algo de uma maneira que os designers do Windows ou do Visual Studio não permitiram expressamente. E, em seguida, instale tecnologias como IE, IIS, servidores Microsoft, MS SQL Server e Office ... e tudo é uma ótima e feliz família. Mas se você quiser deixar parte da família para trás? estremecer !
Por outro lado, você tem o Linux, que herda da filosofia Unix de que cada peça deve ser responsável por sua própria pequena esfera de responsabilidade. Deve fazer uma coisa e fazê-lo bem. E, de preferência, a comunicação deve ocorrer por meio de cadeias de texto. Como outros apontaram, sed
, awk
, grep
, etc, são exemplos perfeitos disso. Eles fazem a única coisa para a qual foram projetados e o fazem muito bem. Se você precisar fazer duas coisas, combine as duas ferramentas. O que é muito fácil de fazer.
Como sed
nada espera além da entrada de entrada será texto, isso significa que qualquer coisa que possa produzir texto não precisa reinventar a roda. Eles podem simplesmente usar sed
. E, como sed
produz texto, qualquer coisa que possa ler texto pode usar a saída sed
. O texto é muito universal (há algumas exceções) e é muito fácil combinar esses tipos de coisas.
Não só é fácil combiná-los, mas também é muito fácil separá-los - se eu decidir que não preciso mais editar um fluxo, mas quero filtrar os resultados, em vez de passar meu texto sed
, posso passar em grep
vez disso.
Agora, essa é a filosofia fundamental por trás do desenvolvimento em um ambiente Linux - portanto, mesmo se você for a partir daí, muitas ferramentas oferecem tipos semelhantes de interfaces. Eles permitem decompô-los em partes ou fazer interface com eles através da linha de comando ou portas ou HTTP.
E mesmo que não fosse esse o caso, você também tem software de código aberto. A maioria dos softwares (se não todos) da plataforma Linux é de código aberto. Portanto, se você não gosta de como está escrito, é completamente, totalmente, absolutamente capaz de alterar o software por conta própria. Isso é incrivelmente poderoso. Não é possível separar esse IDE da maneira que você deseja? Faça as alterações e envie-as de volta a montante ou bifurque o projeto. Não sabe por que algo se comporta da maneira que faz? Use a fonte, Luke! Precisa ser capaz de automatizar algo através da linha de comando? Hackeie o projeto e faça as alterações necessárias. Encontre um bug ou um problema de segurança? Ei, adivinhe - você mesmo pode consertar isso, não precisa esperar que o SP3.432vb89234.startdate1eQ seja lançado.
Você pode combinar as ferramentas que deseja e precisa. E se houver algo no seu caminho, você é 100% capaz de mudar isso. Mesmo se você não tiver a capacidade, certamente poderia pagar alguém para desenvolver essa mudança - ou até sugeri-la a outra pessoa que tenha o conhecimento.
A razão pela qual isso é melhor para a programação é que, quando você encontra um atrito , pode eliminá-lo do seu fluxo de trabalho. Como o desenvolvimento é difícil, há muitas coisas que você precisa pensar para ser um programador de sucesso, e quanto mais você precisa pensar, mais difícil é pensar em outras coisas .
Eliminar o atrito é fundamental.
Portanto, se a religião do ecossistema da Microsoft é onde você se sente em casa, e você gosta tanto das ferramentas que não fornece muito / nenhum atrito ... bem, provavelmente tudo bem.
Mas se você não se encaixar no Microsoft Mold (tm), com patente pendente, terá um atrito. Desenvolvimento será uma dor. Cada vez que você deseja, pode fazer algo, mas não pode, que irá drenar recursos cognitivos preciosos. E se for esse o caso, provavelmente um ambiente de desenvolvimento Linux é para você.
vim
. Esta é uma área muito subjetiva! Muitas pessoas usam IDEs no Linux, então você está misturando várias coisas aqui.