Remix.run Logo
jottinger 2 hours ago

OP here: Fair. Yet I'd say that it's relatively rare (while being completely absent in my experience) that anyone would choose ObjC today - and the article even mentions Pascal as a stronger example of the model you use with ObjC. ObjC survives today, as does Pascal, but its strongest impact is through influence, just as with Pascal.

And languages being awkward is entirely a personal opinion, agreed. You might think in ObjC. I do not. There's nothing inherently wrong with either of us on those grounds.

TheOtherHobbes an hour ago | parent | next [-]

ObjC "failed" because it was locked inside the Apple ecosystem, and Apple made no serious effort to change that. Ref counting aside, I thought it was a wonderful fun language. But it was always platform specific in a way that other languages aren't.

Compare with C++ which is widely hated, not because it's virtuosic - it really isn't - but because it's a bug-prone incoherent pile of archaeological standards and object bureaucracy, and most users only work with their own personally curated subset of it.

It's true some people like C++. It's widely used because it runs very, very fast, and trades that for slow compile times.

But some people also like jumping off mountains and trying not to hit the sides. I'm sure it's quite a rush on the way down. But not ideal as a daily commute.

lapcat 2 hours ago | parent | prev [-]

> Yet I'd say that it's relatively rare (while being completely absent in my experience) that anyone would choose ObjC today

There are a number of pragmatic reasons for this. Nobody is teaching ObjC anymore. Apple's documentation is now mostly Swift. Apple recommends Swift (and SwiftUI, despite the fact that many SwiftUI users have found it severely flawed). The job opportunities are mostly in Swift. I would say they're actually the same reasons people adopted ObjC back in the day. (Some other options were available, e.g., Carbon in pure C, Cocoa-Java.) Moreover, some newer Apple API are available only in Swift. Thus, Apple is pushing people into Swift whether they like it or not.

> There's nothing inherently wrong with either of us on those grounds.

Except that the thesis of your article depends on Swift being "more fun".

My belief is that Swift became popular among Apple developers for the same reason that Objective-C did before: Apple promoted the language. People jumped on Swift because they felt it was "the future". Some people were already claiming in 2014 that every line of code you write in Objective-C was "technical debt". Such claims turned out to be absurd, because old ObjC code still compiles and runs, while Swift 1.0 code does not.

jottinger 2 hours ago | parent [-]

Well, the problem here is in your own words: you say `My belief is` - and so it is. I cannot and would never presume to tell you what you believe. Yet I believe otherwise. Swift won on multiple axes; ObjC is still around but feels like legacy to me, much like Pascal does: influential (heck, I use ObjC terminology when describing OO concepts, over Smalltalk!) but not, like, a living language at this point even though its death might be, um, a lot more rumor than fact.

an hour ago | parent | next [-]
[deleted]
lapcat an hour ago | parent | prev [-]

> ObjC is still around but feels like legacy to me

Yes, it feels like legacy because Apple is making it into legacy. Do you not admit that Apple's actions have a profound effect on the relative adoption of the two languages among Apple developers?

I would note that Swift is, like Objective-C, almost nonexistent outside of the Apple ecosystem, even though cross-platform use is possible. Developers who are deliberately outside the Apple ecosystem are generally not interested in a programming language controlled by Apple.

jottinger an hour ago | parent [-]

And yes, you're absolutely right. Apple is making a choice here, and they absolutely have impact on what the developers "get to use" - much as .Net succeeds largely to vendor choices on Windows, too. And developers get to suck it up! That's the three axis thing again: vocation, art, job. Swift and .Net both got a huge kick from the "job" department. That's how it goes.

lapcat an hour ago | parent [-]

> That's the three axis thing again: vocation, art, job. Swift and .Net both got a huge kick from the "job" department.

Granted, Swift got a huge kick from the job department, but what you wrote said a lot more than that:

> A language that makes life hard will not survive past the moment it can be replaced.

> Objective-C was awkward as both art and job, and it thrived for fifteen years because it was the only door into the most lucrative developer ecosystem ever built; the moment Swift existed, it evaporated and now survives as a shadow, preserved in its descendant.

Apparently you're admitting now that "the moment" is a gross exaggeration. You're also admitting that the "art" aspect is controversial, a matter of personal opinions that vary. I'm not sure why you claimed that Objective-C was "awkward as... job" even before Swift existed?

jottinger an hour ago | parent [-]

I wrote that it was awkward because IMO it was. That is indeed "my opinion" - I found the language it used to express concepts far more useful than the language itself, and found myself writing C++ far more often than ever wanting to write ObjC.

lapcat 37 minutes ago | parent [-]

It's unclear whether your last comment is talking about the art or the job axis, the latter of which I just asked about.

I certainly don't see how using C++ would be less awkward on the job for developers than ObjC when the job was primarily calling ObjC system API.

jottinger 29 minutes ago | parent [-]

[dead]