Como desarrollador (principalmente de aplicaciones web basadas en JVM), necesito utilizar muchas herramientas y servicios diferentes, como Redis, RabbitMQ, MySQL, git, mercurial, etc. Habiendo trabajado en un entorno Linux donde estas herramientas son sólo un apt-get
y un mundo Windows en el que sólo ejecuto lo que necesito en una VMWare Workstation VM (aka. también sólo un apt-get
lejos + vm overhead), estoy un poco perdido ahora que espero alejarme de Windows y entrar en el ecosistema Mac para mi vida informática.
He leído sobre MacPorts vs. Fink vs. Homebrew y me parece que todo es un poco confuso en cuanto a cuál se adaptará mejor a mis necesidades, aunque creo que MacPorts es la opción más flexible de las tres.
Sin embargo, como estoy acostumbrado a ejecutar lo que necesito en una VM, ¿hay algo en contra de hacer eso cuando se usa OS X? ¿Cuáles son las ventajas de ir con MacPorts para instalar cosas directamente frente a usar una VM de Ubuntu (a través de VMWare Fusion) para alojar las herramientas / servicios que necesito?
En particular, me preocupa el uso del disco, la capacidad de mantenimiento y la facilidad de uso más que el rendimiento. En otras palabras, esto es lo que me importa (por orden de preferencia):
- Facilidad de uso - ¿Cómo de fácil es desarrollar en el Mac y utilizar las herramientas/servicios
- Uso del disco - Cuánto espacio de disco se ocupa. Los nuevos macbooks utilizan discos SSD y el espacio es escaso.
- Mantenibilidad - Qué trabajo supone mantener los paquetes actualizados, añadir nuevos paquetes y eliminar los antiguos
- Actualidad - ¿Cómo de actualizadas están las herramientas/servicios disponibles?
- Rendimiento - La velocidad de las cosas, los servicios en particular
Mi instinto me dice que instalar las herramientas de desarrollo reales, como Mercurial, git, etc. directamente a través del método recomendado por los proyectos, y luego instalar los componentes del lado del servidor como MySQL, Redis, RabbitMQ, etc. en una VM es la mejor ruta, pero ¿cuáles son los pros-cons de hacer esto frente a ir con algo como MacPorts?
Nota: Me doy cuenta de que esta es una pregunta bastante centrada en la programación, pero la cuestión central es que OS X es diferente de Windows y *nix cuando se trata de configurar un entorno de desarrollo y no estoy seguro de cómo navegar en estas aguas específicas de OS X.