Xcode being loaded on my computer causes something akin to a kernel panic.
Not the fun kind where you get to read a backtrace and feel something. The existential kind.
Every time it hijacks a .json or .xml file association, I experience a rage that hasn't been matched since the Emacs/vi wars ... and at least those were about editors that could open in under a geological epoch.
I just want to look at a text file with pretty print.
I do not need a 12GB IDE to render curly braces. cat has been doing this since 1971. Dennis Ritchie solved this.
Why, Apple, in 40 years, could you not ship a lightweight dev-oriented text viewer? You had NeXTSTEP. You had the DNA of the most elegant Unix workstation ever built.
And you gave us... this behemoth? An app whose launch time rivals a full Gentoo stage 1 install ( see: https://niden.net/post/gentoo-stage-1-installation )
TextEdit is not the answer.
I've used Xcode for native iOS development and honestly, once you get past the Stockholm Syndrome phase, it's just fine.
- The interface is learnable.
- The debugger mostly works.
But the load times -- on every high-end MBP I've ever owned -- suggest that somewhere deep in the Xcode binary, there's a sleep(rand()) that someone committed in 2006 and no one has had the courage to git blame.
FWIW, I fear someone here tells me I've been missing a launch flag. Alas, it's my truth and I can't hold it in anymore.
To set file association stuff more easily than with the Finder GUI, you can run (with https://github.com/moretension/duti):
duti -s com.apple.textedit public.${whatever} all
Where ${whatever} is in {plain-text, json, source-code, ...}. I'm sure there's a way to automate this through parsing `lsregister -dump`, but have a script I run on every Mac I have that sets TextEdit as the default instead of XCode for a bunch of file types :-)You're being too kind. It feels like a 8 cores worth of parallel busy loops to me!
I bet Alan Dye insisted they put it in there so users can pause their busy to gaze at and appreciate his artistically minimal unpainted Liquid Glass window frame.
As far as Apple providing anything, why are they the expected ones providing it? There are a gigabazillionumpteen text editors that can reformat JSON. I have Xcode, and have associated JSON with a different editor. Not once has it ever changed on me.
I believe that “Get Info”->”Open With”->”Change All…” still works, and there are command line methods or third party tools.
This has driven me to madness too.
I know the procedure.
The issue is that Xcode updates and macOS updates tend to reset those associations back. There's a long-running Apple Community thread titled literally "Stop hijacking file extensions with xcode" ( https://discussions.apple.com/thread/253702137?sortBy=rank ) and another I saw recently where a user documents their .md associations reverting after closing their laptop lid.
It's not universal, but it's not delusion either.
The deeper annoyance is extensionless files and edge cases -- log files, build artifacts, random output from scripts ... where there's no clean association to override.
Those fall through to whatever macOS thinks is clever, which is often Xcode.
As for "why should Apple provide it" -- because the company was founded by a guy named Steve who believed that details and care matter. Someone who said how the insides of a computer looks is as important as the outside and nagged his partner until the circuits looked right in their home-brew project.
Also yes, fair point, I should just fix it and stop complaining.
I failed at that today. Please forgive me.
I don't know how did you achieve it, but I was doing it countless times.
Open with -> other -> enable all applications -> always open with.
For a short while it works, but somehow, something always reverts it back to xcode. Maybe it is restart. Maybe it is little evil cron job discreetly changes it back to xcode, but I was never able to get rid of it. It is happening to me on many different machines since Sierra. One calm day I casually double-click an STL or JSON and it prompts me to install some xcode packages, and I get angry at the machine.
They are the same Info.plist format as every other MacOS application.
But the best part is what it DOESN'T install when you think you've updated. You get on a plane and settle in for some work, only to be prompted to download and install a bunch of required crap you weren't told about. OH WELL, says Apple, your time is FREE!
I'd be a lot more interested in hearing what people think about this development, what it means for code privacy, how are the context windows handled, can it be enabled per-project, etc.
Nowadays all my development work happens in vim and I’ve happily not opened an editor like IntelliJ or VS Code in 5+ years.
I prefer writing in vscode instead and only using xcode to compile and debug.
Back then Apple had made waves introducing Safari, which was not only great and cross-platform, but had an open-source renderer (WebKit), and JavaScript engine (JSC). Safari was crushing web standards while IE lagged, seemingly trying to purposefully choke the web to stop it from canibalizing Windows software. Apple was betting on web: one of the big features on their brand-new Mac OS 10.4 Tiger was the Dashboard with widgets that were all built with HTML/CSS/JS, and they were shipping a new, free IDE (Dashcode) to build them too.
Mac OS X was heavily marketed for being UNIX vs Microsoft's proprietary and closed Windows NT. They were building Safari and iTunes for Windows, and had just introduced the first Intel Macs; it seemed like they were out to put a fight against a very closed, very walled, and very incompatible Microsoft who had gotten too comfortable with the Wintel and IE monopolies.
Fast-forward two decades, and not only can you now run a native GNU/Linux environment on Windows, but the best IDE out there is web-based and open-source Microsoft software while Apple lags behind on developer experience. They seems to have missed the bus on web technologies too. They went from leading charge with a stellar browser pushing web standards forward, to being an obstacle out of fear Safari might canibalize iOS software.
Apple hasn't gone full early-2000s Microsoft (thankfully) and Microsoft hasn't gone full early-2000s Apple (unfortunately) but times have really changed.
I developed some simple macOS apps as fun side-projects back in the early 2010s but then very much switched to web; the tools are a big reason why.