ObjC is so hard to read!!! Meanwhile…
I'm stuck in Swift land for at least the next week, so expect a lot of moaning and groaning. There's for sure some parts that I like about it, if they had a version with maybe 1/4 of the features (i.e. needless complexity) I might actually say I'd enjoy using it.
Yesterday's Swift week highlight was spending at least an hour trying to find the right annotations to tell the compiler/concurrency stuff what a couple methods do threading wise. Turns out I had the right combo from the get go but it’s broken in both Xcode 26.2/4 and fixed in the .5 beta. Couldn't tell in older Xcodes because Apple blocks old Xcodes from running in current OSes for "reasons”.
Swift's concurrency approach is emblematic of its complete lack of pragmatism. Runtime sees hey I think this code is running in the wrong thread (or context if you must) what do I do? Warn and ignore, because it's probably OK 99% of the time, nope. Warn and correct, because you have enough info to infer what is probably needed, nope. How about crash 100% of the time, yep, that's the one.
Generate Fix. “I’m removing the code.” Thanks AI!
Just to prove that I don't always just complain, the Expand Macro feature of Xcode/Swift is pretty cool.
I spent a good part of this week fighting with Shortcuts. Shortcuts are conceptually simple, take a thing, give a thing. I don't know if I'm missing something fundamental (that's also not clearly documented anywhere) but what a freaking nightmare when "thing" isn't just a simple String/AttributedString. There's a Transferable protocol that's supposed to magically convert between types but the Shortcuts app doesn't seem to call it unless the user does extra stuff when passing variables around.