Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Post https://news.ycombinator.com/item?id=8367012 suggests that it is actually Swift that is the Blub language...


I don't see how. Being a blub language has nothing to do with ease of use for newcomers and in fact no language can be a blub language. It is more a reflection of the user. If all I know is imperative programming constructs because I've been writing C for 20 years and I start to learn Prolog but fail to understand what constraint logic programming is really about because I'm constantly trying to use imperative constructs in Prolog then I'm afflicted with the blub disease. Neither C nor Prolog is a blub language.


That doesn't suggest Swift is a Blub-like language to me.

Though not explicitly stated in the Blub paradox, I'd say it implies that a fresh programmer, unfamiliar with both Blub and the more advanced language, would pick the more advanced language.

The Blub paradox doesn't automatically apply to every language whose syntax you find bizarre. It also has to be a more advanced language, and the reason that you don't like the language's syntax and constructs must be because you don't understand the advanced features they enable.

This is clearly not the case with Obj-C and the post you mentioned.


No? You've never ever heard Java/C++ programmers complain about ObjC's syntax? I find that... unlikely. http://bit.ly/1CqrYY4


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?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: