manton
manton

Whenever I create a new file in Xcode and choose Objective-C as the language, I laugh a little. Am I creating more technical debt or am I saving countless hours of time not dealing with the sharp edges of half-baked new tech? Zig when they zag.

|
Embed
Progress spinner
frankreiff@mastodon.social
frankreiff@mastodon.social

@manton As a Mac developer since 1994.. I’d say that Swift has been out of the half-baked stage for a few years now.. and that even on the Mac 😎.

When I drop back into Obj-C these days, I’m struck by just how weird it is.. with all its semicolons, header files, etc.

I’ve still got 20 years of Obj-C code in my apps, but I’m much happier in Swift despite its over-enthusiastic correctness fetish.

It’s much easier to write clean code, which isn’t always quite the same as writing simple code.

|
Embed
Progress spinner
the
the

@manton MFC FTW! 😄

|
Embed
Progress spinner
jmwolf@mastodon.social
jmwolf@mastodon.social

@manton IMO, Swift is fully-baked if you avoid the very latest language gizmos, and I much prefer it to Obj-C.

SwiftUI either hasn’t gone in the oven yet, or they put it in before adding all the ingredients.

|
Embed
Progress spinner
bwebster@mastodon.social
bwebster@mastodon.social

@manton

Zoidberg saying “Why not both?”

|
Embed
Progress spinner
tewha@appdot.net
tewha@appdot.net

@bwebster @manton I like to think that either, but I think I’ve established myself as a foolish optimist.

|
Embed
Progress spinner
manton
manton

@frankreiff I agree, Swift is mature and I like it. It's more SwiftUI that I'm always hearing people run into problems with very basic things.

|
Embed
Progress spinner
manton
manton

@jmwolf Yep, that sounds right. SwiftUI was such a different architecture, I'm honestly surprised it works as well as it does. Still avoiding it except where required.

|
Embed
Progress spinner
dejus
dejus

@manton I avoided SwiftUI for a while, like I did for Swift for the first few years, but nowadays I prefer using SwiftUI. I have decades of legacy ObjC AppKit, but SwiftUI is the way of the future. But yes, when you hit a wall, it can be a big one. I can usually find a solution online, though.

|
Embed
Progress spinner
muncman
muncman

@manton I’m a long-ish-in-the-tooth developer (pro since 1997), so I’m always curious about this kind of stance. How unproven was AppKit when you jumped in? Did it have analogous “rough edges” in the early days?

Honestly asking / curious.

|
Embed
Progress spinner
manton
manton

@muncman It's a good question. When I started with AppKit, it was already far along from the NeXT days, but it wasn't as full-featured as it would become when integrate into the Mac. I mixed AppKit and Carbon for a while. Except for widgets, I don't see much new with SwiftUI that is comparable.

|
Embed
Progress spinner
muncman
muncman

@manton Thanks for the answer+insight! 🙏

I feel like my “old man perspective” has served me quite well (so far!) when adopting “the latest & greatest/cutting edge.”

Still, as an independent consultant at least, I’ve seldom felt I leapt to “the new” too soon, as everything has some warts to it.

|
Embed
Progress spinner
muncman
muncman

@manton In any case, I think —as always— context wins for new-v-old stuff like this.

|
Embed
Progress spinner
frankreiff@mastodon.social
frankreiff@mastodon.social

@manton Absolutely. Not really an option for macOS at all yet, but I also think it’s ultimately a blind alley even though Apple is fully invested in it. Declarative programming (just like visual prof.) always sounds like magic, until you realize that the internal workings of the engine is actually crucially important. Then the whole house of cards collapses and you add annotations, etc but it’s still a black box that makes debugging, scaling and performance tuning impossible.

|
Embed
Progress spinner
frankreiff@mastodon.social
frankreiff@mastodon.social

@manton Worst of all is the fact that a minor change in your declarations can have huge performance impacts, so your code is now always fragile.

|
Embed
Progress spinner
In reply to
manton
manton

@frankreiff That is something I've wondered about... Declarative is so different. I'm not sure it's actually better. I embrace it with React Native because the win is cross-platform mobile apps. Personally for me, iOS + macOS (and worse Mac apps) is a harder trade-off.

|
Embed
Progress spinner
frankreiff@mastodon.social
frankreiff@mastodon.social

@manton CSS and SQL are the most universally used declarative languages.. and while they work, actually dealing with them is rarely as straightforward as “just express what you want”. For SQL there are literally jobs that consist of optimizing query performance despite the whole point of it being that “the engine can just figure out the details”. CSS is very powerful, but it’s also fiddly and fragile.

|
Embed
Progress spinner