Comment by flohofwoe

Comment by flohofwoe 9 hours ago

105 replies

Building castles in the sky while the foundation is rotting away :/ Xcode really needs a couple of years of pure bugfix and optimization releases instead of hype-chasing.

allthetime 8 hours ago

Honest question.

I've been using XCode for 10 years. For me, it's only improved and I don't have any real pain points. They are definitely fixing bugs. I make software for iOS, macOS, car play, and apple watch.

Sure sometimes I've got to reset or clear a cache, but this has never stopped my day.

What is so horrible about XCode?

  • tom_ 3 minutes ago

    Inflexible window layout. (For example, suppose you want to see breakpoints list, call stack, and find results simultaneously. You can't, as they all share the same panel. Which is always on the left of the window.)

  • ASalazarMX 8 hours ago

    > I've been using XCode for 10 years. For me, it's only improved and I don't have any real pain points.

    This means you've learned to work around its shortcomings. A decade ago I used to develop in PyCharm for websites, and Visual Studio .Net for desktop apps. Then I had to learn XCode for a mobile app.

    It was a surreal experience, like going back ten years in UX, while at the same time dealing with a myriad of modern but artificial limitations and breaking changes that meant the app needed frequent housekeeping even when its features remained unchanged.

    For a company that gets a huge part of its revenue on its oversized App Store tax, developers, and their tooling, should be one of their highest priorities IMO. Instead, we get Kafkaesque situations like "my app doesn't compile today... oh, I need to open my Apple Developer account in the browser and accept a new little change in their kilometric EULA that I always pretend I've read carefully". Things like this could be handled better.

    Edit: I also had to learn Android Studio for another app, and the experience had less friction overall, but that could mean that I've also learned to work around the shortcomings of JetBrains IDEs. Google is undeniably more developer-friendly than Apple IMO, though.

    • spacedcowboy 7 hours ago

      Honestly, that just sounds like it does things in an unfamiliar (to you) way. That's the flip side of the coin "This means you've learned to work around its shortcomings".

      There is no perfect IDE. They all have problems / are inadequate / get in the way. I absolutely loathe IntelliJ IDEA for example, and think Eclipse is needlessly complex (though I'd like their code-indentation/formatting UI to replace the one in Xcode).

      Honestly, Xcode gets a lot of bad comments, but it works pretty well for me and the debugging tools are pretty much top-notch if you take the time to learn them.

      I started a project on January 5th. Running sloc right now I see:

      ---------- Result ------------

                  Physical :  44454
                    Source :  31019
                   Comment :  7284
       Single-line comment :  2622
             Block comment :  4662
                     Mixed :  210
       Empty block comment :  2
                     Empty :  6363
                     To Do :  0
      
      Number of files read : 195

      ----------------------------

      That's a lot of code in just under a month (and none of it from AI tools), I don't think the IDE is getting in my way.

      • 9dev 6 hours ago

        First time I tried it, I realised there is no way to have a terminal emulator panel. A bloody terminal. Like the most basic feature you could integrate into an IDE. No thank you.

  • Eric_WVGG 8 hours ago

    Like you, I think that Xcode maybe gets a worse rap than it deserves, but it's also endlessly frustrating.

    First, the performance is just bad. The responsiveness compared to apps like VSC or Panic’s Nova is night-and-day.

    The attention given to the design of new features is piss-poor. Placing the AI functionality on the left sidebar makes no sense; all the other tools on the left are project management; the "let me run weird functions and interact with stuff" UIs like terminal, debug and logs are in the bottom panel. Or maybe a new tab in the main workspace area?

    The SwiftUI preview canvas can't be floated as a separate window, making it all but useless on anything smaller than a 16" MBP (and only barely usable there). In fact, I think it might be impossible to use Xcode in multiple screens altogether…?

    Old simulator versions and cache files hang around forever, you need a third-party app like DevCleaner just to keep your storage from filling with nonsense. Cryptic messages like "copying symbols to device"… clear-cache that doesn't seem to clear-cache, that stupid list UI for info.plist…

    I never thought I'd have anything nice to say about PNPM package management, but you can always just delete `node_modules` and reinstall and count on things working. Swift package management is a cryptic mess, and their insistence on using a GUI instead of a basic JSON manifest just compounds it. Like the info.plist thing, a lot of Xcode is based on a developer UI philosophy from the Mac Classic days that has mostly been abandoned by the rest of the world.

    Mostly, I think the vitriol surrounding Xcode is that Apple seems to think they're doing a good job; meanwhile their most ardent and adept users are insisting that they are not. Same boat as MacOS, really.

    • andrekandre 3 hours ago

        > functionality on the left sidebar makes no sense
      
      they really just need to get rid of 'sidebars' and go full-on panel oriented ui so i can put whatever inspector/tool on whatever edge of the window i want; i'm constantly switching between opening panels and closing panels and hunting and pecking for the right panel-within-a-panel with those tiny icons...
    • saagarjha 4 hours ago

      Nit: symbol files are copied from a device.

  • flohofwoe 8 hours ago

    My pain points are mostly in the CPU debugger (since I'm not using much of the actual "IDE features" of Xcode except the regular edit-compile-debug loop anyway.

    Starting a 'cold' debug session into a UI application may take 10-ish seconds until applicationDidFinishLaunching is reached, and most of that time seems to be spent with loading the symbols for hundreds of framework DLLs which are loaded during application start (which I never even need because I can't step into system frameworks anyway) - and seriously, why are there even hundreds of system DLLs in a more or less hello-world-style Metal application with minimal UI? This problem seems to go back to the ancient times, but it gets worse and worse the bloatier macOS UI processes become (e.g. the more system frameworks they load at start).

    The debugger variable view panel is so bare bones that it looks like it's ripped out straight from an 80's home computer monitor program.

    When debug-stepping, the debugger frontend is quite often stuck for 10s of seconds at completely unpredictable places waiting for the debugger to respond (it feels like a timeout).

    Step-debugging in general feels sluggish even compared to VSCode with lldb.

    For comparison, VS2026 isn't exactly a lightweight IDE either, but debugging sessions start instantly, debug-stepping is immediate, and the CPU debugger is much more feature rich than Xcode's. While in Xcode, everything feels like it's been added as a checklist item, but then never actually used by the Xcode team (I do wonder what they're using to develop Xcode, I doubt that they are dogfooding their own work).

    The one good and useful thing about Xcode is the Metal debugger though.

    • neutronicus 8 hours ago

      Yes, I develop C++ on XCode and Visual Studio. I've recently started using XCode more because the performance on my Windows tower has become abominable in the past couple years and the M1 laptop is still snappy.

      XCode is just terrible compared to Visual Studio.

      As you said, there are weird beachballs all the time both while stepping and while waiting for the application to stop at a breakpoint (in cases where it happens instantly running under VS on Windows).

      The Jump to Definition seems to have gotten flakier. Or maybe it's always been terrible relative to Visual Studio, IDK. But regardless a lot of times I'm just going by memory and Cmd+F on XCode - Jump to Definition and Cmd+Shift+o are just not getting there.

      The Variables pane in the Debugger often just fails to actually ... display anything for any of the variables when stopped at a breakpoint. Sometimes it will appear after stepping a couple lines, sometimes it won't.

      The Debugger is even flakier than usual when Lambdas are involved.

      I am an emacs guy so it's not like I'm disposed to like Visual Studio. Visual Studio's quality has slipped a little too. But XCode feels straight-up amateurish in comparison to it. That said, at least Apple is actually exposing the capabilities of the IDE to their LLM integration offering. This is an improvement over the abortion that is Copilot integration in Visual Studio.

      • jahnu 6 hours ago

        > The Debugger is even flakier than usual when Lambdas are involved.

        You can’t step into a lambda stored in a std::function

        Absolute nightmare if you don’t know which lambda it might be so you can set a breakpoint in it.

        Honestly, compared to Visual Studio, Xcode is 20 years behind.

        • socalgal2 3 hours ago

          You're holding it wrong. You're not supposed to code for Apple products using C++. You're supposed to use Swift

          (only half joking)

      • IcyWindows 3 hours ago

        What Copilot can use the IDE when actively debugging.

    • plorkyeran 6 hours ago

      Historically one of the big problems with Xcode has been that they only dogfood. There’s people on the team that have not touched any other IDE in decades. They’ve gotten used to all of the quirks, and just don’t really know that things could be better. Every new improvement has to be designed from scratch rather than just ripping off what other IDEs do better.

      Apple internally has structured their projects to not run into all of the debugger performance cliffs, but don’t provide any guidance on how to do the same thing and don’t proactively fix the problems they’ve avoided.

      Every time I’ve talked to someone who has worked on Xcode they’ve expressed the opinion that Xcode is best-in-class and they simply don’t understand why people disagree.

    • saagarjha 4 hours ago

      > Starting a 'cold' debug session into a UI application may take 10-ish seconds until applicationDidFinishLaunching is reached, and most of that time seems to be spent with loading the symbols for hundreds of framework DLLs which are loaded during application start (which I never even need because I can't step into system frameworks anyway) - and seriously, why are there even hundreds of system DLLs in a more or less hello-world-style Metal application with minimal UI?

      This is so you can see function names for system frameworks. You can step into them if you want too even if Xcode tries to stop you doing it by default.

  • trinix912 8 hours ago

    Mostly the fact that for the past 10 years they've been adding new features but never finished them and taken the time to properly bugfix them along the way. Just a few I ran into recently:

    - Interface Builder is stuck in early 2010s. Not only is the property panel missing half of options we now take for granted everywhere else (like corner radius), it also randomly won't read fonts in the current project, will crash the entire IDE if you Cmd-Z a big change (things like unembedding a view) and half the UI is still not rendered the way it will be on the phone. Yes, Swift UI exists, but most bigger apps are still XIBs and Storyboards and it's going to remain that way for quite some time.

    - Autocomplete is a hit or miss. Very much like the mid-90s Microsoft IDEs where you'd get totally useless results until you've typed the whole line out already. It can be done well, look at AppCode.

    - Syntax highlighting feels pretty much the same. Randomly flashes on and off, often doesn't highlight until return is pressed, takes a long time to load on large files etc.

    - Git integration is by far the worst I've seen out of any IDE and I've seen many. I'd go as far as to say that SourceSafe integration in VB6 was done better. Just the whole layout, modal-on-modal returning to the first modal on an error in the second and so on. It's crashed when rebasing a few times too, I don't trust it with larger operations since.

    - Documentation browser is this annoying little window with semi-useful search. But don't worry, the docs in there are useless anyways. I could go on and on about their approach to docs but maybe next time.

    Don't even get me started on performance. Things like switching file tabs should be instant by now but there are still noticeable delays for larger files and IB screens. Plus there's now two kinds of tabs (app-level and file-level) to add to the mess.

  • sgt 6 hours ago

    I haven't been using Xcode continuously for that long. But I recall being a pleasure every time I use it. Except when it crashed occasionally, but that was luckily rare.

    It sounds like OP doesn't like the way Xcode does things differently to other IDE's.

  • Aloisius 4 hours ago

    While I don't quite have the same problems as others have, there are some pain points.

    Stepping through the debugger too fast will sometimes put the debugger in a weird state where step never breaks again and all other breakpoints stop working.

    Git pull through the UI with stash and merge can blow away your local changes if there is a conflict. The changes aren't stashed. They're just gone.

    Xcode likes to sometimes recompile files that haven't changed slowing everything down, sometimes significantly depending on the file. No idea why.

    It can get very confused if you're missing a parenthesis in the wrong place in a SwiftUI View leading to opaque swift compiler errors about code being too complex.

    Even mildly complex use of a swift #Predicate will cause an error about it being too complex forcing you to break them down into smaller pieces and even then it takes far too long to build even on a brand new machine.

    The simulators are quite slow to start/update/run and xcode sometimes fails to shut them down completely when quitting leading to them just continually running eating memory unless you kill the processes manually.

    The simulators also are really limited in their functionality. No background processes, spotlight, network degradation simulation, out of memory killer, etc.

    The profiler sometimes just fails to start an app correctly, immediately ending a run forcing you to close the profiler and reopen it again before it'll start working.

    Symbol refactor (rename) can be painfully slow where the UI just locks up until it can find all the references.

    Xcode likes to duplicate package dependencies in xcodeproj. It just creates new hashes for the same library and adds it as a dependency over and over again, so when the link phase happens, it adds libraries repeatedly over and over and over again unless you manually clear them out. Not sure what causes this, perhaps updating the version or merges between users.

  • bromuro 7 hours ago

    I also enjoy working with XCode. It has glitches and it is a bit slow, but I love the look and feel and it I am positively inspired working with it.

  • semiinfinitely 7 hours ago

    its almost tautological that a person who has been using xcode for 10 years would be incapable of seeing any flaws in it

  • snarf21 6 hours ago

    If nothing else, an update to the pbxproj file format would be life changing. Most of my time fighting git is dealing with project file merges.

    • ninkendo 3 hours ago

      It’s so great when the files on the navigator pane aren’t sorted, and then if you right-click sort, it rewrites half your pbxproj file and you get merge conflicts everywhere. So then nobody sorts the files because they don’t want to deal with it. Why can’t the sorting be a view thing that’s independent of the contents of the project file? Who knows.

      When I used it in a team, I had to write a build step that would fail the build if the pbxproj file wasn’t sorted. (Plus a custom target that would sort it for you.) It was the only way to make sure it never got unsorted in the first place.

    • seankit 6 hours ago

      as of Xcode 16, the default uses actual directories for folders instead of file references in the pbxproj file, which eliminates those annoying merge conflicts. at my work it took a bit of effort to move the project over to using folders but it was 100% worth it.

  • perplex 6 hours ago

    Xcode is abysmal on a large codebase. Freezes constantly on operations. The most useful features stall the entire program, things like: test navigator, quick open files, debugger, etc..

    But I agree that Xcode runs fine on small projects and recent version feel stable compare to past releases.

  • st3fan 6 hours ago

    It has become a meme to complain about Xcode. When I ask devs what they don't like about it it is usually very subjective or a misunderstanding. Take it all with a grain of salt. It is one of the most advanced and amazing IDEs out there IMO.

  • indycliff 7 hours ago

    There is barely anything wrong with Xcode. I'd rather it than the bloat that is Android Studio or Visual Code. Haters gonna hate. I also write apps for every Apple platform and really no complaints except I wouldn't mind a better Vim mode (it does however suffice!)

  • jbm 5 hours ago

    I sometimes have to build code for the apple watch. Getting it to pair with XCode is incredibly frustrating and is the opposite of what you would expect.

  • ibero 4 hours ago

    putting a build on your own apple watch is horrific.

    it constantly disconnects, requires restarts and other nonsense techniques. i legit do not know how you can not be running into these problems if you are developing on those platforms.

markbao 7 hours ago

This is not hype-chasing. AI is a key part of software engineering now. For this to be absent from Xcode would be an existential risk for the future of the product.

  • bigstrat2003 6 hours ago

    > AI is a key part of software engineering now.

    It most certainly is not, lol. That's the hype that the parent was referring to. Most people have found AI to be a detriment, not a benefit, to their work.

    • ed_mercer 3 hours ago

      Then how do you explain the massive growth of Claude Code?

    • periodjet 6 hours ago

      You’d have to be deeply ensconced in a particular kind of bubble to hold this belief.

      • vor_ 12 minutes ago

        Speaking of bubbles...

      • gloosx 6 hours ago

        ...or you have to be deeply entrenched in another kind of bubble to believe the opposite xD

  • isodev 6 hours ago

    > AI is a key part of software engineering now

    No, it isn’t. There are irresponsible voices in the community who claim that it is, but they always find convenient ways to omit the downsides (on both the tech and effects on society as a whole).

  • [removed] 7 hours ago
    [deleted]
  • eptcyka 7 hours ago

    Claude Code from the terminal is servicable enough. Yet I cannot open the same project from different versions of Xcode without some manual finnagling. Xcode is at no existential risk for it is the only tool you are allowed to use to reach your audience on the app store. Don’t be ridiculous. The reason Xcode is as broken as it is today is because of the same exact reason. The developer experience need not be great, as long as you can coax the trash fire of a toolchain to upload a signed app to AppStoreConnect, there is 0 incentive for Apple to put any time into the tool.

    • neutronicus 7 hours ago

      For a certain-size project it really is not.

      Single files in our codebase already blow the Copilot query token limit.

      Great, Anthropic taught Claude to grep. On our project, it's still useless because it can't use the semantic search in the IDE.

      • gbalduzzi 6 hours ago

        > Single files in our codebase already blow the Copilot query token limit.

        This tells more about your code quality that about copilot, and I'm not a fan of copilot

gwking 8 hours ago

For the record, I started using Xcode before it was called that and people have said this almost every year since. As I recall there was a big hit to its quality when they converted it to obj-c’s short lived garbage collection, and it felt like it never got back to reliable after that.

  • andrekandre 3 hours ago

      > converted it to obj-c’s short lived garbage collection
    
    that was around xcode 4 iirc, that was when interface builder was ducktaped (or maybe i should say intermixed) with xcode (née project builder) to disastrous results in terms of performance... its never really recovered imo...
emchammer 8 hours ago

A lot of macOS needs that. There are some terrific ideas under the hood, but it’s as if people left halfway through implementing them.

  • embedding-shape 8 hours ago

    It's a damn shame, the hardware is pretty amazing and I wish they just had like one person who cared about Linux working at Apple and then make a small promise to not rugpull Linux users.

    • ndiddy 7 hours ago

      I think one thing that shows Apple's position towards open source in general is that they don't allow their employees to work on open source projects in their own time and using their own equipment. Before anyone brings up that California labor code provision, it has a carve-out for "activities that relate to the employer's business". Since Apple is big enough and has their fingers in enough pies that they can credibly say that virtually any open source projects developed by Apple employees are related to their business, I would be wary about fighting them in court over this.

      • 9dev 6 hours ago

        This is such a ridiculous rule, it should make silicon valley collectively reach for their torches and pitchforks. Why would you ever accept something so egregiously overreaching like an employer dictating what you can do and cannot do, in your free time, with your own equipment??

      • jajuuka 6 hours ago

        I don't think this is it. I can only find one tweet from an Apple employee who said that they can't work on OSS and was looking for new maintainers. I am not sold that this is the whole truth.

        I think the bigger issue is contributing to OSS for putting Linux on a Macbook for example could be considered leaking company secrets since you would have access to internals. I find it hard to believe that Apple would go after someone for making a open source calculator app.

egorfine 8 hours ago

Bugfixes won't make shareholders happy while shoving AI down our throats will.

  • doug_durham 7 hours ago

    In what way is "AI being shoved down you throat"? Did you think that SwiftUI was shoved down your throat? Did you think that CoreData was shoved down your throat. Perhaps develop a more nuanced critique.

    • egorfine 7 hours ago

      > In what way is "AI being shoved down you throat"?

      Ask Microsoft, they have much more experience with that.

      > Did you think that SwiftUI was shoved down your throat?

      On a scale of 1 to 10, it has been shoved down our throats at level 1 or maybe 2. Thankfully it's optional.

      > Did you think that CoreData was shoved down your throat

      No.

      > Perhaps develop a more nuanced critique.

      I believe most people who used Xcode perfectly know what I'm talking about.

      • doug_durham 3 hours ago

        How are you forced to use it in Xcode? If you don't opt to use it then you don't see it.

        • dmix 30 minutes ago

          I saw multiple comments on HN complaining about Firefox adding AI. I use FF every day and what happened is there was a single popup asking you if you want to opt in to try using it next to an icon you can hide. In the year since I said no to both I haven’t been bothered once.

          People just like to complain

    • lenkite 7 hours ago

      > In what way is "AI being shoved down you throat"?

      This is a very strange question. It more correct to ask "In what way is AI NOT being shoved down your throat".

      > Did you think that SwiftUI was shoved down your throat?

      Yes

      > Did you think that CoreData was shoved down your throat.

      No

    • stalfosknight 7 hours ago

      Copilot being added to the Xbox app on iOS is the latest ridiculous example I've seen of AI being shoved down everyone's throat.

      • andrekandre 3 hours ago

        it really is getting ridiculous; atlassian has this other totally useless ai called rovo that invents events/meetings and notes when it tries to summarize a tree of documents and offers random useless "suggestions" for jira docs...

  • XenophileJKO 8 hours ago

    So you're still in the anger phase?

brokencode 8 hours ago

Idk, I feel like these coding assistant features aren’t that hard to add, but can provide a lot of value to developers. Most or all popular IDEs now support similar features.

I don’t disagree that Apple could use a major focus on bug fixing across their platforms right now though.

  • WillAdams 8 hours ago

    Yeah, I'd like to see another OS release like to Snow Leopard (10.6.x) which had as a prime focus simplification and so forth w/o adding many (any?) features.

ddalex 8 hours ago

> Xcode really needs a couple of years of pure bugfix

Claude code 8 hours later: It's done, mate!

  • walt_grata 8 hours ago

    Come on Claude, making it not start isn't the same as fixing the bugs

  • [removed] 7 hours ago
    [deleted]
briandw 8 hours ago

True that Xcode needs yet another rebuild from scratch. If they forked it and abandoned the old project file and went with a swift first approach, could work. However adding support for Claude is still a huge win. Could lead the way to making the transition to a sane IDE possible / reasonable. This would require leadership that’s completely absent at the company.

  • vor_ 9 minutes ago

    Why would being "swift first" affect anything? Why do you assume Xcode isn't already full of Swift code?

  • embedding-shape 8 hours ago

    > If they forked it and abandoned the old project file and went with a swift first approach, could work.

    Ever attempted this before at a large company and had success with it? I think I can count four times so far in ~15 years where people attempted to rewrite something medium/large-scale from scratch around me, was a success once, although scope was drastically cut at the end so almost a stretch to call it a success.

    • briandw 7 hours ago

      You are of course correct. It's not likely to succeed. "Could work" doesn't mean high chance of success. I was trying to imply the opposite. It's just that Xcode has so much baggage that the previous attempts have been very compromised.

    • neutronicus 8 hours ago

      In this particular case they just need to release a tool that properly generates compile_commands.json and .clangd from a .xcodeproj.

      Boom! emacs is the IDE now. Bonuses all around.

josteink 6 hours ago

> Building castles in the sky while the foundation is rotting away :/

It's not even rotting away. It was never completed.

It's XCode 26, and you still can't have the navigator and tabs work like in all other software on all other operation system, also including MacOS.

It's absolutely bonkers, and one of the reason's I decided to use Emacs if possible when working on "XCode projects".

XCode is good for project-reconfiguration and step-by-step debugging, but as an editor it's absolutely unusable.

[removed] 4 hours ago
[deleted]
cosmic_cheese 8 hours ago

A full rebuild might be throwing out the baby with the bath water. As someone who’s been using it since it was known as Project Builder, bugs seem mostly concentrated in the XIB/Storyboard editor (formerly known as a Interface Builder), SwiftUI live preview, and SwiftPM package resolve.

In a project with code-only UIKit, only a smattering of SwiftUI for small components, and minimal dependencies, Xcode isn’t too bad of an experience and I’d say comparable to and in some ways better than Android Studio (that localization XML editor, not mention Gradle… ugh).

  • sunnybeetroot 8 hours ago

    Refactoring works half the time, Android Studio is much more stable for basic developer tooling.

    • ZenDroid 8 hours ago

      Because it's developed by JetBrains (with Google contributions), a company whose main business is writing really good IDEs. Apple on contrary is a hardware company that happens to build software. If they had delegated the XCode development to JetBrains, we would have had a great IDE for macOS/iOS development too. AppCode was damn good with zero support from Apple side, and despite the fact that JetBrains always needed to catch-up with Apple's breaking changes.

    • cosmic_cheese 8 hours ago

      I've not found Android Studio to be particularly amazing for those kinds of features either. Sometimes they work, sometimes they half-work, and on occasion I've had them do the wrong thing entirely.

      A lot of refactoring work across both platforms ends up being manual one way or another.