2009-02-01 15 views
5

¿Existen beneficios técnicos para Windows/Microsoft como plataforma para usar mientras se desarrolla, en un dialecto Unix como Linux o Solaris?Ventajas de elegir Windows sobre Unix como plataforma de desarrollo

Sé que las empresas eligen Microsoft a veces porque simplemente no hay suficientes programadores disponibles que conozcan Unix, o que estos programadores son mucho más caros de contratar.

Suponiendo que todos los desarrolladores conocieran Unix y Microsoft igualmente bien, ¿seguiría habiendo casos en los que es mejor desarrollarse en Windows?

+0

lo preguntas sobre qué plataforma para el desarrollo de * *? ¿O qué plataforma usar durante el desarrollo? –

Respuesta

9

Justo al lado de la parte superior de la cabeza:

  • .NET (a pesar de mono es realmente grande)
  • Visual Studio - probablemente el mejor IDE alrededor
  • excelente documentación (La biblioteca MSDN es la forma mucho más revelador de usar que las páginas de manual en mi opinión)
  • enorme base de usuarios (que es más como una cosa de negocios, pero aún así es un factor muy importante)
  • compat binario capacidad (es mucho más fácil de soportar 4-5 núcleos y las versiones de la biblioteca estándar C que el número infinito de combinaciones se pueden encontrar en las distribuciones de Linux)
+0

Creo que la pregunta no es sobre la plataforma objetivo; pero la plataforma utilizada durante el desarrollo. por lo tanto, solo su segundo punto sería relevante. – Javier

+1

Javier: incluso si la pregunta era sobre la plataforma objetivo, creo que estaría de acuerdo en que la plataforma objetivo y la plataforma de desarrollo no están totalmente relacionadas. –

0

que le puede dar un argumento común que las personas puedan hacer de Windows, aunque No estoy necesariamente de acuerdo con eso.

  • Las personas a veces piensan que los cuadros de Windows en tiempo de producción son más fáciles de mantener e implementar. Eso es porque hay muchas herramientas visuales disponibles para el administrador. Por lo tanto, prefieren .Net o un lenguaje de desarrollo específico de Windows para una fácil integración.

  • Si sus clientes o clientes internos usan todas las computadoras de escritorio con Windows, algunos argumentarán que es menor el trabajo preliminar para hacer cosas con los servidores de Windows. Esto incluye elementos para compartir documentos de Microsoft Office (es decir, compartir) o cosas con el uso compartido de archivos de Windows. Obviamente, es más fácil escribir una aplicación .Net para hacer frente a tales restricciones específicas de Microsoft.

No puedo pensar en ninguna otra razón. El último es probablemente el más válido; puede que exista una tecnología específica de Microsoft que sea difícil de integrar a menos que use herramientas de desarrollo de MSFT.

5

Una de las mejores cosas que puede hacer es mantener sus opciones abiertas. Chopse una plataforma independiente de tecnología y podrá tener software para cualquier O/S o implementación. Desde un punto de vista técnico, esto tiene mucho sentido, así como de una empresa.

En cuanto a las ventajas técnicas específicas de la plataforma Windows, aparte de la gran comunidad de desarrolladores y la tienda de información de desarrollo, y IDE ampliamente soportados como Visual Studio, diría que será difícil encontrar uno. Incluso allí, Eclipse puede hacer un trabajo igual de bueno con una tecnología independiente de plataforma.

9

Para mí sólo hay dos argumentos para el uso de Windows como plataforma dev:

  1. Tienes que debido a que está haciendo.Desarrollo de Net/Windows (o porque la compañía simplemente no le da opción); o
  2. Las aplicaciones, específicamente Microsoft Office/Exchange. Lo siento, pero OpenOffice es terrible en comparación con Word/Excel.

Aparte de eso en mi humilde opinión Linux tiene cada otra ventaja que incluye:

  • sistema de archivos mucho más rápido (especialmente importante cuando se trata de un montón de archivos pequeños). El año pasado pasé de un tiempo de compilación de 8-10 minutos a 2-3 solo con este cambio (compilación de la misma base de código);
  • Normalmente, su entorno de desarrollo se adapta a su entorno de producción (si su entorno de producción es Windows, su entorno de desarrollo será Windows casi garantizado), que puede ser útil. Hemos tenido problemas con la visibilidad del classpath de Java debido a las diferencias entre JBoss en Windows y Linux; y
  • Un conjunto mucho mejor de herramientas de línea de comandos (sí, sé que puedes usar Cygwin, etc. pero no es tan bueno).

Esa es una razón por la que parece la idea de un Mac como mi próxima estación de trabajo dev tan sugerente: puede buscar ya sea como Unix con aplicaciones (por ejemplo, Office) o Windows con un sistema de archivos decente (será aún mejor si/cuando OSX adopta ZFS), de cualquier forma es una ganancia. Lo único que realmente me desalentó es que Apple hace cosas estúpidas como retrasar el lanzamiento de Java 6 por un año para poder poner el Leopard Look and Feel.

3

Los sistemas de Microsoft tienden a tener una mejor integración entre las diferentes partes: hay mucha menos heterogeneidad de la que preocuparse si usa software solo binario (x86 y comctl3d son mucho más fáciles de admitir que todo * nix se ejecuta).

La curva de aprendizaje en Windows es superficial, pero tiene una distancia global más larga. En Unix/Linux, el comienzo es una lucha, pero hacer las cosas más tarde es más fácil, cuando el funcionamiento interno del sistema operativo comienza a tener sentido.

Al menos esa ha sido mi experiencia con ellos. Windows para un pago rápido, Linux si vas a hacer algo a más largo plazo. Y máquinas virtuales si no puede decidir :)

2

Una razón por la que tenemos plataformas de desarrollo de Windows (aunque nuestra producción está en Linux o Solaris) es entorno común para todos.

Eso significa que todas las diferentes poblaciones involucradas en la realización de un software:

  • son no todos los desarrolladores (negocios, la gente funcionales también están preocupados con un entorno de trabajo)
  • están todos en el misma plataforma (Windows)
  • utilizar todas las mismas herramientas para escribir/comunicación (como en Word, PowerPoint)
  • puede tener su mismo entorno en la computadora portátil

En resumen: uniformidad del entorno para todos (desarrolladores y no desarrolladores por igual).


La otra razón es depreciación: es fácil de manejar depreciación para PC, donde los servicios son más ligeros que un servidor Unix a gran escala (como un sol de fuego, un F15K F50K o, ...): este último necesita algunos contratos de servicio de asistencia costosos (como "bronce", "plata" u "oro" dependiendo del nivel necesario). Una PC es más fácil de arreglar/reemplazar, y no es tan crítica que un desarrollador la "estropee" y la interrumpa completamente;)

Habiendo dicho esto, la desventaja de esto es que no cambia de PC todos los días: significa administrar un gran número de equipos de escritorio, no puede decidir actualizar de esa manera (y eso también se aplica a Os).

Entonces, cuando las otras respuestas son todas sobre "máquina virtual" mientras que su conjunto de PC es de 2003, con solo 40Go de disco duro y 1, puede ser 2Go de memoria ..., se da cuenta de que la "virtualización" es no siempre es una solución obvia.
Por lo tanto, se requiere algún servidor de "integración" de Unix para que los desarrolladores prueben sus productos en un entorno más cercano al objetivo. En cierto modo, esto es mejor, ya que esos servidores de integración se administran de forma uniforme, evitando el síndrome de "me funciona TM", a diferencia de la máquina virtual, donde cada desarrollador es la raíz/administrador de uno propio pequeño mundo/servidor;).

0

razones periféricos para algunos tipos específicos de desarrollo:

  • necesita ver cómo se ven las cosas, tanto en Firefox y explorador
  • que está trabajando con flash (que yo sepa no se puede desarrollar en Linux , y los jugadores son terribles).
  • estás trabajando en un proyecto que involucró la integración de MS Office
  • tu oficina tiene algún sistema de correo o notas que no puedes iniciar sesión de ninguna otra manera. lo mismo para algunas configuraciones vpn.

Considero que todas estas cosas son lamentables.

2

Creo que esta pregunta presenta una dicotomía falsa. No hay ninguna razón por la que deba elegir Windows sobre Unix o viceversa. La virtualización es gratis y fácil. ¡Es lo mejor de ambos mundos!

+0

esto es especialmente cierto sobre el problema de 'tener que probar para el explorador'. desarrolle en * nix para FireFox/Opera, pruebe en una VM con IE, Safari, Chrome, FireFox, Opera. – Javier

0

¿Por qué no utilizar ambos?

En cualquier caso, podría usar una máquina virtual en Windows o Linux/Unix para básicamente nada usando Virtual Box o el reproductor de VMware. O puede acceder a escritorio/vnc remoto a la otra plataforma desde su caja de desarrollo. Si desarrollas en .net probablemente estarías mejor en Windows para dev. Si desarrollas para LAMP, Windows/* nix estaría bien.

-1

dame MySQL Apache (postgres bien en un apuro) php y Eclipse .. que se preocupa por el sistema operativo ..

Cuestiones relacionadas