News for hackers. Stuff that matters.
Re:Bringing Objective-C to the Amiga by mpweiher on Monday April 23, 2018 @09:08AM (#16903055)
Fantastic rant! Can I borrow it?

I'd like to add a category:

People that are aware of Objective-C's limitations and want(ed) an actual improvement, not the 1 step forward (sort of), 3 steps back that we got. And they were pretty close, even got it in the marketing slogan: Objective-C without the C. Or at least without most of C much of the time. Or some. Instead they consistently doubled down on the things that were the least useful, for example structs. With classes and primitives, structs were always an extra, needed only for backwards compatibility and, historically, performance. What do they double down on? Structs. WTF?

The mix of Smalltalk keyword syntax and C syntax was always a bit of a problem. So let's keep both and make the integration between the two even more awkward!

And so on.

See also Rob Rix's rant:

https://www.quora.com/Which-features-overcomplicate-Swift-Wh...

Crucially, the vast majority of this is incidental complexity, not essential complexity. Swift is a crescendo of special cases stopping just short of the general; the result is complexity in the semantics, complexity in the behaviour (i.e. bugs), and complexity in use (i.e. workarounds).

Note that this is coming from the other side, so someone who doesn't like Objective-C much at all, and even from that perspective, Swift falls short.

Re:Bringing Objective-C to the Amiga by jmpt on Tuesday April 24, 2018 @04:45AM (#16910955)
Of course you can borrow it :) It's not very articulated. Just an early morning brain-to-keyboard dump.

I would count myself on your added category. Objective-C has been mostly unchanged for decades. I wanted an improvement, even if a breaking improvement.

We got properties and dot notation, which I was skeptical of. I saw a lot of misuse of those (specially with slower than O(1) accesses.) They were supported to signal intent, but instead were used as a shortcut.

We got ARC, which I must admit is useful for a large segment of developers, even though it creates a false sense of not needing to understand memory management and bites people left and right with circular dependencies. The good thing about ARC is that you can use it on a per-file basis and you can still do the performance sensitive parts with MRC.

The magic isa optimization was good.

But these were either small syntactic sugar/quality of life or internal performance optimizations. None provided significant leaps forward.

Apple could have picked Objective-Smalltalk :) And poached Lars Bak from Google.

Swift's slogan is great, but it's misleading. I read Rob Rix's rant shortly after he wrote it, and it was on the mark.