back
1 comments
Yes, I've heard it many times.

How is that a counterexample? Bizarre syntax alone is not enough for the Blub paradox. I don't know anyone who seriously argues that Obj-C is a more advanced language than Java/C++, so Blub doesn't apply.

You should get around more.

Objective-C object-orientation via dynamic messaging is much more advanced/powerful than the Abstract Data Types available in C++ and Java. It enables such features as target/action, NSUndoManager, Higher Order Messaging, distributed objects...and their concise implementation.

If you don't understand dynamic messaging and see Objective-C as just a way of doing things that you would do in Java or C++, then I'd agree that it is less advanced at doing those things.

Blub.

This is entering highly subjective territory.

The consensus is that Objective-C's brand of OO is not particularly advanced, and Objective-C as a language is definitely not considered advanced. Keep in mind Paul Graham's essay had Lisp in mind, not a C derivative.

Nevertheless, the post that sparked this thread was a comparison between Swift with Obj-C. Now, even if you consider Obj-C an "advanced language" (which most people do not), it's completely unreasonable to think that a programmer looking at both Swift and Obj-C would disregard the latter because of the Blub paradox. It would be highly... let's say nonstandard to consider Obj-C more advanced than Swift.

Not Blub.

On the contrary, it is well known that ObjC and related languages represent a different strain of OO than Java or C++. In fact, people has gone so far as to say that C++/Java don't really represent "real" OO at all.

It should be obvious that ObjC belongs to the Smalltalk linage, which is quite different from C++/Java. Unless you have understood why Smalltalk is still held in high regard, you haven't understood the language.

Where is a good place to learn about this style of OO?