So I've been using an iMac as my main work desktop for about a year, and I have some opinions.

Background: for many years, I've used a MacBook for my laptop/portable needs, and Linux desktops for my main workstations. I work in web development, and our production servers are all LAMP machines, so this works well as a way to develop and test in an environment that is close to the final production systems.

The MacBook is not bad as a portable web dev machine, and for simple jobs the DAMP setup has been close enough to LAMP to still be practical for when I cannot connect to our testing systems. So when a 27" retina iMac became available in the office right around the time when my old Linux desktop was starting to fail, I decided to try it out as a primary development platform.

After a year, my assessment is: it's actually not that great. Kinda meh, really.

That big, beautiful retina screen is nice, but I'm not a designer or media person, so it's mostly just cosmetic. It actually gets kind of annoying when sharing screen grabs across machines, because the double-res iMac screencaps either come out as monstrously large bitmaps if the DPI settings are ignored, unnecessarily fat files if the DPI settings are honoured, or just a massive hassle if you try to downscale the resolution and also fix the DPI settings so that the screencap doesn't whither away into an illegible thumbnail when you get it to the pixel size you want.

The other accessories are just... not good. The magic mouse died. I'm actually using a cheap Dell USB mouse now, and am satisfied with it. The wireless Apple keyboard is actually a piece of crap. The ergonomics are horrible, and I'm always missing keys or mistyping because it's hard to feel where you are without looking at it. I'll be replacing that as soon as I can find a decent USB keyboard. Won't miss having to charge the keyboard at all. The charging cable is constantly plugged into the iMac, so that sleek wireless look is a bit of a pipe dream in any case.

I immediately killed OS X notifications, which were almost infuriating in their intrusiveness. The instant a text message on my phone appeared onscreen on the iMac, I just about lost it. It was like spotting a cockroach in your kitchen—I immediately dropped everything I was doing and went into kill mode.

Turns out there's no easy way to actually to kill notifications, except to set up Do Not Disturb to run for 23h 59m of every day. The notification centre sidebar panel is still there, perfectly useless, and occasionally flying out and grabbing focus when I don't want it to. Haven't invested the effort to nuke that thing into oblivion yet.

Spaces, which I love and find indispensable on my MacBook, is a bit weird on the giant screen. Every now and then, I maximize a terminal window to see more columns in a SQL query, and then switch spaces to do something, then switch back, and the terminal is gone. It just sort of vanishes into a parallel universe. If you go to Mission Control and rummage through your spaces, you'll find it there as a sort of ephemeral meta-space, but that's a pretty annoying behaviour for an application that you just maximized because you need it to be the centre of your attention. It's often more useful to just grab the bottom corner of the window and stretch it, rather than use the maximize function. I honestly prefer the old zoom function of the green button over this maximize crap. A pox on the Windows users who bitched about zoom for years. You got what you wanted, now it sucks, just the way you like it.

I don't experience this problem on my MacBook, which is odd, because you'd think maximizing windows would be more necessary on the smaller screen. But it's the opposite; maximizing has a much smaller effect on a little screen, so it's not that useful. 

As far as actual development goes, I discovered that Apple's version of Perl is defective, and apparently intentionally so. To be specific, they removed GDBM support, which is part of core Perl, which means there's no Perl or CPAN module you can install to add it back. The only way to recover it is to re-install Perl from scratch. But that's basically overriding a core component of OS X, and who the heck knows what that would break? Apple must have a good reason to fork Perl, right? Right??? Who the hell knows...

So the only safe option was to install a 3rd party Perl in a non-system directory. I settled on ActivePerl, which had an easy-to-use installer, and put it into /usr/local/bin/perl. But since that is different than the default /usr/bin, all the #! lines are off in my code, which is a pain in the ass, since I have to edit them locally so they work in my testing environment, but remember to change them back before committing my changes to the code repository.

After all that, GDBM was still flaky and unreliable, so there may be a more fundamental problem with it on OS X. I tried out a few other DBM engines, which each had their own limitations. Finally I just wrote my own from scratch, which is not how I wanted to spend my time setting up OS X, but there you go.

In the course of installing necessary utilities, I learned that Apple doesn't allow you change system directories, and they really don't make it easy for you do override that. You have reboot into recovery mode to execute the necessary command ("csrutil disable").

Once I could actually install things where they belonged, brew seemed to do a pretty good job of finding packages I'm accustomed to working with on Linux and sorting out installations and dependencies.

So now it's a functional, albeit somewhat mediocre, web development workstation. So, what are the upsides compared to a Linux workstation?

  • it's much nicer when dealing with multilingual character sets
  • GotoMeeting works much better
  • it's easier to deal with complex document formats like PDFs, spreadsheets, and presentations

On that last point, you might think it was better for working with Microsoft files such as .docx or .xslx files, since this machine does have Office installed. But every time I accidentally launch Office I cringe, and have to wait half a minute before it can even be killed. Then, carefully right-click and Open using... and choose Pages or Numbers or something that will actually handle the file efficiently (and which is much nicer than LibreOffice).

This machine also has the Adobe Creative suite installed, but again, I avoid it as much as possible. Preview is just so much smoother for reading PDFs. I even use GIMP over PhotoShop, even though I find GIMP quite annoying to use. But it's the devil you know, and Adobe's bloat and my low bar for image manipulation technical requirements doesn't make we want to get to know a whole other devil.

What all this adds up to is that OS X was pretty close to feature-complete for me some time back around 10.6. A disturbing amount of my work when doing an OS upgrade is disabling, removing, and silencing the features that have been added since then. More than once, I've wished for an app that does all this for me: turn my Mac into a Unix workstation. I guess that officially puts me in curmudgeon territory. Old man shouts at iCloud?