I’ve been thinking about getting an Intel Mac to replace the old Linux box that serves this site. However, a lot of software hasn’t been ported yet, and Rosetta emulation is slow. How much server relevant software is yet native?
For this site there are five packages that matter enough to keep me from migrating:
- Java (for Tomcat and other programs)
- Ruby (for Rails)
There are other programs that might matter to other people, but those five should cover everything I’m doing in the next few months. It helps that a lot of my software is interpreted and sits on top of Java, PHP, or Ruby. Of the stuff that isn’t, it’s all open source and written in C. Since Apple ships a native C compiler based on gcc, it should be possible to compile all this from source. However, sometimes that doesn’t quite work out. C is not Java, and is not always portable across operating systems and CPU architectures. For instance, a while ago I spent a few hours debugging a problem that turned out to be an incompatibility between the Rails MySQL connector and the 64-bit Mac OS X version of MySQL. In fact, it’s amazing most of this stuff is as portable as it is.
Let’s count down the list.
This should be an easy one. Apple ships the Apache 1.3 web server as a standard part of Mac OS X Tiger. But I prefer Apache 2 or even 2.2. What’s up with that?
The Apache Project only sporadically offers binaries for various platforms. Their Mac OS X binaries are about two years out of date. Presumably one can compile it from source, but I’m not sure. Anyone doing this yet?
This is an easy one. Apple ships an X86 native Java virtual machine with every X86 Mac. This should only improve with time.
This is another easy one. Like Java, Ruby is now bundled with Mac OS X. Presumably this is a universal binary that Apple has ported to X86. However, Ruby has caused me more problems in the past on Mac OS X than the other components put together, so I want to see this actually running before I believe it.
This may well be the most performance critical of the components so a good native port is a necessity. Apple bundles this on their servers but not their client systems. However, on MySQL AB’s download page I am immediately pointed to a binary version for “Mac OS X 10.4 (x86)”. Excellent!
phpmac is the canonical site for Mac OS native PHP. However as I write this, it’s just showing “Error: Sorry, An error occured when talking with the MySQL server.” That’s not promising. What about the central PHP site? It points me to Marc Lyanage’s site but he only has older versions of PHP (the most recent is 5.1.2). Looks like this is another one you need to compile from source and hope.
Presumably Apple will make sure this all works together once they start shipping X86 based servers. However for the time being this feels dangerously close to the bleeding edge, but maybe not quite over the edge.