When MacOS X came out, combining things I like about the Mac with Unix, I was tempted. But I waited. I figured I'd give them time to iron out the bugs, time for the hardware to catch up to the new rendering technology, etc.
Now that Macs are running Intel chips, I figured I had waited long enough, and I bought one of the new iMacs. It's a really nice machine, and except for some glitchy rendering here and there (tooltips that remain on the screen, for example), it's a solid OS.
However, getting a dev environment that's as productive as Linux has been a real chore. Here are some of the things I've been dealing with:
Terminals
You don't expect to spend a lot of time fussing with terminals these days. They should just work, right? Well, I first tried the terminal app that comes with the OS. It had broken key mappings for page up/down, which I fixed. It also makes only a really half-hearted attempt to do X11-style mouse paste, which is really irritating since I'm so accustomed to it.
I tried an alternative, called iTerm. It has better mouse paste support, but it has broken arrow key mappings. When was the last time you had to fix your arrow keys on Linux? It's like 1997 all over again.
Both of these seem to confuse my screen session about their terminal capabilities. iTerm does better at showing color (e.g. in man page headings) but both of them cause screen to do its horrific visual bell ("Wuff wuff!") until I manually tell it to use a normal bell.
Text Editors
Everyone seems to love TextMate. I do plan to try it, but it's very unlikely that I'm going to pay $80 for a closed source text editor in this day and age. If you're one of those people who loves TextMate and thinks it's worth the money, I'd be interested to hear your reasons.
I have tried TextWrangler, and found it pretty decent in some ways. I got perltidy wired up to it without trouble, and the SFTP browser is pretty lame, but works. I also like the Emacs key support. However, it has no code folding, and the syntax coloring is pretty weak compared to most Linux editors, like Kate, vim, and Emacs.
I tried Eclipse + EPIC, which is actually better than I expected. Syntax coloring is nice, and it feels pretty responsive. On the downside, I can't figure out how to make a filter for perltidy to work on just a selected region rather than a whole file. I also can't figure out how to get .html files with Mason code in them to switch into Perl mode. And then there's all the project-oriented Java cruft in the menus.
I tried a promising-looking Emacs port called Aquamacs. It's Emacs with keys remapped to normal Mac bindings, and easy-to-use font menus, separate windows for each buffer, etc. It looked pretty nice, but none of the elisp extensions I want to use (tramp, mmm-mode) seem to work with it. I admit to being a novice at this stuff, but I gave it a pretty good try and couldn't make them work.
The Carbon Emacs package from Apple worked great with elisp packages. In fact, it's really nice all-around: good syntax coloring from cperl and mmm-mode, tramp for SSH access, easy perltidy integration. The only real issue I've had with it is how poorly it plays with the rest of the Mac. Copying and pasting something from the terminal or Firefox into it seems to require some tricky incantations. I haven't been able to do it without resorting to clicking on menus. I suspect there's three or more different copy/paste systems happening at once here and they are not playing well together. It also took me a crazy amount of effort to change my font size, which is very non-Mac but somewhat expected from Emacs.
Overall I do like my Mac, but it's disturbing how reminiscent of the early days of Linux this has been. I may resort to running X11 with an xterm and maybe Kate if I can figure out how to get it running. I figure if I have to I can always run a double-boot (or Parallels) with Fedora. If anyone has tips about getting X11 mouse paste to work on the Mac, or taming Carbon Emacs, or getting Kate to run, pass them over.
mate ~/dev/MyProject
and TextMate will open up a project screen with the MyProject fileystem in a browser panel and files I click on will open in tabs. This perfectly fits my method of work. Finally there is a large contributor base adding new bundles for new languages and features all the time (though the Perl bundle seems to be stagnetI've been using iTerm with good old terminal based emacs and vi and it has been working pretty well. I was using Aquamacs for a while, but I ended up with a desktop full of buffers and found it easier to keep them hidden in iTerm.
One really annoying thing about running emacs in the terminal is that you have to use ESC for the meta key. But I've been able to trick out emacs using perlnow and an autocomplete elisp (https://www.redhotpenguin.com/svn/emacs/) setup so while there are some nits in the system, my overall productivity using it is pretty good.
I've fallen in love with iTerm though. I just wish that I could resize the window using the keyboard instead of having to expend great effort with the one button mouse on the laptop to resize it to fit the screen vertically. I've tried Parallels and it takes up too many resources to be effective on the laptop, but you may find differently on the desktop. There are some annoyances with it (can't cut and paste from the mac buffer to the virtual machine), which they may have ironed out in 3.0 (but my year of upgrades doesn't cover 2.x to 3