Hacker News new | past | comments | ask | show | jobs | submit login

C++11 looks better to me.



ObjC++ uses C++11 (plus you NEED ObjC/ObjC++ to make calls to Cocoa).


That's my point. Learning the language just to use some platform specific non portable technology like Cocoa? No thanks. Better to stick with what's reusable, like C++ and Qt.


Iron law of native desktop app development: Code to your platform's native GUI API -- no wrappers. Or your user base will notice and one-star that shit.

You have less of an excuse on the Mac, which has literally the best GUI API in Cocoa that anyone has ever invented.


Iron law of native desktop app development: Code to your platform's native GUI API -- no wrappers.

Not so iron, if you have many platforms to manage. Usually it doesn't worth it to manage tons of separate toolkits for each platform, if there is no common abstraction at all. It's just too costly.


If you don't mind your app looking like shit on all platforms, this is a viable strategy. A lot of specialist applications are like this: for example, I used to develop Qt-based GUI tools for robotics.

If your app looking like shit will cost you significant sales -- as is the case for most productivity and design apps -- then yes, you have to port the GUI bits to each and every toolkit you're using.


Not true. Lot's of applications use generic abstractions and look good at the same time.

Firefox, LibreOffice, VirtualBox and etc. If you don't know how to make good GUI using generic toolkits it doesn't mean it's not possible.

Anyway, if you buy application for its "looks" - there is something seriously wrong already. It should look good, no doubt, but it should be functional first.

>as is the case for most productivity and design apps

Completely the opposite. They tend to provide completely custom, not native looking UIs, and therefore using cross platform toolkits for them only makes more sense.


Nobody on Mac runs Firefox except to test with because it's so obviously non-native.

And I wouldn't describe LibreOffice as "not looking (and running) like shit". Again, nobody on Mac actually uses it, and Windows has the real Office.


Oh, yea. And Mac users are oh-so-great majority of desktop users... Please. I have nothing against Macs and when I'm rich enough I might even buy one, but I won't try to force the whole world to support my niche OS then. Or niche aesthetics for that matter.


Hehe, nobody? You must be using the crippled Safari I guess.


What is Linux's native GUI API?


Linux doesn't dictate a native API for GUI. It de facto dictates the display server protocol though (currently being X11 and Wayland as the next generation). So any API would be built with that in mind. That said, most widely used APIs are Qt and GTK+.


That's what I thought. So I'm having trouble understanding how I would apply bitwize's iron rule.


Ever noticed how Linux appspace tends to be a horrible mishmash of different GUI styles? That's why Mac users are nazis when it comes to obeying the Apple Human Interface Guidelines - the alternative is every developer does whatever he thinks looks good, and there's no consistency to your desktop. OS and UI consistency is a problem if not done well.


I strongly doubt he ever used his own rule while doing cross platform development. Or he'd know better.


Mac users typically don't like non-native UI apps


This is not specific to Mac users. Most prefer applications which integrate with their desktop environment well. It's a tradeoff. Using something like Qt will try to mimic the native UI close enough, even if not 100%. But saves you the time on learning each native toolkit. I'd say it usually pays off, and that small percent doesn't worth the effort (especially if the project is supposed to be cross platform).


Who downvoted this guy and what for, when he's only stating his opinion on what tools to learn if one wants to develop for desktop?

And I personally think he's (shmerl) right. Learning a couple almost completely redundant APIs, but each with it's own problems, gothas and plain stupid decisions is hardly a good thing.


Years ago I would have agreed with you, now I'm not so sure.

Most users know so little about the UI of their computers that they don't know when to click the mouse once or twice.

They spend their day working on Windows, checkout Facebook on their iPhone on the way home, play a game on a Playstation then send some email using Gmail on Safari.

Then you have the major changes within operating systems over recent years, Windows Vista/7 and Windows 8 both introduced major UI changes as has OS/X.

Peoples interaction with computers has become much more diverse. Unless the UI is jarringly different they just aren't going to notice.




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

Search: