¿Cuáles son las ventajas de comenzar a desarrollar un sistema a gran escala en un entorno Unix en lugar de hacerlo en un entorno Windows?

En riesgo de parecer arrogante: ¿cuáles son los méritos de considerar comenzar a construir un sistema a gran escala en Windows en estos días? 🙂

* nix ha sido un estándar por mucho tiempo. Es más maduro y robusto para las tareas que requeriría construir, implementar, ejecutar y mantener un sistema a gran escala.

* los expertos en nix serían mucho más fáciles de reclutar.

Las soluciones y referencias de código abierto serán mucho más fáciles de encontrar.

Sus preguntas de nivel inferior en los foros * nix serían respondidas antes y por un público generalmente más experimentado en comparación con los de Windows.

En caso de que decida abrir todo el código o parte de su sistema, el * nix sería aceptado con gusto.

Windows puede sonar sexy para productos de tamaño corto a mediano. Especialmente si usted o alguien que conoce bien es un experto en esta área. Y el código administrado CLR, especialmente C #, es realmente genial. Pero una vez que creces a gran escala, los beneficios desaparecen rápidamente.

En pocas palabras: a menos que trabaje para Microsoft, considere comenzar un nuevo sistema a gran escala en una plataforma * nix.

Ah, y si su sistema no solo es de gran escala sino también de bajo nivel, por lo que no puede permitirse el uso de C #, ¿por qué no lo inicia en una plataforma multiplataforma?

gdb es experto amigable. Puede configurarlo para omitir las funciones de biblioteca triviales y estándar al avanzar. Puede programar puntos de interrupción para que sean condicionales en una determinada ruta a través del código en niveles más profundos en el gráfico de llamadas o en función de eventos que ocurrieron antes en el tiempo. Puede buscar mediante programación a través de estructuras de datos. Puede programarlo en Python si lo desea (a veces encuentro problemática la falta de variables locales en el script gdb). Todo es texto, de modo que si corta y pega, se conserva toda la sangría. Puede ejecutarlo en un búfer de editor para que toda esa funcionalidad se pueda usar en la salida del depurador como búsqueda y múltiples búferes de cortar y pegar.

GNU make es amigable para los expertos y juega bien con la cadena de herramientas. Es trivial agregar objetivos. Es trivial agregar nuevas reglas para cosas interesantes, como ejecutar todas las pruebas unitarias bajo valgrind. En los sistemas donde las compilaciones no se bloquean en los medios giratorios IO (con SSD, disco RAM, etc.), puede obtener aceleraciones masivas a través de la paralelización de los objetivos de compilación y prueba (que es diferente de construir múltiples proyectos al mismo tiempo con msbuild )

Maldecirás a Visual Studio por esas razones si eres competente en el desarrollo de Unix.

En el futuro, estará más feliz con su entorno Unix dado que invierte inicialmente en entornos de implementación y desarrollo. Por inversión me refiero a tiempo y experiencia. ¡Hazlo bien! Inicialmente, esta es una inversión mayor que con Windows, pero valdrá la pena y usted será más feliz. Sin embargo, si no tiene la experiencia o no está dispuesto a hacer esa inversión por adelantado, entonces estará mejor con Windows y Visual Studio con Team Foundation Server, aunque a veces lo volverá loco porque tiene una barrera de entrada menor, pero Pagará un precio en el futuro.