Friday, November 24, 2006

Qt, Interface Builder and "Modern C++ programmers"

I just don't understand what it is about some people. While reading slashdot, I came upon this article at regdeveloper and I'm thinking to myself that it's nice to see another crossplatform library, aside from GNUstep, in the open source world, but when I get to page 3 the author pops up with this little tidbit:
In fact, on the Mac, I find the combination of Qt and C++ far more intuitive than the weird Objective-C language and the frighteningly non-intuitive Interface Builder.
Whoa there... did he just say Interface Builder is unintuitive? Wow.... of all of the lame brained things I've heard Qt developers say, this really tops the list. If you take a look here.. you will see that it is quite easy to learn InterfaceBuilder, or alternatively, GNUstep's Gorm.

Interface Builder is built on one basic principle: making connections between objects. That's really it. Everything else is peripheral. "Modern" C++ programmers complain about Objective-C because they are completely convinced that C++ personifies what is meant by Object Oriented Programming. In fact, quite the opposite is the case. The person who coined the phrase, Alan Kay, has specifically said that when he did so he was NOT referring to C++:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.
He, in fact, had Smalltalk in mind. Objective-C, for the uninitiated, is a dialect of C which incorporates some Smalltalk like features. So, as you can see, it is not the weirdness of Objective-C or the "non-intuitiveness" of InterfaceBuilder, but it's really the closed mindedness and relative stupidity of most "modern C++" programmers which causes this type of thing to happen.

And, as we all know, it's much less common to be intelligent than to be dumb. Perhaps this explains why there are so goddamn many of them.


3 comments:

Nicolas said...

To be fair, I don't think IB (or gorm) is "intuitive" for creating application; it is intuitive to create an UI (you just drag'n drop the widgets after all), but that's it -- it's not "intuitive" for creating a working prorgram..

..If you don't understand that IB works on the "real" objects, and not an UI description, and that it does not generate code; if you don't understand the principles behind the AppKit (delegates, source delegates, etc), your first contact will be harsh, particularly if you come from a "standard" UI builder mindset (or from any other UI toolkit for that matter).

Even things like how the widgets resize themselves -- look intuitive ? wrong! it's not, if you don't know that the springs represent the way the widget will resize relative to its parent widget.

That beeing said... it certainly does not take a long time to "get it". And indeed, when you do, IB (or gorm) are damn easy to use and fairly ergonomic (I'd have some reserves about the bindings in IB though !), and make programming GUI applications a dream come true.

Much better than other solutions such as QtDesigner, even if, at first glance, it looks "comparable" (and hence why people can be confused by IB -- it looks the same but behave and need to be used in a different way).

But it's not "intuitive" -- it needs an introduction :-) (like everything!)

And I can certainly understand that for a programmer used to "classic" UI builder, IB looks counter-intuitive (ironic to call them "classic" considering IB was one of the first UI builder back in 1985)

cbv said...

How's IB and Gorm not intuitive?

Back at the university, I was introduced to the (that is my) first UI builder -- Delphi (I know, I know)...

It took me almost a week to figure out how to properly use it.

Later, when I stumbled upon IB/Gorm, it took me just two hours to figure it out.

halfactivist said...

I have strange feelings towards Qt programming guys, they usually feel like their choice is the best one, and i just don't understand this, it's like the windows guys who think visual studio and the APIs are top class.
I think what's a shame is that most people like to know they're part of a trend and enjoy nitpicking alternative ways.

Objective-C end of life?? Not a chance...

Recently, I saw this article regarding ObjCs "end of life" from JetBrains. The tiobe index seems to disagree. It’s also importa...