Since moving to OS X fully I've become a real fan of Xcode. I'm curious to see how AppCode is when you can actually write Objective-C++ in it. I'm a fan of IDEA, but I'm a little skeptical of this (as AppCode right now isn't as nice as Xcode anyway).
In no particular order (and I just downloaded 2.5 to check stuff so I wouldn't waste your time):
- Counterparts. If it's there I can't find it. (Bonus points if it can do what Counterparts can't: jump-to-definition in the right pane puts the appropriate header in the left pane.)
- Xcode-style back/forward buttons. Coupled with Counterparts, this is really flexible and pleasant to use. I'm familiar with ctrl-tab switching in IDEA but I don't really like it as much.
- The debugger interface feels clunky. I'm used to it with Java/Scala in IDEA, but I feel like Xcode doesn't aggravate me as much. Perhaps it's just because it's more responsive in its presentation?
- Having to remember to hit "Debug" rather than just "Run" is annoying. I get why it exists, but the first time I went "wait, why are my breakpoints not firing?", the need to make that decision lost me.
- UI clutter everywhere. There's too much thrown at me, too fast. Opening AppCode's preferences pane is overwhelming even though I'm very familiar with IDEA (it's not good there either). There's too much crap thrown at me that I don't care about. I don't care about HTTP proxying. I don't care about XSLT files. I don't care about Live Templates. But they're taking up eye- and brain-space. I would strongly recommend that JetBrains figure out exactly what the 95% case actually use and find a way to progressively reveal remaining features for the 5%.
- Native widgets. Everything just feels wrong and it's competing against a really wonderful native UI and experience, to its detriment. I really like IDEA because it's head and shoulders above Eclipse and NetBeans, but going from native Cocoa widgets to AppCode is very unpleasant. I strongly feel that the native widgets in Xcode make it feel more responsive, with animations and transitions that lend a feeling of "snappiness"; I don't know if it actually is faster than AppCode, but it feels it.
- In this vein, making me go from the eye-shock that is AppCode to Xcode to use IB is probably not helping matters from a marketing perspective. Old-hotness/new-busted is reminding me of the pluses of Xcode, which probably isn't what JetBrains wants me to be thinking about.
There are some things that I really enjoy in it - I like that it Just Works with my Xcode projects, I love that, when I use liblogog, the file/line paths that are emitted by logging statements become hyperlinks in the output window - but overall it's like using Linux on the desktop: there are a thousand little frustrations that make it less pleasant and pleasurable to use.
Wow, thanks for the detailed feedback. Most of the issues are on the radar and we are making the UI cleaner with each release, while trying to keep the power in place and still have it discoverable.
@eropple I hope you get that I'm not trying to minimize or trivialize your concerns. I just wanted to point out something that impressed me. @olegstepanov the guy that just asked you for your feedback... he's the CEO of Jetbrains.
I'm really glad that my friend introduced me to IDEA and it's what I use for nearly all of my work with code.
These guys make kickass products, and the fact that they really enjoy their work comes out in the quality of their stuff, and how they treat their customers.
Yeah I'm aware, and I was impressed that he'd be hanging around here. And don't get me wrong: I'm a fan of JetBrains. TeamCity saves my bacon on the regular and both dotPeek and ReSharper are great when I'm working in .NET. From the perspective of an Android developer (day job) and a Scala fan, I love IDEA--it's very smart where I need it to be smart. Thing is, I don't need my IDE to be nearly as smart when writing C++, or even what Objective-C I have to write for tools and such. I need it to not frustrate me, and I'm very willing to spend money on tools that do that. I'd love it if AppCode progressed to a point where I felt like it was a good investment.
And, too, I'm sympathetic with regards to most of the stuff I enumerated in my previous post - a lot of it comes down to being non-native, and trying to match that in Java is kind of like having your foot in a bucket.
I always find it confusing how people can prefer Xcode. I guess it's whatever you're most used to and comfortable with. Xcode does look a lot better aesthetically, but that's about the only thing I can think of.
IMO AppCode has much better code generation, refactoring and navigation. For instance, I've yet to locate a way to find all references to a symbol in Xcode.
I'm not "most used to" Xcode at all. I've been using Xcode in a hobbyist capacity for six months while I've been using IDEA professionally for four years.
Xcode simply feels like it belongs. It acts as a Mac app should act. AppCode doesn't; it's unpredictable, lacking in basic features like Counterparts, and still kicks me out to Xcode just long enough to remind me how much nicer Xcode is to work with. Code generation and refactoring is very pleasant to have but not as important as being comfortable to work in for hours at a stretch (and AppCode isn't worth the price just to employ it for a couple features for a hobby project).
I don't find AppCode's navigation superior to Xcode's for Objective-C and--at least the last time I tried the C++ extensions to AppCode--completion wasn't any better for C++ than Xcode's (which I figure is probably a clang limitation).
I very much like IDEA for Java or Scala, but I find myself frustrated when I use AppCode.
I always write my code in AppCode. When I'm modifying project settings, things like that, I switch to Xcode. However anytime I'm writing code, I switch back to AppCode.