Post a Comment
Buck's discussion of coupling -- interdependencies between classes -- is pure gold.
This, to me, is Objective-C's greatest selling point: the whole point of objects is that they are black-boxes that behave according to a protocol. Since dispatch is built-in, you also get reflection virtually for free.
Typing, OTOH, is a poor substitute for a protocol. Achieving the same degree of genericity and reflection in C++ requires boost::any{_*} or class factories ..
The second greatest selling point is that the syntax to effect this messaging paradigm is so elegant; I agree with Buck about the "." accessors ...
Not if you mostly write OpenGL programs. If you need to write GUI apps, you can install Mac OS X in a virtual machine.
Plan on not surpassing your investment to do sell an iPhone app? You have low business expectations and a poor business sense if you don't write down that investment.
I'm not a business, this is just a hobby app I created on Palm (note-taking program, won't promote myself here by giving the name or URL). I never made any money on it, mostly broke even. I would just like to learn iPhone development, but there doesn't seem to be a cheap entry point, unlike in the Windows or Linux world. I am a professional developer during the day, but at night it's mostly for fun.
Not even close.
GNUstep and EtoileOS are no where near ready to make one want to develop for it and OS X.
I'm sorry but the Smalltalk focus on EtoileOS is a waste of effort when it should first sync up Foundation and AppKit on par with at least 10.5.
This is so true.
After developing in at least 5 GUI toolkits on various platforms in C++, I found Qt to be far and away the best choice for developing UI. The other toolkits required a lot more work to achieve simple things and lacked the runtime dynamism required for modern, adaptable user interfaces. Part of this was due to the toolkit design, most of it was due to the static nature of C and C++. Qt leverages its meta-object compiler to achieve useful constructs like runtime dispatch and reflection/introspecition.
When I started developing in Cocoa for Macs, I had that "a ha!" moment where I could see where a lot of the clever Qt constructs had been inspired. Some people deride Qt for it's preprocessor for reasons of language purity rather than pragmatic reasons. In my opinion, it's what makes it truly dynamic and suited for UI development.
Roughly equivalent concepts between Qt and Cocoa:
target/action - signals and slots.
delegate messages - signals and slots.
messages to "id" - Use of CONNECT() macro and emitting a signal to dispath a message.
Class - QMetaObject
NSObject - QObject
respondsToSelector: and performSelctor: - QMetaObject::invokeMethod()
Edited 2009-06-12 20:16 UTC






