As a developer (primarily JVM-based web apps), I need to use a lot of different tools and services, such as Redis, RabbitMQ, MySQL, git, mercurial, etc. Having worked in a Linux environment where such tools are just an
apt-get away, and a Windows world where I just run what I need in a VMWare Workstation VM (aka. also just an
apt-get away + vm overhead), I'm a bit lost now that I'm hoping to move away from Windows and into the Mac ecosystem for my computing life.
I've read about MacPorts vs. Fink vs. Homebrew and found it all to be a bit confusing as to which one will suit my needs the best, though I think MacPorts is the most flexible option of the three.
Since I'm used to running what I need in a VM, however, is there anything against doing that when using OS X? What are the tradeoffs between going with MacPorts to install things directly vs. using an Ubuntu VM (via VMWare Fusion) to host the tools / services I need?
In particular, I am concerned with the disk usage, maintainability, and ease of use more than I am concerned with performance. In other words, this is what I care about (in order of preference):
- Ease of use - How easy is it to develop on the Mac and use the tools / services
- Disk usage - How much disk-space is taken up. The newer macbooks use SSDs and space is at a premium.
- Maintainability - What work is involved in keeping packages updated, adding new packages, and removing old ones
- Currentness - How up-to-date are the tools / services that are available
- Performance - How fast things run, services in particular
My instinct says that installing the actual development tools, like Mercurial, git, etc. directly via the projects' recommended method, and then installing the server-side components like MySQL, Redis, RabbitMQ, etc. into a VM is the best route, but what are the pros-cons of doing this vs. going with something like MacPorts?
Note: I realize that this is a rather programming-centric question, but the central issue is that OS X is different from Windows and *nix when it comes to setting up a development environment and I'm not sure how to navigate in these OS X-specific waters.