Tuesday, May 19, 2009

The Nail in the Coffin

My experimentation with Solaris/OpenSolaris is over. Amid the uncertainty that the Oracle purchase of Sun Microsystems has introduced I got some advice at PGCon2009 today that put the nail in the coffin. I asked someone, what OS was the best for running PostgreSQL? His response was, "The OS you are most familiar with". That OS is GNU/Linux.

In recent years Sun has tried really hard to change the image of Solaris from old Unix to Linux killer (specifically RedHat Linux) to Linux like. To drive the point home, the newer releases of OpenSolaris use bash as its default shell. But it's not enough. The biggest problem Sun had with shaking it's legacy image is that it's still legacy. For example, there are about 5 different flavors of the ps command in a default Solaris install. Sun was fanatic about maintaining backwards compatibility. The problem with that kind of religious fervor is that all the mistakes of the past become a permanent part of the system and haunts it in the present. So if you are a newcomer to Solaris and there is no one there to hold your hand, it is difficult to figure out what is the best way to accomplish a task or the best flavor of a particular tool to use. In essence Solaris newcomers are acutely susceptible to The Paradox of Choice.

So for all the great technology that is in Solaris, the investment in trying to learn it just isn't worth the return right now because I can do everything I need to do in Linux in a fraction of the time and with less frustration (i.e., Solaris still doesn't have a decent package manager). And in all the cases that are important to me, Linux and it's applications run faster than the Solaris equivalent.

But although the nail is in the coffin I'm not going to say goodbye. Who knows, one day I may have to call upon the Cruel Tutelage of Pai Mei and once again embrace the way of the Sun (err ... Oracle).

2 comments:

bnitz said...

What if the OS you are most familiar with was DOS or CP/M? This mantra could cause more 'legacy' issues than Solaris' policy of maintaining backwards compatibility by placing gnu and other incompatible copies of standard unix commands in a separate directory where the user only needs to organize their shell's $PATH to express their own preference for gnu or legacy.

I wish there were more details about the reasons for your choice. I would also like to know which applications are measurably faster on Linux? There may be a few exceptions where Solaris does the correct, or scalable or reliable thing, but the general rule is if Linux is faster, log a high priority bug, because Solaris does have much better tools for tracking down performance issues. (e.g. dtrace)

I did a search for ps on my OpenSolaris development laptop. There were 5 for OpenSolaris, 4 on my Centos/RedHat Linux Zone. Most of the varients on the Solaris end were 32/64 bit versions, one was a directory. One ps on the Linux zone was a gimp 1.2 plug-in!

I sorry to hear you're taking a vacation from the OpenSolaris community for a while but I'm looking forward to seeing you back someday.

I found that Linux caused more legacy issues because nothing maintains any binary compatibility. So, when a hardware upgrade forces you to install a new driver to support Dell's latest chipset and you find that the only drivers for this rely on ABIs only available in a newer kernel and then you realize that this requires you to rebuild the rest of the stack from libc on up through your desktop libraries and proprietary applications, you might be back!

Anonymous said...

I develop on Solaris. Everytime I have to use Linux, I'm glad I get to use Solaris. The IO is better, ZFS is better, the system is more stable (my system is up 218 days at the moment).