2009-02-27 10 views
6

Estaba contemplando cambiar a Linux para el desarrollo de C++, proveniente de un entorno de Windows. ¿Es una mala idea? Mi lugar de trabajo usa Windows y Visual Studio para nuestros proyectos (algunos C# y java también, pero ahora mismo solo estoy desarrollando en C++). Si deciden ponerme en un proyecto de C#, ¿el desarrollo sería posible (mono?)? ¿Cuáles son las dificultades en este tipo de transición?Cambiar a Linux para el desarrollo de Windows, ¿mala idea?

¿Tendría problemas para trabajar en sus proyectos y viceversa? Leí en alguna parte que habría problemas con los encabezados precompilados y tales (los usamos), y codificaciones (pestañas/espacios, terminaciones de línea, etc.)

Si no es demasiado difícil hacer este cambio, ¿cómo? empiezo? IDE? vim + hacer?

Gracias.

Por cierto, hacemos MOSTLY software ventanas ..


EDIT: Gracias chicos, supongo que tiene sentido ..

Respuesta

25

Eso es una mala idea. Puedo ver al menos dos razones:

  • se desarrollan en el mismo sistema operativo que escribe software para
  • rocas Visual Studio
+0

Si bien definitivamente extrañaría la cadena de herramientas de GNU y el extraordinario poder de los editores * nix, no tiene sentido no usar VS en Windows. –

+0

De acuerdo. Totalmente. – Klaim

+0

Es cierto para los VS, ya que se desarrollan en el mismo sistema operativo ... Sí, y desarrollan cosas para S60 o WM en el teléfono celular? – vartec

8

palillo con Windows si está desarrollando para C++ y C#. El depurador de Visual Studio es absolutamente brillante, y parece que la mayoría de los IDE de Linux no son comparables (excepto Eclipse para Java). Además, lo más probable es que use un compilador diferente si está en Linux, y eso puede causar realmente errores extraños.

+0

Gracias por el asesoramiento .. – krebstar

+0

Solo quiero señalar que la depuración en VS, o cualquier otra cosa para el caso, no tiene nada en DDD. Simplemente no hay comparación para la depuración. Es cierto que usa un juego de herramientas anticuado (Motif), y no tiene un puerto de victoria "verdadero" (usa Cygwin y un servidor X). – supercheetah

2

No es una muy buena idea porque el soporte para Windows Forms en mono aún no está completo. Los desarrolladores de Linux C# generalmente usan GtkSharp para GUI, lo que agregará otra dependencia a su aplicación y es bastante diferente de Windows Forms. Pero GtkSharp tampoco está mal. Me gusta especialmente la función de cajas de embalaje de GTK porque hace que mis controles (err, widgets) sean mucho más fáciles de redimensionar correctamente y elimina automáticamente todos los problemas de DPI en la pantalla.

Pero también existe la posibilidad de que su código existente tenga otras dependencias que no están presentes en Linux, especialmente el código no administrado llamado con P/Invoke. Si ese es el caso, hacer el desarrollo en Linux podría ser imposible.

+0

Mkay ... Gracias ... No soy realmente un desarrollador de C#, solo estoy pensando en el futuro en caso de que me arrojen algo ... :) – krebstar

1

he cambiado a hacer el desarrollo web en Linux, aquí es lo que he encontrado personalmente

Con el fin de hacer las cosas bien que no causa problemas en el final (utilizando software en particular) que tiene que tener una máquina virtual. El vino no es lo suficientemente avanzada para ser estable para el software que necesito

También para mis necesidades particulares, simplemente toda la "fuente del sistema" ser diferente ha causado numerosos problemas de secuencias de comandos b/w Windows y UNIX/Linux

Voy a volver a ganar. ME ENCANTA LINUX, pero en un campo especializado donde la mayoría de mis clientes usan Windows e IE ... Necesito correr con lo que tienen ... Creo que este es el más inteligente para la productividad

(opinión personal, no obliga de Dios)

tim

+0

Gracias ... Hacemos aplicaciones nativas .. – krebstar

1

Sugiero que se pega a las ventanas. Windows es ideal para el desarrollo de Windows. Linux es donde puedes escribir material multiplataforma/cosas específicas de Linux (si lo deseas). Intenté con Mono para aprender C#, funcionó para ejemplos de juguetes, pero no para algunas partes de .NET. Cambié a las ventanas. No me puedo imaginar que sea una buena idea cambiar a Linux. No tengo intención de ofender, esta es solo mi opinión.

+0

Sin ofender :) Simplemente quería un consejo de personas que lo han probado antes :) Gracias – krebstar

4

Soy un usuario de Mac (antiguo chico de FreeBSD), así que entiendo tu instinto. En resumen: vas a querer usar Visual Studio. Es la mejor herramienta que hay para tus proyectos C#, punto. También es la mejor herramienta para su programación C++ centrada en Windows. Incluso si no fuera así, tus pruebas van a sufrir si no ejecutas el sistema operativo en el que se ejecutará.

Por el lado positivo, siempre haga su desarrollo en una máquina virtual. Especialmente en Windows. Utilice el control de fuente y tome instantáneas frecuentes de su máquina virtual. Cuando haces esto, no importa si ejecutas Linux o OS X en tu host.

Saludos

Nik

+1

Hola, ¿puedes aclarar? ¿Qué tipo de VM debería usar?Utilizo control de fuente para mí, porque el equipo no. – krebstar

+0

Cuando estás desarrollando no creo que importe. Utilizo Paralells en casa, VMWare en el trabajo, pero también podría usar Sun's VirtualBox. No he probado otros, pero para el desarrollo estoy seguro de que todo está bien. No vas a necesitar habilidades de juego en 3D :-) –

2

actualmente se desarrollan en ambos Windows y Linux. Me parece muy útil compilar el mismo código en esas dos (o tal vez más) plataforma, ya que puedes encontrar algunos errores de codificación gracias a vC++ y alguna otra gracias a gcc. Por supuesto, la plataforma más importante es para la que está desarrollando. Si su aplicación se ejecutará en Windows, desarrollela en la misma plataforma y solo si puede asignar más recursos, intente portarla en Linux u otro. De todos modos, es un buen hábito pensar en la portabilidad durante el desarrollo, implica usar las soluciones estándar tanto como sea posible

1

Si le falta mucho Linux, y necesita permanecer en una caja de Windows para interactuar con su equipo Y su aplicación de trabajo: instale Cygwin y GNU Win32 tools.

+0

Ya tengo algunas herramientas de GNUwin32, encontré que cygwin es ... peculiar, pero no lo he usado demasiado de todos modos, así que mi opinión no cuenta :) I pero como Linux, trato de usarlo tanto como puedo en mi EEE ... :) – krebstar

0

Si se vendió absolutamente en Linux, VMWare es muy bueno para ejecutar una máquina virtual y si compila sus programas Linux/multiplataforma utilizando la cadena de herramientas mingw, agregando una única dependencia, que puede ser estáticamente, no debería t recibe cualquier error de Windows

Cuestiones relacionadas