Remix.run Logo
cyrusradfar 2 hours ago

OT: Rant

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.

mikenew 21 minutes ago | parent | next [-]

I like how Xcode installs a bunch of gigantic, multi-gigabyte artifacts for like ios runtimes or whatever, fills up the hard drive, can't update because it's out of space, and then tells me I'm not allowed to delete them because of SIP.

dylan604 2 hours ago | parent | prev | next [-]

I'm confused, how have you not reassociated the files with the app of your choosing? Is Xcode somehow changing associations back? Does it do it only at updates?

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.

bandrami 34 minutes ago | parent | next [-]

XCode re-associates its preferred filetypes every time you update it, or at least pretty reliably does for me

nerdsniper 2 hours ago | parent | prev | next [-]

There is a way to do it, but it’s not the most typical way MacOS users do it for everything else, which involves Right Click->Open With->Other->Always Open With. Xcode’s file associations are super aggressive.

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.

dwaite an hour ago | parent | next [-]

> Xcode’s file associations are super aggressive.

They are the same Info.plist format as every other MacOS application.

c-fe 2 hours ago | parent | prev | next [-]

select in finder the file that currently opens with XCode, then press Cmd+i. It opens the information panel. There in the Open with section, you can chose the app and then also Change all to not use XCode.

crazygringo 2 hours ago | parent | prev [-]

Not something I've ever experienced. Open As... Always works just fine.

gloosx an hour ago | parent | prev | next [-]

>Not once has it ever changed on 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.

cyrusradfar an hour ago | parent | prev [-]

You're right that you can fix it via Get Info → Change All.

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.

aniforprez 2 hours ago | parent | prev | next [-]

There was a time I was interested in building for MacOS. Installing, opening and trying to use Xcode killed that pretty quick. I've never seen an IDE this behind in terms of usability from the competition.

reactordev 27 minutes ago | parent [-]

This is why people hate porting to Mac. Because at some point they need XCode and XCode is horrible.

olivia-banks 2 hours ago | parent | prev | next [-]

I agree with you, it's infuriating. I think it's been loading faster recently (maybe?), but it still takes like 10 seconds.

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 :-)
DonHopkins 2 hours ago | parent | prev | next [-]

> sleep(rand())

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.

wlesieutre 2 hours ago | parent [-]

I like to take a few minutes to admire the content underneath/behind my sidebars

an hour ago | parent | prev | next [-]
[deleted]
walthamstow 2 hours ago | parent | prev [-]

The hijacking of file associations is one of the most awful and malicious things about macOS. You can set it to whatever you want, when Apple decide they want to, your CSVs will go to Numbers, JSONs go to Xcode.