language agnostic - ¿Usa una Mac para el desarrollo multiplataforma?
language-agnostic osx (15)
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.
¿Quién usa 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 de GCC ); sin embargo, Xcode parece ser bastante popular. ¿Podría ser utilizado como se describe arriba? En un momento dado, siempre podría virtualizar con VirtualBox o VMware Player o con los 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 la gama de Macs disponible, ¿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 hacer desarrollo, me encantaría escuchar lo que desarrolla en su Mac y lo que le gusta y lo que no le gusta de él.
Principalmente me desarrollaría en C / C ++ / Java. También estoy buscando experimentar con Boost y Qt , por lo que estoy interesado en conocer los posibles problemas de compatibilidad.
Si tiene otros consejos, me encantaría que escuche lo que tiene que decir.
Ciertamente le daría 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.
Depende de lo que quieras 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.
Eclipse se ejecuta en Mac y está bien soportado. 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 compilarlo para una compilación cruzada para Windows, pero estaría yendo a contracorriente.
Hago un pequeño desarrollo en XCode, pero sobre todo soy un desarrollador de .NET, para lo cual uso VMWare en mi Mac. Puede parecer 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 probar (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).
Simplemente para responder a la pregunta de recomendación: la nueva Macbook (modelo de gama baja) debería ser una excelente máquina de desarrollo, si es que necesita una 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 te impida iniciar tu Mac de doble o triple y hacer todo tu desarrollo en Windows / * nix / OS X en la Mac.
Uso mis Mac para la 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 otros ya propusieron, recomendaría usar el IDE y el sistema operativo con los que se siente más cómodo y luego transferirlo 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.
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 cadenas de herramientas gcc dirigidas a Windows y Linux i386.
- Un CÓMO para explorar la configuración de MinGW a través de MacPorts.
Hay compiladores que se enfocan en Darwin / OSX desde Linux, pero no obtendrás 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.
Aquí encontrarás una publicación interesante sobre LinkedIn desarrollada al 100% en mac ...
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.
Entonces, en mi libro, el desarrollo de plataformas cruzadas impone una mayor corrección.
Otra opción es Cocotron . Se ejecuta en Mac OS X e incluye compiladores cruzados que se dirigen a Windows, Linux y Solaris, un motor 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.
Utilizo una MacBook para el desarrollo multiplataforma, pero no realizo una 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 siempre tiene la razón. ;)
Alentar a 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.
He escrito un pequeño editor de UML multiplataforma en C ++, para obtener mi título de tesis de maestría, y he escrito la mayor parte del código en mi Mac en Xcode:
Para administrar compilaciones en Windows y Linux utilicé CMake, que generó los proyectos Xcode, Visual Studio y Makefile en cada plataforma.
También utilicé dos bibliotecas, Juce y POCO, la primera para la GUI y la última para la funcionalidad específica. Todo vinculado estáticamente en cada plataforma.
En mi opinión, puedes escribir código multiplataforma de muchas maneras, esta es una de ellas y estoy contento con ella, pude hacerlo bastante rápido y obtuve mi título :)
Hago todo mi desarrollo multiplataforma en una MacBook Pro, principalmente usando REALbasic . Para probar en Windows y Linux, utilizo 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 pueden competir con el sistema operativo nativo. No he tenido la oportunidad de probar extensamente MonoDevelop en Mac OS X, pero aparte de carecer de un diseñador de GUI, parece que podría funcionar bien y probablemente lo investigue en futuros proyectos de .NET 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 estos días 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).
Utilizo un viejo Mac Mini en casa para el desarrollo de Windows dentro de una máquina virtual. He tenido una muy buena experiencia con eso. Si voy a pantalla completa, se siente como un escritorio: el rendimiento es sorprendentemente bueno.
Puede encontrar estas publicaciones interesantes:
Hardware mínimo para un desarrollo efectivo de mac