

Ask HN: Would you choose Cocoa or Qt for a desktop application, and why? - loluyede

I know that Cocoa is not cross platform and Qt is, but suppose you have to start from scratch, which one would you pick, and why?
======
jacquesm
I'm assuming you are writing your desktop application for the Mac because you
are considering Cocoa, if you're starting from scratch that's an excellent
reason to pick a platform independent library.

That choice is one you usually make only once in the lifetime of an
application, you'd better make the right one. And I'd widen the field a bit to
include other options not limited to Cocoa and Qt. If you have a success on
your hands you'll really regret not being able to easily support other
platforms.

Let's turn it around, what compelling reasons would you have for choosing
Cocoa over a platform independent solution ?

~~~
loluyede
I think about TextMate success story where the author decided to go with the
platform dependent library to make it shiny and not waste time fixing behavior
bugs due to the multiplatformness

------
yan
It depends. If I were to write an app that I was sure was only for macs, I'd
write Cocoa only. I find it a joy to develop for.

If platform independence is important, I'd still choose Cocoa but try to wrap
the main functionality in platform-agnostic C/C++ or the like.

------
st3fan
I would choose Cocoa because it is awesome. You will have so much more fun. It
is also the only way to create great Mac apps that have a correct native feel.

Personally I think C++ is a big wart compared to the beautiful simplicity of
Objective-C.

~~~
loluyede
Got it, I was thinking about PyObjC anyway

------
trevelyan
I've been critical of QT's somewhat restrictive license in the past, but the
only reason not to use it with their coming shift to LGPL is the lack of
iPhone support.

~~~
loluyede
Obviously I'm considering QT only with the new license.

------
makecheck
Maybe Apple's implementation of Cocoa is Mac-only, but if you use something
like GNUstep you can have the Cocoa APIs on other platforms.

