The second, also yes.
The third, also, also yes.
It has all sorts of bugs and weird fail cases.
Honestly you should just search the internet for testimonials because anyone who uses Xcode can create a list of issues rather than rehash them all here in response.
So many features and linters and tools end up building a huge cognitive overhead, which is the primary reason I haven't been touching JS since a few years. The JS world piled up so me sh*t in order to make the working with JS something that is not, that I found myself not having energy and time to do something other that setting up tools and frameworks.
What I want is to be able to start coding like start writing an article in a Word document and Swift Playgrounds is getting there. XCode was good too but wasn't anything special, Swift Playgrounds is amazing.
I'm especially excited for WASM, so maybe I can just write everything in Swift eventually.
2) It's extremely buggy, like on a daily basis where something just doesn't work for any apparent reason that is usually either fixed by killing Xcode or removing derived data & then killing Xcode
3) Lack of plugins for even the most primitive of features like autoformatters
4) XML for build configs inside .xcodeproj
5) Why does it take half a day to update through the App Store?
I mean it has some nice features functionality-wise, such as the metal debugging toolkit, but the experience of actually coding in it is abysmal. Like so bad that I've been doing as much of my Swift work in VSCode as possible, which Xcode actually prevented for a while due to a bug in how it handled local Swift packages.
The bugs can be annoying but they usually go away after restart and cleaning the junk.
> 5) Why does it take half a day to update through the App Store?
But this one is really annoying. Also for some reason in downloads and installs TWICE.
2) yes
3) I don't really use plugins in IntelliJ either - I do in VSCode but only because it's pretty useless without them
4) Not sure what the problem is with this, but I will say I prefer Package.swift projects for anything that isn't targeting a UI runtime
5) App Store update process just doesn't play well with 8GB applications. Either delete it and re-install from App Store or use something like Xcodes.app
Although I miss github copilot a bit when I do it.
SourceKit can get really grumpy with things like deeply chained optionals, deeply nested blocks, and lots of casting or otherwise fighting against the type system. Not doing those things makes it run significantly more smoothly. So if Xcode starts bogging down or SourceKit is crashing, it means there are probably cleaner ways to write whatever I’m currently working on.
I still have no idea how I can quickly switch back and forth between open files. Either the feature is entirely missing, or completely unintuitive to discover and/or use.
For the record, I am writing this message in 2023.
These days I typically use cmd-control-left/right to navigate the open file history and then cmd-shift-[/] to navigate open tabs.
Also worth noting that you can find these in the Navigate menu if you want to peruse all the options.
It’s extremely slow on high-spec MBP.
It sometimes takes developers over 14 hours to update.
It interferes with other command line tools, forcing itself into the middle — if you’ve ever tried to run git on a fresh MBP and run into the xcode-select install step, you know this one. It’s a bad citizen.
Installing XCode will cause a perfectly functional machine heavily used for development in VSCode to experience several full crashes until it fully takes over the machine. MacOS with and without XCode appear to be two fundamentally different operating systems.
Having XCode running for any amount of time saps battery like nothing else. You can run VSCode for 24 hours on a MacBook Air with M1 for maybe 3 hours in XCode.
The git integration is so utterly crap and broken that it’s safer to turn it off rather than fighting the secret intermediate repo cache that it hides from you and sometimes forgets to update.
For some idiotic reason, creating a new file in XCode prepends the file with a comment block including the name of the file, the date, and the name of the user. Who asked for that? For a file that’s part of a repo that’s going to be touched by multiple people over a long period of time and likely renamed, this is just obnoxious noise.
However you might have some other issues with your system because I practically never close Xcode and I’m having like +10 hours of battery life on my M1 air. This includes actual work being done in Xcode.
I do regularly find that mDNSresponder has been sending and receiving 100’s of GB over the network and must be force killed. When that process goes off the rails, it also saps battery.
I wish that I didn’t have to keep Activity Monitor open at all times on both machines just to keep ahead of the problems. It’s not like effectively running top is cheap.
This is standard corporate policy at most/all big software shops. Apple uses Xcode internally, so the format and contents probably reflect their policy.
The block can be customized for your policies -- or removed completely, if preferred.
With VSCode, do you get live preview?