Hacker News new | past | comments | ask | show | jobs | submit login

Xcode is trash and I’m very sad that JetBrains discounted AppCode. It made things bearable even if I still had to use Xcode for certain tasks.

My biggest complaint with Xcode is speed. It’s feels incredibly laggy to me. Auto-complete is slow and error reporting is insanely slow. I hope you like typing code and then 5-30 seconds later the IDE shows an error (normally a bad one).

I’ve never had a good experience writing code in Xcode. Often I’ll just open the files in IDEA to have sane hotkeys, my plugins, multiple cursors, and the list goes on and on and on.




The shittiness of XCode and just app development in general for iOS, combined the mess that is Android development, is why I just gave up on native app development. I'm now entirely focused on web development and won't invest any time or effort in keeping up with native app development.

It's sad how the concept of native app leads to walled gardens, instead of the web being promoted and improved to be the primary way to deliver apps. And the web need serious and continual efforts to modernize its of development and use experience, but it is far superior model than native apps IMHO.

Since America just won't do it, the EU should force Apple and Google to allow the experience of using mobile web apps to be on par with that of native apps. At the very least, allow a one click way to add a web app to the home screen easily.


> I'm now entirely focused on web development and won't invest any time or effort in keeping up with native app development.

I can't agree with this more. After having numerous problems with native android development before, I decided to give flutter a go recently for a mobile app idea I've been wanting to do.

After getting byzantine and seemingly unsolvable errors from flutter doctor and gradle for the 3rd time after completely reinstalling it every time, I just gave up and started making an app in tauri instead.


I love the web, I write cross platform mobile apps using web tech (same code as the website) that work 90%+ as well on web vs "native" (sometimes more, sometimes less depending on which features I need). The issue is even less-so with web capabilities (though I absolutely wish more was available) but with customers/client's expectations. I can spend all day telling someone "This website here does everything an app would" and they simply will not care until they see it in the App/Play Store.

I've seen this happen over 10+ external companies that I've worked with. I'll provide a website with the "app" that they can play with and literally 99% of the time they won't even look at it until it's in app form. Same codebase, same UI, same features, it's insane but I've seen it happen enough times to expect it. I think it's partly a prestige thing but whatever the cause, I don't see myself getting away from dealing with Xcode/Android Studio/App Store Connect/Google Play Console. At least Android Studio is built on IntelliJ... and that's about the only nice thing I can say about it (other than thank god it's not eclipse based anymore).


Are you saying these people never use websites for rich functionality, except for accessing brochure-style content?


And Android Studio is even worse (that is weird, the bare IDE is the same as others, but the android apis and tooling overshadow it). And the use of Gradle multiplied it by 1000.


PSA: Turning off the "Enable Source Control" feature has always been a must for me to get decent performance out of Xcode.


Thanks for the tip, I'll need to try it out.

Performance is really abysmal with C++ development and it's the biggest reason for avoiding Xcode for me. Actions such as completion and contextual jumping just keeps lagging on a M3 Pro even if everything should be indexed. VS Code with the usual C++ plugin and CLion have no problems with the same codebase.

I like the integration with different sanitizers in Xcode, some of the visualizations are pretty neat. Instruments is quite good as well.


Interesting, I would/have never managed git from within Xcode so I'll be turning that off for sure.


> Often I’ll just open the files in IDEA to have sane hotkeys, my plugins, multiple cursors, and the list goes on and on and on.

"Sane hotkeys" and "my plugins" are subjective (and suggest that you probably don't use Xcode as your primary editor). And Xcode has had multiple cursors since Xcode 10 in 2018 https://mjtsai.com/blog/2018/04/29/multiple-cursors-in-xcode...

The reason AppCode died is that Apple platform engineers on the whole are very happy with Xcode. Source: I worked as an Apple platforms engineer for a decade across many teams and the person who complained about Xcode the most was always me, and overall I also think it was usually pretty good, arguably great. That is until they added Swift, which always had performance and stability issues (many of the complaints in this thread are fair for Swift support in Xcode). It still worked quite well for me for the C family of languages though (I haven't used Xcode seriously in a couple of years now).

If your going to give your opinion on Xcode, it's a good idea to give a count for years that you've worked in the program. For an IDE I personally wouldn't bother with anyone's opinion that hasn't put at least 1000 hours in the program, and a lot of the comments in this thread sound like people who just opened the program for a one-off task and formed their opinion based on that.

My colleagues for years have been people who live in Xcode, eight hours a day, five days a week, and I've never heard opinions like this thread expressed by them (except for the Swift support).


Ok well you asked. I've been using Xcode for 15 years now professionally. I have two CS degrees and one of my apps was featured on the Mac App Store front page. So, basically, I know wtf I'm talking about.

I detest Xcode.

The latest horrible thing it has done to me is decide to ignore various important Build Settings, throwing them under User-Defined. Doesn't say way. Just pure magic bullshit.

It crashes occasionally, but that doesn't bother me that much. You just laugh at how bad it is and restart it.

Sometimes you'll get some code-signing errors and you just reboot. I kid you not. You reboot and they go away.

Xcode's connection to Xcode Cloud is pretty flakey too. Quite often it will fail to log in. You just restart Xcode and it goes away.

Xcode will display errors that are out of date all the time. I've gotten so good at knowing which errors are just BS that I'm kinda proud of myself.

Previews are useless. They could be so great but as soon as you break one, the debugging experience is so bad, you just give up. Sometimes your project will fail to build with them and the reasons are so opaque you just give up.

The xcodeproj file format is merge hell. It's so telling that tools like Xcodegen exist.

The new LLM-based code completion thing is mostly just amusing. Definitely not ready for prime time.

There's clearly no CI on the template projects because if you archive the Audio Unit one, the swift compiler crashes currently. Wheee!

Nobody uses the git integration on Xcode AFAICT. It runs faster if you just turn it off.

The GPU debugger is quite a crashy mess, though it has gotten better. Still you will not be able to debug your shaders and you'll have no idea why. The GPU debugger doesn't work if you put any MSL code inside a Swift package too. I used to have an icky work around for that, then just gave up on modularizing my project to the extent I would like to.

I experienced the issue mentioned in the article: couldn't add local packages by dragging them in. But somewhere along the line it went away. Don't know why, and I don't have the time to dig into it.

I really should compile a proper list. I'm sure I can think of more, especially if I go through the list of bugs I've filed over the years.

Anyway, now you've heard this opinion expressed by an experienced person. Consider it a data point.


Great list, way different than most of the comments on this thread. I don't see a single one I disagree with. I'd ask though, which IDE do you think is better than Xcode and in what way? My only argument I'd have against this list is it's kind of par for the course for an app of Xcode's age and complexity, e.g., you'd for sure get a similar list from Premiere or After Effects users, or any of the long-standing 3D packages (although, for a counterpoint, Logic Pro and Final Cut Pro users seem way happier, so it's at least theoretically possible to make complex, long-standing applications without these issues).


Before iOS, I was coding animation software on Linux using vim/scons for five years. So no real IDE. But not a fair comparison because we had a build team keeping everything nice. I also ported one of my apps to Windows and Visual Studio never drove me crazy. But I haven't worked with it to nearly the same depth as I have with Xcode.

So I concede that perhaps all IDEs are dreadful. I still hate Xcode.

I know pro users of Logic and Ableton and they never express such a level of displeasure. FWIW, having used Logic, Ableton, FCP, all non-professionally, those apps seem like a dream compared to Xcode.

I think it's likely that if Xcode weren't free, there would be serious competition and iOS development would be better for it. Or perhaps if Xcode were modularized so 3rd parties could use parts of it (Instruments, GPU debugger, memory graph debugger), lowering their development cost so they can compete with free.

I tried AppCode and while it seemed nice (refactoring was good in particular), I kept returning to Xcode to use the GPU debugger IIRC.

So, amusingly, I'm the inverse of your impression: the IDEs I've tried superficially I've generally enjoyed. The one I've used deeply I detest.


Thanks for sharing this! For Visual Studio, I always think of this video https://www.youtube.com/watch?v=wCllU4YkxBk that pretty much just leaves the JetBrains IDEs, which are obviously well loved. I've never had a good first impression with them, so I haven't bothered to get deeper into them, but I also don't have the experience to form a fair opinion (although when I read about what folks like about JetBrains, it doesn't resonate with me, usually it's about refactoring tools, which I don't care about).


Reporting in with my experience with JetBrains IDEs - they are generally OK, but the quality has gone massively down over the last couple of years (some worse than others, Rider has been okay, though new features often just don't work at all). Quoting my own comment with some memorable new issues in WebStorm from last year, written a couple of months ago (with links to the issue tracker)[0]:

- The autocomplete popup sometimes froze the IDE completely (and killing the process caused minutes of data loss), open for close to a year

- Since two months ago, the Typescript language server fails to start in Vue projects (due to a broken update by the Vue team). A fixed version of WebStorm was released yesterday, in the meantime you were apparently expected to search for the error message, stumble upon the YouTrack page, and apply a workaround

- Performance is abysmal in a larger React MUI project, think 10-15 seconds for feedback on code changes, sometimes errors just stick around for a good minute or more

- In some situations WebStorm makes autocomplete suggestions that aren't allowed - think effectively a type T with keys K | L, where Omit<T, K> leads to only suggesting K properties, while removing the Omit makes it suggest both K and L properties

- After updating from 2024.1.X to 2024.2.Y, the window had no buttons for minimizing/maximizing anymore. Now, this was partially caused by my environment, but after I found a workaround it was closed as "Third Party Problem". Still feels like a regression to me, since my environment did not change.

I've mostly stopped updating the IDE, as almost every version brings new regressions in basic editor features. This morning I updated and tried to copy some text. WebStorm showed me a "Copying..." dialogue for more than 30 seconds.

[0] https://news.ycombinator.com/item?id=41939833


Perhaps JetBrains should reconsider AppCode, since Xcode only got this crappy recently. Apparently they didn't get the market share they had hoped for.

https://blog.jetbrains.com/appcode/2022/12/appcode-2022-3-re...


Xcode only got this crappy recently

It gets exponentially more crappy every time, which creates an impression that it only got crappy recently. I remember it doing this since 2010. The usual counter is to stay on the same version until either of you is literally dead.

Although I didn’t find AppCode more useful for my simple tasks. If anything, it felt android-ish in ux, if you know what I mean.


> It gets exponentially more crappy every time

On which ratio scale (https://en.wikipedia.org/wiki/Level_of_measurement#Ratio_sca... ) do you define/measure "crappiness" so that you can say that "crappiness" grows exponentially? ;-)


> since Xcode only got this crappy recently

I've always felt like it was slow and annoying to use personally. At least coming from the IntelliJ world, maybe if you were only in Xcode it was pretty decent until recently.


Same. Coming from Visual Studio, XCode always felt just kinda bad.


They seem to be putting all of their eggs in the Kotlin multi-platform basket.

Might also be why they discontinued it so those devs with iOS expertise could focus on that.


Kotlin which is a beautiful language unfortunately is killed by Gradle which is even worse than Xcode


this might interest you: https://github.com/JetBrains/amper


> since Xcode only got this crappy recently

Xcode has been slow, messy, buggy and all around atrocious to use since day one. Being forced to migrate from MPW and Code Warrior to this utter piece of garbage has actually pushed me to web development.


Officially they never got enough sales out of it, that is why.

So XCode isn't bad enough that developers would consider paying for better alternatives.


Xcode is a really hard one to replace because at the end of the day you pretty much have to use it at least a little bit so some developers will probably choose to use it just so they don't have to use two editors. I'm not aware of many/any other languages/platforms that are that locked down (at least in mainstream programming)


Windows and game consoles.

Yes, there are tons of stuff you can do on Windows without Visual Studio, but then you aren't doing all the scenarios a Windows developer might care about.

There is also that little bit only available in a mix of Windows SDK and VS plugins.


It's remarkably unintutive for tasks that should be even trivial (like splitting an editor pane). Getting acclimated in a basic fashion takes far longer than it should given my experience with every other modern IDE.


Are you using source-based dependencies? Have you tried Carthage instead?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: