2008-10-18 14 views
29

¿Quién usa Mac para el desarrollo multiplataforma?¿Usa una Mac para el desarrollo multiplataforma?

Por plataforma cruzada quiero decir esencialmente que puede compilar para apuntar a Windows o Unix (no necesariamente ambos al mismo tiempo). Entiendo que esto también tiene mucho que ver con la escritura de código portátil, pero estoy más interesado en la experiencia de las personas con Mac OS X para desarrollar software.

Entiendo que hay una variedad de IDEs para elegir, probablemente usaría Eclipse (me gusta la cadena de herramientas GCC), sin embargo, Xcode parece ser bastante popular. ¿Podría ser utilizado como se describe arriba? En un momento dado, siempre pude virtualizar con VirtualBox o VMware Player o paralelos para usar Visual Studio (o arranque dual para el caso). Una vez dicho esto, estoy abierto a cualquier otro compilador sugerido (preferiblemente un IDE que use GCC).

También con el rango de Macs disponibles, ¿cuál recomendaría? Preferiría una computadora portátil (ya que tengo una computadora de escritorio) pero no estoy seguro de las especificaciones razonables.

Si actualmente está usando una Mac para desarrollar, me gustaría escuchar lo que desarrolla en su Mac y lo que le gusta y lo que no le gusta de él.

Me gustaría desarrollar principalmente en C/C++/Java. También estoy buscando experimentar con Boost y Qt, por lo que estoy interesado en conocer los problemas de compatibilidad (potenciales).

Si tiene algún otro consejo, me gustaría que oyera lo que tiene que decir.

+0

Si hoy hiciera una pregunta como esta en StackOverflow probablemente me prohiban. Aquí está para los buenos días. –

Respuesta

10

Bueno, usar una Mac es solo (con un descuento de OSX86) el único método para probar en Mac + Windows + Linux todo en el mismo hardware. Dicho esto, no iría por esa ruta si esa fuera tu única razón. Si te sientes más cómodo programando en un entorno Windows, te diría que hagas tu trabajo en Windows, y que tengas una Mac Mini en el lateral, posiblemente incluso una que utilices para comprar solo para probar tu software.

+5

Demonios, hágalo en Windows * en Mac * y ahorre dinero al tener varias máquinas. – eyelidlessness

+1

Excepto que los requisitos de una máquina que podría ejecutar Windows y Mac lo suficientemente bien como para el desarrollo sería mucho más caro que simplemente comprar un mac mini y una máquina de Windows. – Kibbee

+5

Pero es seguro tener todo lo que necesita en una pieza de hardware. Una MacBook Pro es una gran máquina de desarrollo multiplataforma que puede usar en cualquier lugar. –

1

Depende de lo que quiere desarrollar. Si se trata de aplicaciones de GUI, es posible que desee desarrollar y probar en la plataforma de destino. Para el desarrollo relacionado con Java (especialmente empresarial) es genial trabajar en un Mac, especialmente desde que Apple lanzó jdk1.6 no hace mucho tiempo. Eclipse y Netbeans son los IDEs que uso en Mac y Linux.

0

He usado Qt a lo largo de los años para hacer el desarrollo multiplataforma (y simplemente porque me gusta). Te animo a que look at it. El modelo de evento (SIGNAL/SLOT) es diferente, pero no está nada mal una vez que empiezas a usarlo.

1

Uso mis Mac para programación multiplataforma. Sin embargo, mis proyectos son bastante pequeños y rara vez contienen GUI.

He configurado máquinas virtuales para hacer la compilación. En cuanto a los IDEs, mi experiencia muestra que a menudo se requiere tener archivos de proyecto "nativos" para compartir con otros desarrolladores. Por lo tanto, desarrollo principalmente en XCode y al final creo un proyecto en Visual Studio y un Makefile para Linux. Sin embargo, si es posible, configuro todos los proyectos para que compartan los archivos fuente.

Los proyectos de Eclipse son bastante compatibles para Linux y OSX, pero no para Windows.

Como ya se han propuesto otros, recomendaría usar el IDE y el sistema operativo con los que se siente más cómodo y luego llevarlo a las otras plataformas.

Dependiendo del tamaño de sus proyectos, recomendaría un iMac o MacBook Pro para el desarrollo multiplataforma. Además, las máquinas virtuales pueden ser bastante exigentes, así que asegúrese de obtener suficiente memoria RAM.

8

Eclipse se ejecuta en Mac y es compatible. Por ejemplo, es el entorno recomendado para desarrollar para Android en Mac (y todas las demás plataformas).

XCode está destinado al desarrollo nativo de OS X, es posible que pueda convertirlo en una compilación cruzada para Windows, pero estaría yendo en contra del grano.

Hago un pequeño avance en XCode, pero sobre todo soy un desarrollador de .NET, para lo cual uso VMWare en mi Mac. Puede sonar un poco al revés, pero un cuadro de Windows XP que se ejecuta en VMWare en el iMac vuela absolutamente (tengo 4 GB de RAM) y puedo crear y modificar máquinas virtuales para probarlas (por ejemplo: Vista, configuraciones extrañas de Windows XP) muy rápido . Además de todo eso, usar una Mac día a día se siente como la felicidad en comparación con Windows (nunca había usado una Mac hasta hace unos 15 meses, nunca volveré a un escritorio permanente de Windows).

3

Sin duda echaré un vistazo a Mono. Tiene enlaces multiplataforma para Qt y GTK. También tiene acceso a MonoDevelop, que está mejorando a pasos agigantados.

Si eso no le interesa, una cosa que mencionaré es que VMWare y Eclipse funcionan bien juntos. VMWare Workstation Professional incluye un plugin de Eclipse para permitir la depuración remota y realizar pruebas de implementación de varios sistemas con un par de clics. Sin duda, le recomendaría que obtenga la versión de prueba gratuita y vea si eso funciona para usted.

Y una Mac es una gran plataforma para comenzar. La mayoría de las cosas que no están portadas desde Linux para ejecutarse de forma nativa funcionan bien sobre X11.

4

Simplemente para responder a la pregunta de recomendación: El nuevo Macbook (modelo de gama baja) debería ser una excelente máquina de desarrollo, si es que necesita un portátil. Y anecdóticamente, solía tener una Mac mini, simplemente porque era lo que podía pagar, y fue excelente para la mayoría de los propósitos. Incluso lo llevé entre el hogar y la oficina (tenía otro monitor/teclado/mouse en la oficina, pero lo hago incluso ahora que tengo un MBP) y fue increíble. Ni siquiera noté que estaba en mi mochila.

Editar: y no hay nada que le impida arrancar doble o triple su Mac, y hacer todo su desarrollo en Windows/* nix/OS X en la Mac.

2

Si está buscando un sistema de compilación único, una Mac es probablemente su mejor opción, ya que puede compilar de forma cruzada a Windows y Linux utilizando GCC.

  • crossgcc.rts-software.org tiene gcc toolchains apuntando a Windows y Linux i386.
  • A HOWTO explorando la configuración de MinGW a través de MacPorts.

Hay compiladores que se enfocan en Darwin/OSX desde Linux, pero no obtendrá ninguna de las librerías Cocoa o Foundation con ese enfoque. Al menos con MinGW, tiene acceso a una gran parte del SDK de la plataforma de Windows.

+0

+1. No he probado MingGW desde Mac, pero funciona muy bien desde Linux. He podido hacer programas C/Gtk + con este enfoque. El único programa específico de Win32 era el empaquetador (que utilicé vino para ejecutar). – eduffy

0

Here encontrará un interesante post acerca LinkedIn siendo desarrollado 100% en mac ...

4

he cambiado a un Mac como mi máquina de desarrollo principal hace un año y nunca miró hacia atrás.

Lo único que me gusta mencionar es que usted escribe software a menudo mejor si se desarrolla en más de una plataforma. De vez en cuando descubrí que algunas piezas de código funcionan en una plataforma específica y fallan en otra. En general, esto se debió a algunos errores míos en lugar de errores de software.

Por lo tanto, en mi libro, el desarrollo de plataformas cruzadas impone una mayor corrección.

2

Otra opción es Cocotron. Se ejecuta en Mac OS X e incluye compiladores cruzados que se dirigen a Windows, Linux y Solaris, un entorno de tiempo de ejecución de Objective-C y un marco portátil de Foundation que funciona con los tres, y un marco de trabajo de AppKit para Windows.

0

Uso una MacBook para el desarrollo multiplataforma, pero no realizo la compilación cruzada para otros objetivos. Simplemente no vale la pena dado lo barato que es ejecutar múltiples plataformas en estos días. Puede usar un producto de virtualización como VMware o simplemente tener un cuadro secundario para arranque múltiple para Windows y Linux. Usted absolutamente debe tener una versión completamente automatizada en cada plataforma. Joel is always right.;)

La alienación de los clientes con una IU extranjera es un gran riesgo, por lo que recomiendo construir un backend común y interfaces de plataformas específicas. No tengo ninguna experiencia con Qt, pero he usado Tk para aplicaciones C++ multiplataforma. No habría funcionado, excepto que tenía una audiencia corporativa cautiva feliz de tener el software en múltiples plataformas a bajo costo.

0

He escrito un pequeño editor UML multiplataforma en C++, para mi tesis de grado de maestría, y he escrito la mayor parte del código en mi Mac en Xcode:

http://remproject.org/

Para la gestión compilaciones en Windows y Linux Usé CMake, que generó los proyectos Xcode, Visual Studio y Makefile en cada plataforma.

http://cmake.org/

También he utilizado dos bibliotecas en ella, Juce y POCO, el primero por la interfaz gráfica de usuario, este último para una funcionalidad específica. Todo vinculado estáticamente en cada plataforma.

En mi opinión se puede escribir código de plataforma cruzada de muchas maneras, este es uno de ellos y estoy feliz con él, que podía hacer esto con bastante rapidez, y tengo mi título :)

5

I hacer todo mi desarrollo multiplataforma en una MacBook Pro, principalmente usando REALbasic. Para probar en Windows y Linux, uso VMware Fusion que funciona bien con el depurador remoto incluido con REALbasic.

Solía ​​tener Boot Camp configurado con Windows cuando estaba haciendo desarrollo relacionado con .NET.VMware y Parallels son bastante rápidos, pero no son compatibles con el arranque nativo del sistema operativo. No he tenido la oportunidad de probar extensivamente MonoDevelop en Mac OS X, pero aparte de carecer de un diseñador de GUI, parece que podría funcionar bien y probablemente lo investigaré para cualquier proyecto .NET futuro que pueda hacer.

Prefiero tener solo una computadora que pueda ejecutar todos los sistemas operativos porque tiene menos espacio en mi escritorio, menos hardware para actualizar y administrar y mucho más fácil llevar todos los sistemas operativos conmigo.

Cualquier Mac en la actualidad puede manejar Windows y Linux lo suficientemente bien. Lo más importante que necesitas es mucha RAM. Los Mac hoy en día pueden manejar al menos 8 GB y lo recomendaría como punto de partida (tengo 6 GB).

Cuestiones relacionadas