Xcode haters

So I use TweetDeck for my twitter account (@michaelswan) and keep searches open for Xcode, Cocoa, CoreData, & Core Data. I have been noticing on the Xcode search that there are a lot of Xcode haters posting with what amounts to “Xcode sucks compared to ________.” Generally the blank is filled with Visual Studio and sometimes Eclipse. I have never used any other IDE, except a brief run in with Think C way back when I first tried to learn programming (that attempt btw failed miserably), so I really have no point of comparison. I have to wonder however is it really that Xcode is not as good as Visual Studio or Eclipse, or is it simply that now the iPhone is out and everyone is trying to get rich quick off of it (I really do think the iPhone is the modern California Gold Rush) that lots of Windows developers are coming over and can’t wrap their heads around the Mac way of thinking. As a side note before this turns into a which OS is better battle; I love the Mac OS, have never owned anything that wasn’t Mac (Classic II in 1992), and I hope to never touch a Windows machine again. That said I don’t think that Windows users are deficient in any way, they just think in a different way than me.
With this in mind I invite you all to leave comments with specific deficiencies in Xcode compared to other IDEs. You should know that I will just delete comments that just say that Xcode sucks, give me a real reason why it sucks. In the end I will try to take the comments boil them down to a consolidated list and submit an enhancement request to Apple, after all, just saying something sucks doesn’t fix it, isolate the problems and ask for them to be fixed.

Advertisements

Tags:

39 Responses to “Xcode haters”

  1. themikeswan Says:

    (@masto via Twitter) “@michaelswan I’m not an Xcode hater, but my wish is more refactoring support. It’s the one thing I don’t despise about Eclipse.”

  2. Eugene Martinez Says:

    I believe that for each job there is a perfect tool that compliments the ‘nut’ behind the keyboard. Some people love emacs, others use vi; for the same reason – it ‘makes sense’ to their brain how it works and their key bindings. BTW, imagine typing in hex ‘nibbles’ in 86 and thats me with my first IIc.

  3. Tom Seddon Says:

    The keybindings system and corresponding UI appears to be broken. The UI doesn’t let you bind sequences of selectors, or insertText:, so for anything remotely complicated (and Xcode-specific) one has to add things to PBKeyBindings.dict by hand. But choosing a custom layout (so that you can at least set up SOME keybindings in the UI) means PBKeyBindings.dict is ignored! So you can edit the pbxkeys file, and that works, but Xcode then seems to wipe over your changes if you use the keyboard preferences UI again! The only solution I’ve found is to select the default (immutable) Xcode shortcuts, and add my own in by hand in PBKeyBindings.dict. This means the UI is basically useless.

    To add insult to injury, you then have to restart Xcode for any changes to take effect.

    I’m not really sure what to make of this, but binding actions to keys is pretty fundamental, so the fact it works so poorly is… unimpressive. (Or maybe I’m just doing it wrong, in which case I submit that there’s something wrong with the UI, because it is not at ALL obvious that there’s some other way of doing it. Though I hope I’m just being stupid and there is.)

    • Brad Says:

      Hear hear, Tom. If we’re sophisticated enough to trust us with accessible (yet painfully so, as you note) config files, can’t we be trusted with a UI that allows key sequences? I guess not, in Apple’s eyes.

  4. Patrick Rutkowski Says:

    Trying to figure out Xcode’s GDB front-end is like struggling with some sort of twisted riddle.

    Also, I tend to do much of my work with autotools since I like to have everything I write ported to Linux as well, and so as a result I can’t use Xcode’s debugger. Better IDEs like MSVC allow you to attach the debugger to any executable even outside of projects, and it’ll work just fine. But if I build an autotools project on OS X, even if I use -g or -ggdb, I CAN’T DEBUG IT WITH XCODE! WHY!?

    /me dislikes Xcode debugging facilities

  5. Alex Says:

    I’m going through it now, trying to learn xcode and obj-c again for the 3rd time. I develop in VS for a living. Here’s just one reason why I hate XCode (the language i dislike indirectly – if XCode made things a bit easier there really wouldn’t be anything wrong with it)…

    To add and display a new window in C# i create a new form, plonk it in my solution, then display it. Bam, done.

    To add and display a new window in XCode, I had to follow this 12 part (each part has 5/6 sub steps) tutorial!!! http://computermusicresource.com/xcode/openawindow.html

    This must be such a common task, it should be practically instant!

    There are just too many barriers to entry. Its true that right now a lot of people (like myself) will be trying it out after being familiar with VS. So, at least let them customise XCode to be familiar to them. There are no options to customise layouts at all. Shouldn’t the interface builder be part of XCode? Why can’t I dock the debugger window somewhere. It’s all basic HCI stuff really, so I dont see how apple failed so badly with this.

    While I’m on debugger, has anyone used both VS and XCode debuggers and can really say they prefer XCode? In VS I can set up watch windows, run immediate commands to probe objects, change the code while it runs… the list goes on…

    • Andrew Says:

      Alex:

      I’m not sure what the issue here is. Sounds to me like you are coming from VS so you are thinking in a VS way. Cocoa uses Interface Builder to do user interfaces (yes you can also do everything in code, but you don’t have to). Interface builder is not a code generator like the approximation in VS is.

      So. . . when you create a Cocoa project, you already have a window. If you want to create a new one, you can simply add a new nib (now they are .xib, but still called .nibs) and you have a window. If you double click the .xib (or .nib) you open Interface Builder, and your window is there. I think when you get used the different paradigm, you’ll find it’s wildly cool. It will take a little time, because you are doing things visually, and not with code. The tutorial you found in ancient. . . . but it’s understandable that that is where you looked, because trying to do something in Cocoa as you would in VS is coming at it from the wrong place.

      Look at http://cocoadevcentral.com/d/learn_cocoa/
      There are many other tutorials to help you get the general paradigm. There is also Aaron Hillegass’s book “Cocoa Programming for Mac OS X” (http://www.bignerdranch.com)

      Personally, I wish someone would do a Cocoa for Visual Studio users book or site, because I think it could help.

  6. Andy Says:

    You’re entry is from a few months ago, but I’ll still leave my comments…. For me it comes down to three things:

    Debugging support. Xcode simply doesn’t hold a candle to VisualStudio. VS’s logic-controlled breakpoints, watch window, immediate window, attach to process and run-time editing blow away Xcode’s weak debugger.

    Developer shortcuts. VS’s intellisense and understanding of object models (even as they’re being written) makes the slight typeahead support of Xcode look like a joke. In VS I can type whole lines of code with a few keystrokes. Any errors are immediately flagged as you type. Can’t quite remember a function name? No problem, VS helps you. With Xcode you’re digging though documentation. VS is designed to let developers code faster with fewer errors, Xcode is not.

    Integration. Now granted this might be more of a personal preference, but I like how VS integrates everything into dockable windows. You can choose to have them floating or not. Multiple window IDE or a single window IDE. Xcode is two tools first off, Xcode itself then Interface builder. And both launch a half-dozen windows all over the place. You can quickly get lost in the clutter.

    For me Xcode feels like Visual Studio 10 years ago, and it has a long way to catch up….

    • themikeswan Says:

      Debugger, I can’t say much about, I don’t get debugging really, most of the time the error gets raised when the system is not in my code so none of it makes any sense to me so I debug with NSLog() most of the time. I just use the debugger for issues with outlets and the such. Perhaps this is because the Xcode debugger sucks, perhaps it is just because the only programming class I ever had was a class on basic in middle school over 20 years ago.
      Code completion, I feel like Xcode has it’s good days and its bad days. If you start by making sure you have imported all the right files into all the right places and make sure you start the line correctly most days Xcode will give you the correct completion (if it doesn’t you will likely get a warning during the build on said line). I do wish that it still allowed me to start typing init outside of a method and get the default method definition so I can just edit it, once upon a time Xcode did that. Also you can have research assistant hang out in the corner and get the list of methods for whatever class you type there.

      Too many windows? In Xcode I have one window for each project that is open and one for documentation. If you look in preferences you will find an all-in-one option for windows (no projects can be open in order to change it).

      I don’t think any IDE, or any other piece of software, will ever be perfect for everyone but I just looked and saw tat VS has 11 different versions that range in price from $200 to over $10,000, while Xcode has one version and is free, I think I will take a few bumps in the road for that price and ease of selection (I have no idea which version of VS I would need). (I also think VS looks disgusting, but that is just my opinion and is one of the reasons I don’t write Windows software.)

      I would be curious to know if those of you that really hate Xcode did you start with VS and then move to Xcode? or the other way around? As humans we tend to get used to a way of doing things and become upset by change which jades our opinions of thing, as someone once said “Change itself is not painful it is resistance to change that causes pain.”

      • Chris Says:

        Mike, perhaps you should check out vs? I think you will be surprised at just how much better vs is than xcode.

        It simply doesn’t matter which ide (or text editor) you started off using, the facts speak for themselves. I develop for all the major platforms using C mainly and i can tell you that its not just because im used to vs that i like it so much!

        Apple have made a thoroughly dodgy product (yet again!). Anyone that has developed an iphone landscape app knows what im talking about. The amount of hacks required just to develop a simple app with the nasty Apple iPhone sdk is ludicrous! It seems as though Apple either have a severe contempt for their platforms developers or they just dont care how shoddy their iphone sdk is.

        So Mike, I think that if you had even a whiff of the unrivaled niceness that is ms vs you wouldn’t be so quick to defend the pitiful joke that is Apple xcode. Maybe you’d even end up joining the ranks of the many (sensible) xcode haters out there!

      • themikeswan Says:

        Chris, The only way I will ever be checking out vs is if they release a Mac version. I have dealt with Windows many times in my life (fortunately never on a machine I owned) and have always had the desire to throw the machine out a window within the first five minutes, I have to fight it every step of the way to do anything, and it looks ugly to me. Everyone works in different ways so it is good that there are different OSes and different IDEs out there. I know Windows annoys me, so I don”t try to develop on it (even though I would have a larger market on Windows currently). Some people, of course, don’t get to choose what they develop for (unless they change jobs).

        As to the iPhone SDK, that is totally separate from Xcode even though they get used together. I have built simple apps without any hacks at all. There are only three situations I know of that the SDK doesn’t practically hand you on a platter. The first is if you are doing something new (writing your own button, or something else special) in this case you just have to roll your own and in most cases you can still get most of what you need from the SDK by subclassing. The second is if you are ‘barking up the wrong tree’ any attempts to deviate from MVC will make life harder that needed as will trying to get the wrong class to do something for you. You would be amazed how many people want to mutate an NSString or assign a font to it. The third instance I know of is if you are trying to reach outside your sandbox, the SDK will actively fight you on this. I, personally am very glad that the SDK keeps each app in its own little sandbox, it ensures that no app is going to send my information to a server somewhere or interfere (by design or accident) with any other part of my phone.

        The thing I have noticed in all the comments here is that most people that hate Xcode are writing iPhone software and not Mac software, and I think that is very telling. People that write Mac software generally do so because they love the OS, while most people that write iPhone software do so because it suddenly became part of their job, or because they are following the wagons towards California; the latter are destined to be disappointed as the best iPhone apps come from people that love the Mac and iPhone platforms.

        Perhaps VS is nicer than Xcode, perhaps it depends on the beholder. For me I know that as long as Xcode is the only IDE that I can write Obj-C code for the Cocoa and Cocoa Touch SDKs it is the only IDE I will ever use. As soon as there is another option I will give it a try.

      • Chris Says:

        Hello Mike.

        You say that YOU don’t have to commit hacks to get what needs to be done, done?
        Perhaps its just me being rubbish then! As you previously said, I am indeed one of the poor unfortunates you mentioned; forced to work on a mac just to develop iphone apps for my company.

        Would you care to have a glance at a very basic xcode project(http://rapidshare.com/files/367960674/UsingAutoRotation.zip.html) that I have prepared that demonstrates the landscape rotation issues that I like SO many others have experienced? If you can spot where Im going wrong I would be extremely grateful and would indeed be willing to eat my previous words of hate for the iphone SDK (sorry still cant retract my words of disgust at xcode!)

      • themikeswan Says:

        Chris, I think this one falls into the category of doing something that Apple doesn’t want you to do. I can see the logic behind preventing it as whenever I use an app that forces me between orientations during operation it annoys the crap out of me. Videos are the only exception I can think of that need to have a landscape orientation and may be encountered after the app has launched. When an app first launches the system looks to see what orientations it can handle. If there is only one orientation the app can handle it will force that orientation, after that it won’t force a change so as not to confuse the user. Imagine for a moment an app that every view forced a different orientation, some portrait some landscape, now imagine that some of those landscape orientations are left and others are right. Now think how annoyed the user would be to keep spinning the device every time they changed views. It could also be a bug, you could try submitting it to bugreporter.apple.com and see what happens.
        I am a bit curious as to why you don’t have any .xib files in your project, there is nothing wrong with coding the UI, but it seems like cutting wood with a hand saw where there is a table saw plugged in right next to you, at least to me.
        The only reason I’ve never had to hack around the iPhone SDK is that I haven’t written anything that has needed it, I’m sure there are things Apple didn’t think of, I just haven’t run into them yet, at least not in the Xcode world.
        I didn’t see anything in your project that would lead me to think you are rubbish, as a matter of fact I would have no idea how to code a UI since I always go straight for IB.
        I wish I had a better answer for you but it seems you have found a bug, or are working against Apple’s master plan.
        For the record I by no means think that Xcode, Cocoa, or Cocoa Touch are perfect, but to me they aren’t as bad as people make them out to be at times.

  7. Andy 2 Says:

    I have to agree with andy. My biggest problem with XCode is the window navigation. XCode craps out 20 different windows alot of them are redundant. I would like it to keep all the windows together docked in panes. It makes developing easier, not having to find the debugger window then switching back to other code windows. I will get used to it because it is the way of the mac, however the rest of XCode is quite decent. I’m only 5 days into learning it and doing the Standford CS193 course. I find it different but not unusable. If there was only a way to keep the windows together I would be a lot happier. I guess it’s just the VS in me.

  8. G Says:

    Xcode is rubbish. The debugger is simplistic, code completion is a joke, underlying compiler often generates gibberish error messages, it spews windows everywhere. And then there is the bizzare mess that is interface builder which crashes randomly and is a strange mish mash of code declarations and connecting components. It is extrodinarily tedious to work in. God I hate mac development

  9. Chester Arbuthnot-Smythe, Esq. Says:

    My biggest problem is Xcode’s debugger front-end, which is complete and utter trash. The magnificent Visual Studio debugger (I never thought I’d say that about a Microsoft product) can seamlessly debug an app not only in native code, but across the native-managed boundary, into and out of COM objects, you can attach it to running processes, has support for logic-controlled breakpoints, will seamlessly support apps written using multiple languages, it will concurrently debug across multiple threads of execution, has a terrific watch/locals window — all without ever crashing or missing a beat.

    Xcode can barely debug a simple C program, let alone do any of that. If Apple wants to bring developers on board, they have create developer tools that are truly of a professional level. Simplistic applications are fine for the average Mac user and to show off the “minimalist” design of the system. But their flagship IDE for developers? This just doesn’t cut it.

  10. Omar Gomez Says:

    Not only XCode has the worst key shortcuts for editing and window management, but also it makes it difficult if you want to use an external editor like emacs or vim.

  11. Sean Gies Says:

    Xcode is very buggy–plain and simple.

    I don’t particularly care what features they put in or left out, or what keyboard shortcuts they chose; when I’m fighting with Xcode’s bugs every 5 minutes, it’s all I can do to not throw my Mac out the window.

  12. Peter Says:

    What I hate in xcode:
    – Annoying and moron window handling
    – Sometimes it’s not enough to clean the project, actually you have to delete the build directory otherwise it doesn’t realize that I changed the included files (images, texts) in the filesystem
    – Debugging is a horror, you can’t have whatever expression you want evaluated
    – Sometimes it forgets to show the warning messages, it simply says the project was built successfully

    Yeah, I came from the java world, I used many IDE, my favour is Eclipse, which is available on mac btw, but you don’t have a chance to build iphone apps in that.

  13. Martin Says:

    Agree with pretty much all of it. I have about thirty years of software and hardware design. Xcode is a disgrace. Visual Studio has been mentioned a lot here. The reason I mentioned my hardware background is because I have used many IDE’s and debuggers to produce code for embedded systems as well as hardware such as Xilinx and Altera FPGA’s. On a relatively recent Xilinx project we had nearly 200 source files and several dozen testbenches (debugging programs that excercise the hardware in a virtual simulated debugger). The Xilinx IDE made working with such a massive number of source files a comfortable and easy task. Yes, the interface is tabbed and everything stays within the IDE window. You can, if you wish, rip out one or more source file windows into their own separate window, which is sometimes useful.

    Xcode is pretty poor on many fronts. There’s no question about that. I suspect that the reason many don’t see this is because of folks that never experienced anything else. This is akin to never buying a new car. If you have a half-way-decent car you might be inclined to think that this it is great. It isn’t until you decide to get into a new car and drive it around for a while that you see the differences. Anyone with reasonable experience driving development systems such as Visual Studio and similarly highly-evolved systems can only look at Xcode with, yes, horror for what it isn’t.

  14. Chris Says:

    Hello Mike, thanks for taking a look and also for your kind words 🙂
    There are several reasons why there are no XIB files.
    The #1 reason being that I simply cannot tolerate the way that interface builder works; having to write IBOutlets in code and then hook them up graphically makes me sad ;(
    Reason #2 is the file count bloat caused by all the XIBs. With one per view (+ header and source), file count quickly rises, not to mention the fact that without IB things actually seem to run marginally quicker.

    I couldn’t agree more with your analogy though, it is indeed tedious having to design UI without any graphical tools! Oh how I long for something more like the forms designer of vs.net! I would never dream of hand coding UI in that exquisitely elegant beast.
    In vs.net, (editable) code is generated by the form builder and is outputted to the same (logical) file as the form you are designing! I really hate and distrust the way IB is doing unseen things underneath the “bonnet”.

    As for my need of the forced landscape orientation:

    My problem is that I’m making an app that allows people to take pictures and perform basic annotation of them. If the user takes a landscape oriented picture then I would like to force the entire app after that point to use landscape orientation.
    I’ve been pulling my hair out for weeks trying to sort this out and have arrived at a less than agreeable solution; Now even this is broken since I had the audacity to try and throw some “modal” views into the mix!

    The only way I’ve figured out how to force the orientation change is by presenting a “pointless” “modal” view controller before the landscape one. This seems to ensure the shouldAutoRotate method gets called with the appropriate param (landscapeleft).
    Unfortunately this is a massive hack and I just dont like having to hack things together to achieve basic functionality.

    I think that now I’m going to have to use one of the precious technical support tickets and ask Apple what they suggest.
    I’ll have to keep my fingers crossed that Apple dont intentionally disallow this like you suspect!

    Anyway thanks again Mike for taking the time to try and help me out, most appreciated mate 🙂

  15. brundlefly76 Says:

    Mike,

    There are two major types of IDEs – the 99% which tie disparate tools together like XCode, and the ones that instantly convert ordinary humans into high-quality production software object assembly lines like VB.

    Seth

  16. Arno.Nyhm Says:

    i come from windows and netbeans and i hate XCode and the ugly looking objective-c syntax.

    in xcode i have:
    – a horrible autokompletion.
    – no useful auto format (it craps all into useless syntax – remove all intentions in commentet out code !? why?)
    – autointention while typing is not using the settings i make. the itentions are switching between 2 chars and 4 chars and some random!?

    horrible.

    i would like to see a java-like objective-c to get rid of the square brackets
    and wich some compiler magic transform it to real objective-c and then use the normal xcode toolchain.

    then i can use my favorite JAVA IDE (i.e. Eclipse, Netbeans, IntelliJ) for fast writing code and xcode for executing and and debugging.

  17. kclement Says:

    Personally, I don’t hate Xcode, but it is terribly confusing.

    I come from a .NET/Java background.
    Mostly Visual Studio, sometimes Eclipse/Netbeans, even Adobe Flash (yes, it has an IDE for AS3).
    In all of those IDE’s, I’m able to get started instantly.
    In XCode, the first time you see it, you’re completely lost.

    I don’t hate it, but it’s completely different from the IDE’s I’m used to.
    I assume the same thing might happen if a hardcore Xcode user would switch to Vis Studio. But imo, Vis Studio/Eclipse/NetBeans/… are way for ‘friendly’ for newbies.

  18. igort Says:

    I can’t say that I _hate_ hate Xcode, but I think that I have every right to say that it’s just an inferior IDE, not only in comparison with Visual Studio, but many other IDE’s I’ve been using too — Eclipse, NetBeans, KDEvelop, Anjuta, QT Creator, etc. Furthermore, in my opinion, vi AND emacs (and we all know that very few developers like them both) are much higher on the productivity scale when compared to Xcode. As many developers noted before, it fails to compete in almost every aspect — sloppy debugger, lack of intellisense (the autocomplete feature REALLY is a joke and I will forget its existence here), code formatting, keyboard shortcuts, refactoring and painful window navigation probably hurt the most, but, sadly, arent the only ones.

    However, the thing that annoys me even more is the fact that there is a base of people who actually defend Xcode’s “features”. Even on paper, I really don’t see what there is to defend (except for the unfortunate fact that it currently is the only mean of developing for Mac). In my opinion, those people are the ones who should be forcing Apple to deliver one sane IDE to them, not to cover for their mistakes. I know, we are all different, and this discussion always ends with some statement of “different mental model of Windows users”. Mind you, while VS is Windows specific, none of the other IDEs mentioned here are not! And they are used successfully by many users for large variety of languages! Have you ever really tried ANY of those tools? Did you see any of that HCI clearness people here are talking about?

    I love Mac OS paradigm in general (I believe that many of the Xcode haters share this feeling), that’s why I like to develop for Mac in the first place. I think that my mental model is well adjusted for the OS differences, so Xcode dislike doesn’t have anything to do with Mac OS vs Windows debate. It’s just that bad, believe us.

    To summarize, we’re in 2010, folks. You can create a new IDE (let’s call it Xlode :)) in which you have one nice panel of buttons that represent all byte values (0x00 to 0xFF), each of which you can drag-and-drop to the nicely visualized processor registers and memory space. The reason why developers won’t like it so much (even if you do really great job in drawing that CPU and memory cells) is not their different mental model, it’s the fact that what you created is just a freakin’ HEX editor. It lacks higher level features! Unfortunately for Apple, this analogy isn’t even a good one — Xlode is at least extremely easy to use 🙂

  19. Daniel Says:

    Xcode has had so many bugs and problems over the years. I think they get squashed and come up again constantly. The debugger is horrible. It sometimes fails to stop at breakpoints, and other times misunderstands where the break point is, stopping at the wrong place in the code. This is base line functionality stuff. My favorite example is its failure to match parenthesis under some circumstances! I had to bring a developer friend over to my computer before he would believe me, but the editor would beep on me as I placed my last parenthesis, even though it was balanced and the code compiled fine. How about failing to notice that I modified a source code file and not compiling it? Do you like to spend an hour tracking down a bug that doesn’t exist? How about clicking “Clean” and compiling the whole project in case the bug was caused by Xcode?

    There are presently crashing bugs in Interface Builder that prevent me from using Core Data to rapidly construct an interface. The right-click contextual menu is not contextual: it doesn’t matter what you click on, it will give you all the same huge menu of options. Not nearly as easy for going to the definition of a data type, for example.

    More generally, as far as debugging is concerned, Xcode/gcc catches run-time memory corruption very lazily, and it’s not easy to tell what’s happening with the tools available. Visual Studio C++ is so much better, that I literally port my C/C++ code over to VC++ to test it there when I’m having problems. When I’m in Objective-C I don’t have that luxury.

    I keep praying for Apple to get serious about the IDE and tools. I think the situation is really bad. If Microsoft made a compiler for Mac development I’d buy it. Somehow I don’t think anyone’s gonna fix Xcode’s problems for a long time. New fluff and features from Apple. That’s it.

  20. W.W Says:

    “out of scope” says it all. The debugger is completely useless. I randomly see the content of simple strings. This is the worst developing environment I had to work with since 20 years. I will drop this whole project as soon as I can.

  21. Trip Says:

    Xcode is better then trying to use flash as an IDE. But then again if you’re doing flash development there’s a nice open source IDE called FlashDevelope and FlashBuilder( Eclipse ), both of which are better then Xcode. Although their debuggers are about on par with XCode.

    Visual Studio, get out a here. Never been a big fan of anything M$, but that’s one thing they got spot on right.

    It’s been a long time since I’ve had to learn an SDK from the reference manual. Xcode does is a state of the art IDE from about 20 years ago.

  22. Kevin Says:

    I am taking over some code for the iPhone so this is my first use of XCode. I have used Borland C++, Visual Studio for C/C++/C#, Delphi, Eclipse, NetBeans, IntelliJ and other IDEs in the past. For this job I also switched from Eclipse to IntelliJ on Windows. I also have that installed on the Mac.

    I would say XCode is the worst of the bunch. I know you don’t want to do anything on Windows but you can use Eclipse and IntelliJ on the Mac. Both work fine. Both do all the cool stuff they do on Windows. The OS is not the issue here, the IDE is.

    XCode just seems ancient. It seems to have various features but no shortcuts to them. Needing to do work in both Interface Builder and XCode by switching back and forth is time consuming and screwy. You have to get the code in place before you can do the UI element in IB. Most things let you create the code on the fly in the UI designer.

    I want multiple files open in a tab. The next / back way of doing things just does not cut it for me when I am editing things all over the place.

    The Debugger is not very friendly. I can hardly see any of my data so I end up in the memory dump window which is just not fun.

    I understand I am learning a new language and SDK but having this IDE thrown in the mix has made it extra painful. It just does not hold a candle to what I have used no matter what the language happens to be. I wish Apple would take a long hard look at it and move it in to the future.

  23. Gilmo Says:

    Xcode has a promising set of features, however many are implemented badly. Here are some:

    – Debugger doesn’t display stl objects in a usable way. Trying to view a vector or a string object, you have to recursively open objects – which won’t lead you to anything. This process in many times will lead you to a crash of the debugger.

    – If you manage to view a string, it will get chopped off after a certain number of characters (about 80). I lost a few hours of my workday until I could figure that one out.

    – Already mentioned: to attach the debugger to a process, you must first set the application filename in the project being debugged.

    – Sometimes Xcode caches the built binaries, and uses outdated versions for debugging – disregarding code modifications. For full guarantee you have to delete all Xcode caches before rebuilding.

    This is a partial list. The annoyances I experience are not of the ‘got used to VS way of thinking’ type. They are *real* nuisances in every aspect.

    -Gil.

  24. Frank Garrett Says:

    It is disappointing that Apple are so comparatively weak in this area. I prefer the Mac platform in most ways, and use it the majority of the time, but Xcode+ObjC is depressingly antiquated next to say VisualStudio+C#.

    Great things can obviously still be accomplished (see the many great OS X and iOS apps), but I do hope Apple have a roadmap for getting with the times with their primary language and IDE.

    • Frank Garrett Says:

      Hah, I came across the WWDC video presentations of Xcode 4 and it does look genuinely good. Seems they’ve done a ground-up rethink of the IDE and it’s really paid off.

  25. Carlos Says:

    XCode code completion is as someone out here put it, a joke. Code complete should help you enter code that’s in your project, not that, that is not. If I type a method name that exists somewhere outside my class, it will allow it, then the compiler will warn me, code complete should’ve never allowed it in the first place.
    Another joke is that when you hit to show the list of options for that particular cursor position, it gives a list of what?!!… selection doesn’t even start at the begining of the list, it’s just a random selection?, oh, yeah, it’s a joke, forgot about it.
    One more, when typing the name of a method, it shows in gray a suggested method, but the method could just have the same prefix but not the suffix, so if I hit enter, or tab it will complete that name, instead, code complete should stop the cursor at the next camel letter. For example, initWithStyle and initWithFrame have the same prefix, so if code complete suggests the first, by hitting tab, completion should go with “initWith” and stop right there, waiting for me to type either S or F so it can know what method I intend to use, then, either allow me to finish typing or it to complete by pressing key.

  26. tedtom Says:

    I have to say that MS Visual Studio 2008 is way too awesome than xcode.
    Objective-C code syntax is pretty confusing, IDE is not that great, I would put it below VB 4.0.
    For an UI development in xcode I have to pretty much write the properties in my class and then connect it thru UI?? In VS it is so simple drag the component to the UI and thats it.
    Code intellisense in VS is so awesome, type the variable name press dot you get the list of methods.
    in Objective C has same method name with different argument names, not sure how to get the list of methods.
    Debugging is a joke in xcode, member contents cannot be seen, like VC6, a content of pointer is not always human readable/understandable.

    I have to say that xcode will make us programmers with better patience.

    I program a lot with extJs, so no good IDE, so have lot of patience to code on xcode/objective c.

    Apple’s machine is very awesome no question about that.
    But MS Visual Studio was and is the BEST of all IDE.

  27. T Says:

    xcode is just wrong. i am so feed up i running the pre-release of jetbrain’s appcode.

    i didn’t expect debug stack frame unwinding and debugger edit & continue but i absolutely hate the debugger in xcode.

    I think the language (obj-c) has tainted me a bit as I hate it as well. But strange when I developed a pretty clever opengl physics game in C in visual studio in a few months…but then initially creating/configuring the xcode project was painful.I then started on skinning the game up for the iOS which was a nightmare!!! IB sucks and if I knew I would be wasting a month+ just to create some screens I would have just done them in opengl as well.

    I hope appcode is as good as intellij, too bad it wasn’t released last year.

  28. lakehousetech Says:

    Xcode really is miles behind other IDE’s in so many ways, and will be especially difficult for anyone coming from Eclipse or VS. I don’t necessarily mind objective C now that I’ve gotten used to it, but the amount of effort you have to put into memory management and dealing with all the limitations of the iOS SDK make it frustrating to say the least.

    In addition getting your certificates generated and working on your development machine is an entire other hell in itself. One of the most irritating things that would require a minimum effort on Apple’s part would be to implement a task feature within the IDE for keeping track of your work (i.e. TODO: in Eclipse). Pragma marks just don’t cut it.

    • themikeswan Says:

      FYI put //TODO: something that needs to be done in a .h or .m file and see what happens. pragma marks are really designed to be more like tabs in a binder so you flip to a section quickly. If you check out the Apple documentation on Xcode you find there are other things you think are impossible that are just done a little different that what you are used to. Also, it seems to me that the idea that thing X is miles behind thing Y takes vague to a whole new level. Think in terms of a specific action you try to do that you do not know how to do in Xcode, first look in the manual to see if it is just not in the place you thought it would be. If it not in the manual then by all means make use of your developer account and use the bug reporter to file a feature request Apple cannot read your mind and does not look anywhere at all other than the bug reporter for bugs and feature requests. Make sure your bugs are specific, ask yourself what you would want from a user if they were filing a feature request or bug report on something you wrote and give Apple that same level of detail (i.e. if someone sent you an email about your app and said it was miles behind app Y how you respond?)
      Of course Xcode isn’t perfect and likely will never be perfect for everyone but it does get improved based on user feedback. When you consider that it is a free app that enables you to possibly make a great deal of money that is pretty impressive (especially when you look at the price tag attached to the numerous variations of Visual Studio out there).
      “Change itself is not painful, it is our resistance to change that is painful.” – unknown

  29. Buddy Says:

    I am new to Mac OS X and Xcode IDE. I was able to crash it hard with an error report in the first ten minutes just trying to figure out how to add an element to a view. After the crash, I opened it up and repeated more slowly. I was able to do a lot but when I saved it all the changes were gone. It doesn’t matter what mindset you have, an IDE shouldn’t let you work for an hour and not actually save anything.

    For those who have known only Xcode, here’s how drag and drop should work:

    * drop a control on the view
    * up pops the view’s properties
    * modify the properties and dismiss
    * the relevant files are updated with the appropriate definitions and code stubs
    * the modified files are highlighted

    It isn’t constructive as some have replied to say “If you hate it so much, go develop in Visual Studio.”. We have employers who need iPhone applications, and right now Apple has a monopoly on how, where and what can be developed. It’s far worse than MS has ever been.

Comments are closed.


%d bloggers like this: