Lanzaré mi respuesta al ring (aunque creo que todos estos también son buenos).
La respuesta más básica que puede obtener es que se trata de filosofía.
En el mundo de Microsoft, es un poco religioso: tienes a los dioses en el monte. Redmond, a quien se debe solicitar si desea implementar algo. Algunas veces escucharán, otras veces tus sacrificios y súplicas caerán en oídos sordos. Quizás estaban cazando. Microsoft controla todo el ecosistema: son dueños del sistema operativo, son dueños del IDE y los juntan de maneras que probablemente no sean apropiadas para hablar en una red SE. Incluso dentro del IDE, las piezas están estrechamente acopladas; puede llamarse integradopero creo que acoplado es más preciso. Si desea cambiar un poco las cosas, Gates prohíbe que desee alterar algo de una manera que los diseñadores de Windows o Visual Studio no permitieron expresamente. Y luego agregue tecnologías como IE e IIS, servidores de Microsoft y MS SQL Server y Office ... y todo es una familia grande y feliz. ¿Pero si quieres dejar atrás a parte de la familia? estremecerse !
Por otro lado, tienes Linux, que hereda de la filosofía de Unix que cada pieza debe ser responsable de su pequeña esfera de responsabilidad. Debería hacer una cosa y hacerlo bien. Y, preferiblemente, la comunicación debe realizarse mediante cadenas de texto. Como otros han señalado, sed
, awk
, grep
, etc, son ejemplos perfectos de esto. Ellos hacen el uno lo que están diseñados para hacer, y lo hacen muy bien. Si necesita hacer dos cosas, entonces combina las dos herramientas. Lo cual es muy fácil de hacer.
Debido a que sed
espera que nada más que la entrada que ingrese sea texto, eso significa que cualquier cosa que pueda producir texto no tiene que reinventar la rueda. Simplemente pueden usar sed
. Y debido a que sed
produce texto, cualquier cosa que pueda leer texto puede usar la salida de sed
. El texto es muy universal (hay algunas excepciones a esto), y es muy fácil combinar este tipo de cosas.
No solo es fácil combinarlos, sino que también es muy fácil separarlos; si decido que ya no necesito editar una secuencia, pero quiero filtrar los resultados, en lugar de pasar mi texto sed
, puedo pasar en su grep
lugar.
Ahora, esta es la filosofía fundamental detrás del desarrollo en un entorno Linux, por lo que incluso si avanza desde allí, muchas herramientas proporcionan tipos similares de interfaces. Le permiten descomponerlos en partes o interactuar con ellos a través de la línea de comando o puertos o HTTP.
E incluso si ese no fuera el caso, también tiene software de código abierto. La mayoría (si no todo) el software en la plataforma Linux es de código abierto. Por lo tanto, si no le gusta cómo está escrito, puede cambiar el software usted mismo de forma total, total y absoluta. Esto es increíblemente enriquecedor. ¿No puede separar ese IDE de la manera que desea? Realice los cambios y envíelos nuevamente en sentido ascendente, o bifurque el proyecto. ¿No está seguro de por qué algo se comporta como lo hace? ¡Usa la fuente, Luke! ¿Necesita poder automatizar algo a través de la línea de comando? Hackea el proyecto y pega tus cambios. ¿Te encuentras con un error o un problema de seguridad? Oye, adivina qué: puedes arreglarlo tú mismo, no tienes que esperar a que salga SP3.432vb89234.startdate1eQ.
Puede combinar las herramientas que desee y necesite. Y si hay algo en tu camino, eres 100% capaz de cambiar eso. Incluso si no tiene la capacidad, sin duda podría pagarle a alguien para que desarrolle ese cambio, o incluso sugerirlo a otra persona que tenga los conocimientos.
La razón por la que esto es mejor para la programación es porque cuando encuentras fricción , puedes eliminarla de tu flujo de trabajo. Debido a que el desarrollo es difícil, hay muchas cosas en las que tienes que pensar para ser un programador exitoso, y cuanto más tienes que pensar, más difícil es pensar en otras cosas .
Eliminar la fricción es la clave.
Entonces, si la religión del ecosistema de Microsoft es donde te sientes como en casa, y disfrutas tanto de las herramientas que no te proporciona mucha / ninguna fricción ... bueno, entonces probablemente esté bien.
Pero si no se ajusta al molde de Microsoft (tm), pendiente de patente, entonces se encontrará con fricciones. El desarrollo será un dolor. Cada vez que desee , podría hacer algo, pero no puede, que drenará preciosos recursos cognitivos. Y si ese es el caso, entonces un entorno de desarrollo de Linux es probablemente para usted.
vim
. ¡Esta es un área muy subjetiva! Sin embargo, muchas personas usan IDE en Linux, por lo que aquí se combinan varias cosas.