- A bizarre tab design that, despite the ~month I've had to get accustomed to it, is still compromising my efficiency
- An inability to cope with external modification of project files (e.g. update/merge will often break your project configuration unless you quit the app beforehand)
- Project files maintain their own fake directory structure (groups) when in nearly all cases you just want a 1-1 mapping to what you've got on disk.
- There are an abundance of pretty conspicuous UI bugs the Interface Builder component/panel (e.g. UI elements failing to draw)
That said, I'm a big fan of the humorous error dialog I get to see every couple of hours asking me if, after the application's encountered a critical exception, I'd like to "continue" or "crash".
I've been using IntellJ for the last few days and was shocked when I tried dragging a file from one folder to another and it just merrily moved it for me. I can also just drop a .png in the right directory and IntelliJ not only adds it to the project, it also registers it as a resource I can refer to directly in code by ID. XCode makes this kind of thing such a pain in the ass.
I've also forgotten how useful a refactoring tool that actually works can be.
XCode is a perfect example of the strengths and weaknesses of the Apple approach. It's more consistent and requires less setup than third-party IDEs, but if you want to bend it a little beyond its comfort point you're SOL and you have no recourse because nobody is dumb enough to challenge Apple on its home turf.
Running it as a 32-bit app seems to have helped a bit.
You can improve performance slightly in the code editor by turning off the code folding and live issues (which I didn't really care for anyway), but the integrated interface builder is horribly slower than the one in Xcode 3.
Of course now I've upgraded to a 2011 Macbook Air and Xcode 4 performance is now...acceptable.
http://www.jetbrains.com/objc/
The killer app for this will be that you can install their VIM plugin, so you get VIM bindings inside of a first-class Obj-C IDE.
For one thing, it's awfully complicated: think about stuff like the iPhone simulator. For another, Mac users are notoriously finicky. Personally, if you came up with an alternative that was great in almost every way, but was as graphically ugly as Eclipse, then I wouldn't switch. I'm kind of sad that years of Mac use has made me care about this kind of thing, but there you go.
Finally: Codewarrior. When Apple made the switch to x86, the Codewarrior guys decided that was one sea change too many, and gave up the fight. On the other hand, you could argue that that project was mismanaged for many years before that, and was likely to topple sooner or later.
I'd argue that it would be very difficult to make a better XCode or a better vim, but there's probably room for a better TextMate or "XCode for ____".
I don't use Xcode for anything but that; notably, if I'm writing C code, even C code that I might end up calling from Cocoa stuff, I'm doing it in Emacs.
It really is one of the worst development environments I've ever used. Of course, I'm also spoiled, having used Visual Studio for most of my development career. And though that has its warts, it rarely gets in the way of letting you develop, and when it does, someone, somewhere, has written an extension that fixes it.
I do hate the way Xcode 4 does tabs though and it's the one thing that I wish it did like Visual Studio.
I'd love it if I could just download build tools from the App Store rather than installing all of Xcode itself.
That looks very good, especially for my disk space constrained 128GB 11" Air. I don't need XCode on it, but I do need gcc and friends if I want to build things with homebrew for development on the road.
Saving 4GB+ of disk space is of huge benefit to me.
I don't dislike Xcode 4 enough to start using TextMate and xcodebuild/xcrun, though.
(In case my choice wasn't clear, "Project management and editor".)
My problem is it seems quite a few libs & frameworks I use for iOS are designed for xcode3 & tend to be break in xcode4 without significant tweaking & hair-pulling.
But hey, plugin frameworks & project templates are for wimps anyway ;)
Sadly, your poll didn't consider all permutations.
* The tabs. Xcode 3's file switching was terrible, but it felt impoverished, not dysfunctional. Tabs should not work like a web browser, it just doesn't make sense. (Oh, closing the last tab closes the entire project! WTF!)
* The lack of correspondence between the files/folders in the project and the file system.
* The project settings. They were awful and incomprehensible in Xcode 3, they got even worse in 4.
* Some colours are not overridable. For example, the background colour given to lines that have warnings make it near-impossible to read the text in themes with dark backgrounds. Example: http://dl.dropbox.com/u/12091499/xcode_screenshot.png
* The navigator/utility/assistant editor system is broken. Why can't I have the symbol navigator visible at the same time as the project navigator, like in Eclipse? Why not generalize the different panes/subwindows into a consistent system where I can drag stuff around to create a layout of my choice?
* Toolbar is not editable, unlike most Mac apps.
I'm surprised to see this one with (currently) almost twice the votes compared to Project management only. If that's your case, what's your workflow?
Autocomplete works correctly MAYBE 50% of the time. It works 0% of the time on brand new files. Takes maybe an hour or two to get up to that vaunted 50% success rate.
I'd imagine it may have something to do with XCode's horrendous parsing of preprocessor macros.
Also It either crashes or balloons up above 4GB of ram usage at least once or twice a day.
Can't wait for Jetbrains to get their stuff to stable.
(But seriously. I love the Xcode workflow, and now that it's better integrated with its own tools and git, I love it more than ever.)
My first iOS application (for iOS 2) was done on a Linux machine in vim and makefiles, because my iBook G4 wasn't good enough to run gcc, apparently.
Might switch back to that (or maybe replace makefiles with cmake)
I also use Eclipse for my Java development but it feels like a shell with plug-ins carrying it whereas Xcode feels.... whole, all on its own. It still has room to grow and if the past is any indication it will.