Best Developer Tools for OS X
NoviceW writes to share that there are plenty of interesting articles written about Mac OS X applications for switchers, but not many guides focused on programmers switching from other operating systems. This guide lists a few of the more prominent tools for Mac developers, what other tools can't you do without?
The static type system of C and the dynamic type system of smalltalk, what a great idea that was.
How we know is more important than what we know.
AppKiDo is invaluable if you're a Cocoa programmer.
Why is X11 listed as PPC and not Intel/PPC?
Also... Why is MAMP listed? Isn't the 'A' in MAMP installed by default even if it's not OS X Server?
I think what's missing is DarwinPorts... that's a nice fast way to install stuff.
http://developer.apple.com/tools/sharkoptimize.htm l
'nuff said.
--ryan.
Don't say, "don't quote me," because if no one quotes you, you probably haven't said a thing worth saying.
You know, in the 16 years I have been running UNIX I have really come to appreciate vi. I have tried other tools (Eclipse, Xcode, others I can't remember the name of, Kdevelop probably) but for the sort of programming I do (command line, C/MPI) you just can't beat vi (or more recently vim). Syntax highlighting, the speed of editing, having a few terminals open, keep it simple is my motto and it works. A mouse just slows me down. Of course, if I was doing GUI programming then I would use something like Eclipse (I bought the vi emulator for Eclipse) or Xcode. I still remember learning Motif in the early 90's and it was a nightmare.
:-)
Anyway, like any good *nix, OS X comes with vim pre-installed. Just make sure you have X11 and it is business as usual just like it was back on my old Sun Sparcstation 1 running SunOS 4.1.3
"I have the attention span of a strobe lit goldfish, please get to the point quickly!"
One can run Linux alongside Windows on the same hardware. Why, then, has Linux application development not shrivelled up? Why are there native Linux applications? Perhaps it's because if a user has chosen an 'alternate platform' such as OS X or Linux, they're not going to be very happy about having to run Windows too; dual-booting is never as pleasant as running a native app, and perhaps - just perhaps - there are things OS X, Linux, et al can do that Windows can't.
And besides, with more Macs being sold, perhaps marketshare isn't everything. An audience of several million is still an audience of several million...
And tomorrow the stock exchange will be the human race
"Cyberduck is an open source FTP and SFTP (SSH Secure File Transfer) browser licenced under the GPL with an easy to use interface, integration with external editors and support for many Mac OS X system technologies such as Spotlight, Bonjour, the Keychain and AppleScript."
It rocks!
http://cyberduck.ch/
I use Free Pascal on my Mini which gives me access to existing Delphi code as well as native interfaces. (Code Warrior Mac/Carbon code is easily converted, as Carbon headers come with it)
I have ported some GUI apps using Lazarus (Lazarus.freepascal.org), but the Carbon native port is not ready, and these run under XDarwin.
O'Reilly's (no relation) has a great site for Mac tech/programming at MacDevCenter.
Also, Server Logistics, a Mac based web hosting company with cred, offers pre-packed mySQL for free. Gotta love that Aaron Faby.
It's not offtopic, dumbass. It's orthogonal.
First, they have X11 listed incorrectly as a PPC app. If you have an Intel based Mac then the installation CDs includes a pkg of X11 as a Universal app.
...
... for all of your SVG editing needs.
... for all of your raster image editing needs.
... and I am surprised that they left Eclipse off of the list. While Xcode is preferred for doing OS X development, it is still worth a mention :-)
Once you have X11 installed then you can also get
1) Inkscape (Universal)
2) Gimp (Universal)
I'm sure there are others, but these are the ones I use most.
I was a Mac developer going all the way back to the very beginning. I spent most of my Mac development life with CodeWarrior. It was fast. It was efficient. It was straightforward.
Yes, for larger projects it lacked quite a bit of the things most developers expect or need, but even just using it just as an editor was good.
And then came Xcode...
I could spend the entire night listing problems with Xcode. I feel like my soul has been drained over the past two to three years of struggling with this nightmare of a development environment. I think the only reason there isn't a larger outcry from Mac developers is there simply is no real alternative outside of vi and makefiles.
Something went terribly wrong with the Xcode project at Apple. The IDE is so bad that I have come to naturally expect things to just not work or crash. Even on a quad-970 machine editing and basic UI functions are mindboglingly slow. Text editing is so slow in Xcode that I cannot believe it isn't some sort of malicious sabotage.
And even simple things like jumping to definitions or listing include files is just flat out broken when working with projects and libraries open at the same time.
There are just so many things where I keep telling myself that in any other IDE this particular task would be easy to do or just work automatically. I feel like Xcode is some sort of possessed program that is actively seeking to thwart my every move.
Even though I've been a foaming at the mouth Mac lunatic for years and years, Xcode has just about sapped all my desire to continue doing development on the platform.
I can't believe that the article didn't recommend Eclipse. Even Apple's Developer Connection recommends this wonderful program.
Of course, Eclipse is a good tool because it is multiplatform and highly extensible. I find it great for java and python (through pydev) work on my Mac and other boxen.
Navicula hydraulica plena anguilarum est. Omnes castelli tuus nostri sunt. Ed elli avea del cul fatto trombetta.
I agree and was puzzled the author had X11 down at no. 10 on his developers list. Once you have X11, try Fink or Darwin ports and installing KDE and gnome is as easy as with Debian.
Once you have spent around a day watching fink compile all the libraries and applications for you KDE runs superbly on a mac. You can either alloiw it to manage the desktop and run fulll screen or simply run a toolbar in the manner of the dock. I would then highly recommend Kate - the KDE advanced text editor which is excellent for Perl and Bluefish for XML and X/HTML, although some pprefer Quanta plus which also comes with tthe Fink KDE bundle.. The KConsole is a very good terminal application also.
While there are still a few cut and paste issues between X11 and native mac application overall the integration is excellent, you can use expose on X11 and native windows and most desktop manager applications allow you to separate them between desktops, plus you get access to all the excellent mac fonts.
As a Perl author I was disappointed in the mac at first. Now I have the combination of KDE, Gnome an native mac tools it has moved to be my preferred development platform. I would seriously recommend anyone with a mac and an interest in development to look at fink, to my mind it is more exciting than bootcamp will ever be.
ZigVersion is a Subversion GUI that kicks ass.
I've found a use for BBEdit's free TextWrangler -- it's a really smooth program, and because it has a command line interface, TextWrangler is easy to get it to do what you want it to do. TextWrangler has the best system for merging two files that I've found.
Although I've come to use emacs more and more for quick source modifications and when programs are only 1 source file, I still appreciate the use of a good IDE like xcode (although I do think that visual studio is still a bit better) for the simplicity in navigating a large project. On the other hand, emacs does far better than xcode or visual studio at automatically indenting code.
I've found that the OSX developer program Sampler (which comes free with the developer distribution) is also a great program useful for getting a quick feel for where the bottle necks in my program are. Sampler is really intuitive to use, and it provides a nice way of navigating the calling tree of your program allowing you to see how different functions are spending what fraction of compute time. The only thing about Sampler that bugs me is that if I save the data, I haven't figured out how to get the data in terms of percents (as opposed to sample counts) when I load it later.
well - MAMP (mamp.info) does give you everything in one package, with the newest versions (Apache 2 & PHP 5)...
and it really invites to screw around with the setup.
before MAMP i often hesistated to install experimental stuff, now i can just drag the one(!) folder to the trash and start with a fresh install.
things i did with MAMP which were hard to realize otherwise (sitting with the powerBook on the couch) include
and much more...
it really helps if you enjoy messing around with a server setup and want to learn how everything works without srewing up your Mac OS install
Agreed for clientside. The only true ones that I know are Borland's Kylix and Loki games and they failed, and the other commercial apps (e.g. Adobe Reader, Nvidia drivers ) are mostly vehicles for services or hardware, and their commercial angle (as in pay for software) is quite limited.
But the serverside is a different story. Still mostly services based, but way more money involved
OK admittedly he/she did metion PHP specificially in the second quote, but they seem to equate "professional developer" with "chooses PHP"! Hah! I had to restart an application I was working on that went from web to client/server with a GUI because PHP just doesn't cut the mustard for anything other that a web guestbook. Even if I did stick with web delivery I was running into problems with PHP (don't get me started on that session crap - oh here's an idea, run your application as a separate process to the web server and keep application state in memory! Maybe theorectically possible with PHP but I've never seen it done.) Basically, it's a joke, and it so much so that it now annoys me to no end when deveopers use "professional" and "PHP" in the same sentence (without a "not" in there somewhere"). If I had've started with Python or Ruby for example, I'm sure I could've at least reused some of that code. Thanks for wasting years of my life and teaching me bad programming habits, PHP.
If you do consider yourself a "professional developer", and you're working on an application where you think PHP is the right tool then drop that crap like a ton of bricks and try some other language... Python I can vouch for, and I hear Ruby is great too, and they both have great web frameworks.
It's Free software and does what you need it to do. For those that don't care for vim or are just detrimentally used to Cocoa's default key bindings and can't adapt well to vim. (That would be me, by the way.)
http://smultron.sourceforge.net/
I can't believe no-one has mentioned Textmate.
Umm.. It's #2 in TFA. You didn't RTFA, did you?
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
What is the point of doing native OS X development?
I do it to make money. So do rather a lot of other developers.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
What's wrong with vim? Grab an X server, install RXVT and voila, a decent terminal with a decent editor. No need for fancy OSX things.
Eclipse has its strong points, but some people (like me) just don't like it. I can't really say why i don't like it, i guess it just doesn't feel right to me. I do like NetBeans a lot though. NetBeans looks and behaves more like a real OS X application than Eclipse IMO.
And if you're new to Swing development, Matisse (the GUI designer in NetBeans) really helps a lot... it makes it easy to develop java GUI's in the same way that Visual Studio makes it easy to develop winforms GUI's.
If you're a java developer (or are interested in getting started with Java) on OS X, i highly recommend giving NetBeans a shot. It's free, open source, easy to use and powerful.
note: i have nothing to do with the NetBeans project, i just think it's a great free IDE that deserves as much attention as Eclipse.
The article refers to Parallels virtualization software as $49, but that's for the "Win&Lin" version. The Mac version is $79.
How about Java? You run it on Mac OS-X and it looks just like an OS-X app, complete with top menu bar. All this and you don't have to change the source from Windows. I don't know if there are subtle differences to "real" OS-X apps that Mac heads would see, but from my point of view it works well. And Eclipse works quite well on Mac too.
It's hard to describe the wonder of Quicksilver. Just try it.
I've recently started using a Macbook, after years on Windows and *nix. The one tool I can't seem to find is a nice visual file compare utility, like Beyond Compare on Windows. I believe Emacs has something similar, but I'm allergic to it. Does Vim? Is there something standalone?
Q http://www.kju-app.org/kju/
If you code Cocoa applications you're more or less forced to use XCode. You can of course use any text editor and interface builder, but XCode is the only one that is integrated with IB. The small size of the Mac market here and Apple being the 800lb gorilla in that space means that anyone with competing coding tools is at an automatic disadvantage, much like Metrowerks was with Code Warrior. This is a real pity because the lack of competition enables Apple to be very lax about XCode performance and quality.
If you do Java, you have Eclipse or IDEA, both of which are streets ahead of XCode for Java coding. XCode doesn't even compare here.
And if you do Profeesional PHP coding (yes, it does exist), you may as well spend the money on the Zend IDE, since there is no other PHP IDE on OSX that shows classes and offers code completion and debugging as Zend does.
You can of course use Textmate for RoR, since it seems it was engineered with that in mind mainly, but you can do just as well for any of the PHP, Ruby and Python (and Perl, for that matter) group with the respective Eclipse plugins.
I personally use Subethaedit for quick single file editing and Eclipse for anything else. Textmate and BBedit offer me nothing that Exclipse doesn't.
Finally, a good knowledge of vi/vim is a real plus since it's what is easiest to use when you need to edit files quickly in the terminal. Trying to futz around with a GUI editor when you're editing init.d scripts etc is a waste of time. Plus vi will be on any and every Unix type machine you will ever find.
If your code is GPL'd I highly recommend giving QT 4.0 try. The native qt hooks are remarkably native looking for mac os x. It obviously depends on what your application is, but coding in qt 4.0 gives you unix / mac portable code w/ no effort, particularly if you do not have any mac os dependent code (i.e. hardware/device calls etc). (We have not tried the windows QT so do not have a point of reference )
The digital media and effects market (the space I work in) is still roughly a 50%/50% split between Mac/Windows, with a few percent thrown in for Linux (growing).
It's not good business sense to just throw away half your market because the Mac "only has 2 percent" of OS marketshare. For whatever reason, people still use Macs for digital media.
Yes, it's a total pain, and everything on the Mac takes me 3-5 times longer than on Windows, and Apple keeps changing everything every few months, but cross-platform toolkits like Qt at least make it bareable.
A few folks mentioned Java and NetBeans, but of course the whole J2EE suite runs on OSX.
I enjoy using JEdit. It does syntax highlighting and all the indention things programmers need. I usually find myself going back and forth between vi and JEdit, depending on what I'm doing.
Of course, you can use MySQL with Java these days too, using the connector. But I don't of a better tool than the commandline mysql tool, with which you can write queries and format them to make sure your code is working.
Well, I've been using XCode for some time now, and not had the problems you're describing. I run it on a next-to-last generation AlBook (1.67GHz G4 with 1GB of RAM), and at least for pure Java projects, its text editing is just fine, it jumps to methods and classes at perfectly reasonable speeds, and the only persistent problems I've had with it is an odd tendency to lose track of how far it should be indented in large files, and a lack of support for the Expression... dialog for debugging Java projects.
So...I dunno what you're doing wrong, or what I'm doing right, but I find XCode to be more than adequate to my needs, and your experience is not universal.
Dan Aris
Fun. Free. Online. RPG. BattleMaster.
For the right job RB is a great tool.
"I hate to advocate drugs, alcohol, violence or insanity but they've always worked for me" - HST
Apple keeps changing everything? Apple froze the API in 10.3. They are adding things, but the API in 10.3 will continue to function properly in all future versions. You can add new features, but your program will always work unchanged on all future versions of Mac OS X.
As for Mac taking longer, maybe you don't have enough experience yet. I'm not intimately familiar with the Microsoft tools or XCode, but I understand the basics behind both. XCode seems to be designed to be easy to get work done in. Maybe it takes longer for you because you don't yet know enough to equal or exceed you Windows development performance.
If you're developing for the Mac, or simply developing on the Mac, you'll eventually want to use some sort of source control. CVS comes on the machine by default, and you can get MacCVS, but lately I've been using Subversion and find it to be a great program, even if the gui tools are a little raw.
/ 24158 There are others, but they all have their various quirks that have kept me coming back to svnX.
My favorite right now on the Mac is svnX: http://www.versiontracker.com/dyn/moreinfo/macosx
If anyone knows of a better Subversion tool on the Mac (on Windows I use TortoiseSVN and it's great) I'd love to know what it is.
Check out the sample code for the OSXAdapter, which is an easy way to tie in OSX support in a cross platform way. They also provide AppleJavaExtensions stubs so you can compile for Apple specifics even on non-Apple platforms. All the code uses reflection to determine if the Apple extensions are there, so nothing special needs to be shipped oncce the byte code is built.
I use BC heavily for Windows development. Being able to create sessions with very detailed criteria and ignore lists and then connect to an FTP server to compare a local directory, and THEN be able to do detailed diff and merge on individual files, if necessary, is an amazingly powerful tool.
Its not that it does any one of these things really well, just that it does them all.
SubEthaEdit is invaluable for collaboration. I can't say how many times it has come in handy when I've wanted to help someone with code over the Internet or plan out code with someone. Not to mention taking notes with 5 other people in 'ole Computer Science lectures...
It depends on what your doing. I have used Mac and PC for development even different flavors of linux, and it just depends on what your trying to do. Sometimes Mac is fast and intuitive other times you just want to pull your hair out because of all the extra steps you have to go through. Just depends.
They did. FTFA:
N/T
If I'm doing Perl or shell script work, and want to produce apps, I go with Platypus -- combined with something like Pashua or CocoaDialog, you can piece together nice little apps in no time.
Apple keeps changing everything? Apple froze the API in 10.3. They are adding things, but the API in 10.3 will continue to function properly in all future versions. You can add new features, but your program will always work unchanged on all future versions of Mac OS X.
You must not develop commercial Mac software.
We've had to update software for changes from Classic to Carbon, from Carbon to native Mach-O, various flavors of OS X (there have been several ABI/API changes since the initial 10.0 release), and now Intel/Universal. Not only that, as a plug-in developer, we've had to scramble to maintain support for several hosts that have had to go through the same conversions, including compiler environment changes from CodeWarrior to XCode. To support my customers (some of which are running older hardware/OS combinations to keep using specialized hardware with no updated driver support), I have to maintain a half-dozen builds for some products.
Compare that to my Windows products, that continue to work and haven't needed to be updated in over 6 years.
I've found that the OSX developer program Sampler (which comes free with the developer distribution) is also a great program useful for getting a quick feel for where the bottle necks in my program are. Sampler is really intuitive to use, and it provides a nice way of navigating the calling tree of your program allowing you to see how different functions are spending what fraction of compute time.
The only reason to be using Sampler instead of Shark is because you haven't found Shark yet. Shark is part of Apple's CHUD tools that you can download here. It is quite possibly the best profiler that you'll find anywhere on any platform. And best of all it's free.
I probably use Shark on average 2-3 times a day, every day. It has been instrumental in locating and fixing countless performance bottlenecks. Download it and give it a try, you won't regret it.
infested with jello like fishes no melotron wishes
FileMerge - free with Apple's Developer tools - is a good utility for merging files and folders.
Also, BBEdit/TextWrangler both have a good compare utility and TextWrangler is free.
My favorite though is CodeWarrior's compare utility. It is simple and easy to use but CodeWarrior is now dead. Plus, there would be no point in buying CW just for its compare utility. Still, it's probably the one I use the most.
infested with jello like fishes no melotron wishes
So, for Mac application developers, here's a better list:
- BBEdit - the best text editor, period.
- Interface Builder - the best GUI builder.
- Shark - if performance is important then there's no better tool.
- Xcode - well, there's really no other choice these days, and it's getting better.
- AppKiDo - for quick reference to the Cocoa APIs.
- Terminal - good enough for me.
- OmniGraffle - for application/class modeling and design.
There are many other important and useful applications, but these ones really are the core essentials for application development (at least for me). Anything I left out?infested with jello like fishes no melotron wishes
The number native OS X developers is tiny.
Guess again. Over 5,000 of us made it to WWDC last year, and more that half a million developers are registered with the Apple Developer Connection.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
6 years != months
the apple changes you mention took years and it were reasonable changes. 10.0 was infant so changes were expected. 10.1 had bugs so changes were expected. 10.2 was infant with bug fixes, however some apps for 10.2 worked fine in 10.3. The post before your said no changes since 10.3 not 10.0.
6 years for windows - what major new features have you seen in Windows ? security fixes do not count. If you were working for Vista/Net, you probably would going through "months" of changes too.
Changes come with innovative territory.
iTerm may have keyboard shortcuts for this (if it doesn't, that's a major deficiency), but I guarantee screen gets the job done better. I got hooked on the remote detach/attach feature of screen about a dozen years ago, and I absolutely can't do without it to this day. I constantly have a screen session running on my home machine with a dozen or more shells. Throughout any given day, I'll attach to it from wherever I may be - the laptop at home, the desktop at home, my office at work, the lab at work, a friend's house, etc. Everything is preserved just as it was last time I left it, so I can resume any one of many tasks anywhere, anytime.
If I need to see multiple windows at once (major development with multiple files, etc), just open up multiple terminal windows and have them all attach to the same screen session simultaneously. Works beautifully. Does iTerm do any of this better?
Say hello to zMac.
Takes the drudgery out of writing all of those getter/setter methods in Obj-C
I'm not saying they don't. I'm saying they are ANNOYING when you have to deal with them, and as much as I'd like not to deal with them, the size of my market on Apple dictates that I do. And because I am forced to deal with them on a regular basis, through no fault of my own, it takes much more time to support Mac versions of my software.
I wonder what genetic defect causes people here to jump to conclusions so fast.
The first thing that caught my eye on Quicksilver was its cleverness in identifying patters.
Say, I activate and type 'rdc', and it knows it is Remote Desktop Connection. Type 'vnc' and it finds chicken of the VNC. 'aulo' and it'll switch to the AUtomatic network LOcation.
It finds names the very same way our own brains do, by shortcuts, keywords, abbreviations.
It isn't a developer tool, though... And that'll give grandparent post some offtopicness. But integrate it with XCode, Eclipse, etcetera, (no plugins available at the moment, IIRC, though) and it may help you find that source file or image that you're looking for with blazing speed.
I absolute love KDiff3, which is originally a KDE application. (It works just fine on the Mac as well, though.) It's fast and I really like the way it shows the differece between files or folders. If there really is only one character difference on a line, it will indicate that there is indeed only one character difference instead of showing the usual full-line replacement that the other diff programs I've tried do. You can also compare three files/directories, hence the name KDiff3. Check it out!
The view was horrible and the smell was even worse; Julie severely regretted becoming a proctologist.
I hear you. I've been developing for Mac since System 7 and I have been through all of the changes you describe.
If I owned my own business or whatever and felt like maintaining my products was a burden, I guess I'd probably be upset too. Since I am a developer who works for other people and I get paid for solving other people's development problems (often by the hour!), it does not bother me at all.
Oh, and to the trolls who say 2% or whatever... I get paid to write Mac software. Paid by people who have money to spend for my services. I enjoy programing the Mac for a variety of reasons. I have been fortunate enough to be able to command a higher salary than most Windows programmers. Unlike many of the people I worked with who were experts in programming Windows, my services stayed in continual demand during the economic downturn of 2002-4 which caused many of my colleagues to be unemployed for months.
I like using the Mac and I like creating quality software that has a Mac "polish" to it that I would want to use myself. Keeping my skills current is something I enjoy.
I have programmed in the Mac Toolbox, MacApp, Carbon, Qt, PowerPlant, Cocoa, and with a variety of other technologies (including the Newton and including Windows). If you open a mail order catalog for Mac stuff (MacMall, MacConnection, etc), I could point to several products that I wrote. If it weren't fun, I'd hang it up and do something else. Right now it is fun. Apple just had a great quarter and sales of Macintoshes grew 12% over the same quarter last year. I'm not totally sure how that compares to the rest of the industry, but my guess is that it means Apple gained some ground. It is sure a lot more fun than it was in 1997. However, even back then, I had no trouble finding a job.
Apple isn't going away. But if you hate Apple, I have good news for you: Microsoft isn't going anywhere either and no one is ever going to force you to use a Mac or develop for a Mac if you don't want to. So instead of bashing Apple and insulting Mac users, why not just count your blessing that unlike most Mac users, YOU can use your favorate OS pretty much all the time and never have to think of anything else except when maybe an Apple ad comes on TV.
Avoid Missing Ball for High Score
I was looking for Trolltech. Somehow I couldnt find it.
I think I've found a bug in my firefox's search function. Its late in the day.
Can someone find the Trolltech rank somewhere in there please?
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Q. Why do people make clothes worn by What is the point of wasting development resources on a shrinking niche segment of the market? I pity your timing on that one. But again, see above. What's the point in localising to Swahili or Welsh when people know English?
'Capitalists of the world, unite! Oh
I don't think your options are correct. They should be:
1) Spend time learning an entirely new API. Spend time learning an entirely new set of development tools. Spend time/money supporting two different versions of your product/app.
2) Include a readme.txt that tells Mac owners to either use BootCamp or Parallels to run your product and expect them to buy a licence for Windows, install it, set it up to their requirements and then use your product.
When stated honestly, suddenly option 2 doesn't seem so hot now. Windows 'normal' licences are a few hundred dollars, which has to be *on top* of your product's cost. And Parallels is $79. Plus there's the anti-virus software.
Do you still think users will buy your product if you treat them so badly?
Its a Mac classic... for native apps nothing beats RB. Fast, easy programming and if you need (only for the really hard stuff) you can allways trow objeive-c in the mix
http://episteme.arstechnica.com/eve/forums/a/tpc/f /8300945231/m/332004739731
Indispensable
Asking me to boot windows is the exact same thing as asking me to give up
my command line.
It's not an option.
Which choice is profitable and makes economic sense again ?
I use viPlugin with Eclipse. I'm a happy camper.
There's a great sourceforge project that is an ant task that mimics JarBundler. The target takes a lot of parameters to get it just right, but pretty much every option to JarBunder.app is supported.
Me too, and it works pretty well although some of the missing features are a bit of a pain and keep me going back to the real vim. I'm using Eclipse at the moment because it is great for debugging but I also have a few xterms open too. If I need to do something that is quicker in real vi I just save the file in Eclipse, open it with vim, do what I need to do, save it again and then open it back up in Eclipse. Whatever works I guess :-)
"I have the attention span of a strobe lit goldfish, please get to the point quickly!"
I find CMake tremendously useful, as it lets me manage most of my configuration in a cross-platform manner. I can transparently take the project over to Windows to build with NMake or Visual Studio. I don't use the XCode support very much, as the Makefiles generated by CMake seem to work pretty well.