Linked by Thom Holwerda on Mon 21st Apr 2008 19:00 UTC, submitted by Adam S
General Development Ars' Peter Bright wrote an article today entitled "From Win32 to Cocoa: a Windows user's conversion to Mac OS X", in which he explains why he believes "Windows is dying, Windows applications suck, and Microsoft is too blinkered to fix any of it". These are rather harsh words, but there is a definitive element of truth in it. The article is part one in a three-part series.
Thread beginning with comment 310770
To read all comments associated with this story, please click here.
Why
by FunkyELF on Mon 21st Apr 2008 19:41 UTC
FunkyELF
Member since:
2006-07-26

I would understand keeping up with OSX development if that is what you have been doing or keeping up with Windows if that is what you know.
What I don't understand is why anybody would want to learn Cocoa from scratch. If you're going to learn a whole new set of API's, why not learn one that is cross platform like QT. Look at all the trouble Adobe got themselves into by using Carbon.

Now, if you need to tightly integrate with the OS you might wanna learn Cocoa. Much like just knowing QT isn't enough to write an app that tightly integrates with KDE or knowing Java isn't enough to integrate with Windows.
But that is a whole other issue in itself...I'm against apps that integrate that much into the environment.

Reply Score: 9

RE: Why
by TLZ_ on Mon 21st Apr 2008 20:50 in reply to "Why"
TLZ_ Member since:
2007-02-05

"Look at all the trouble Adobe got themselves into by using Carbon."
Well, Carbon was never meant to replace the classic MacOS API's, it was just a quick way to get an old app to benefit from features on OSX and not have to run in classic mode.

It was IMO quite obvious that Carbon would eventually go away...

Adobe has only been "lazy"(not really lazy, but not willing to use resources on porting to Cocoa) and now they're seeing the consequenses.

This is a bit off topic: but a interesting side-effect of having to get Photoshop on a other API than Carbon might be that they now would choose a cross-plattform API such as QT, GTK or wxWidgets. If they do maybe the geeky dream of having Photoshop(or maybe even the whole Creative Suite!) on *nix will come true.

Probably not though. *Keeps on dreaming*

--------------------------------

Regarding that people should learn crossplattform I agree! I'm soon getting a Mac, and after being trapped in .NET I want to have something that's truly cross-plattoform, so I'm learning Python and wxPython. ;)

On the other side there are some things, such as the drawer that (to my knowlegde, correct me if I'm wrong) can't get with crossplattform kits. (And other things mentioned in the article.)

Reply Parent Score: 7

RE[2]: Why
by dlundh on Tue 22nd Apr 2008 12:50 in reply to "RE: Why"
dlundh Member since:
2007-03-29

"If they do maybe the geeky dream of having Photoshop(or maybe even the whole Creative Suite!) on *nix will come true.

Probably not though. *Keeps on dreaming* "

Mac OS X is Unix, your dream came true some time ago.

Reply Parent Score: 3

RE: Why
by tyrione on Mon 21st Apr 2008 22:34 in reply to "Why"
tyrione Member since:
2005-11-21

I would understand keeping up with OSX development if that is what you have been doing or keeping up with Windows if that is what you know.
What I don't understand is why anybody would want to learn Cocoa from scratch. If you're going to learn a whole new set of API's, why not learn one that is cross platform like QT. Look at all the trouble Adobe got themselves into by using Carbon.

Now, if you need to tightly integrate with the OS you might wanna learn Cocoa. Much like just knowing QT isn't enough to write an app that tightly integrates with KDE or knowing Java isn't enough to integrate with Windows.
But that is a whole other issue in itself...I'm against apps that integrate that much into the environment.


A: You don't make much money, if any at all, writing KDE Applications.
B: Java is server-side programming and Web Services, not traditional client applications.
C: Qt is C++. When Qt 4.5 comes out and is designed to interoperate with Cocoa then you can leverage the best of both on a platform that has, in the author's mind, a driven and motivated developer community which actually makes money on a platform that isn't Windows.
D: I could go on, but perhaps you should give yourself a month of programming in OS X and Cocoa to answer your spurious and recursively destructive word that, by definition, has no answer in mind and only more questions. If you don't own a Mac to run the platform on, then you really can't even attempt to answer your question.

Reply Parent Score: 4

RE[2]: Why
by segedunum on Tue 22nd Apr 2008 12:02 in reply to "RE: Why"
segedunum Member since:
2005-07-06

A: You don't make much money, if any at all, writing KDE Applications.

Which part of cross-platform did you fail to understand? You're not writing KDE applications here. That's a downright bizarre thing to come out with.

B: Java is server-side programming and Web Services, not traditional client applications.

Java isn't the best option, certainly now that Apple has crippled it in OS X, but if you have different platforms to code for then it's silly not to look at cross-platform options. Also, cross platform options such as Java and Qt can insulate you from the stupidity of Apple when they create APIs they know they will drop.

C: Qt is C++. When Qt 4.5 comes out and is designed to interoperate with Cocoa then you can leverage the best of both on a platform that has

Yer, and you can do that to a very large extent without having to rewrite your application for Cocoa from Carbon. Score to Qt.

Apple doesn't get developers, and that has been ably demonstrated over a period of many years. API breakages, APIs being plain dropped, telling developers not to use something but making it available anyway (copying pointers out of the jump table for example) and outright hardware platform changes. If you value developers, you can't take that stuff back. You have to make it work, and up until fairly recently, that was the view Microsoft took. If you want to see how successful Microsoft's new direction is, look at the uptake and support for Vista and platforms such as.Net versus XP, 2000 and previous Windows versions.

If you must develop for a Mac, get yourself a nice big wrapper, and preferably a cross platform development tool, not just for the flexibility of cross platform porting, but to insulate yourself from Apple's stupidity. The Cocoa versus Carbon debate is the same as the Winforms versus WPF one in the Windows world. Why does it even exist in the first place?

As for the article, when there are the number of applications written for the Mac, both shrink-wrapped and especially internal applications, as there are on Windows, he can give us a call and make a comparison. That's what it all boils down to, no matter how much more 'passionate' he perceives Mac developers to be and no matter how much Microsoft wants you to re-write stuff in the shiny new .Net. A lot of stuff is written with Win32 and COM.

Edited 2008-04-22 12:12 UTC

Reply Parent Score: 3

RE: Why
by behrangsa on Mon 21st Apr 2008 23:01 in reply to "Why"
behrangsa Member since:
2006-04-30

Because cross-platform frameworks have some limitations that for some developers are just unacceptable. Opera, for example, is written with Qt. However it does not look like a native OSX app at all. That is why it is not an option for some developers. They want %100 native looking apps.

Reply Parent Score: 2

RE[2]: Why
by TLZ_ on Tue 22nd Apr 2008 06:22 in reply to "RE: Why"
TLZ_ Member since:
2007-02-05

It's a while since Opera was QT-based.
They're using a internally developed toolkit now. It does however bear resemblence with QT. Inherited sort to speak...

Futhermore I think the main reason a lot of people are not using Opera(I'm assuming you're talking about embedding the rendering engine) is probably because Opera is not free. (And WebKit and Gecko is, and IE although not free, it is free to use on Windows.)

Reply Parent Score: 3

RE[2]: Why
by Ruahine on Tue 22nd Apr 2008 10:18 in reply to "RE: Why"
Ruahine Member since:
2005-07-07

It should be pointed out that mac users are particularly picky when it comes to having "native" feeling apps. I know I do.

Reply Parent Score: 1

RE: Why
by ohbrilliance on Tue 22nd Apr 2008 02:44 in reply to "Why"
ohbrilliance Member since:
2005-07-07

"What I don't understand is why anybody would want to learn Cocoa from scratch."

Speaking as somebody who has recently learnt Cocoa from scratch (and still learning). Because I enjoy it. It's a shear pleasure to create Cocoa apps. I may make money off them or not, either way there's a satisfaction in writing great apps with minimal effort using a non-jarring API.

Reply Parent Score: 3

RE: Why
by ActiveMan on Wed 23rd Apr 2008 20:08 in reply to "Why"
ActiveMan Member since:
2006-01-15

IMO cross-platform APIs like Java or QT produces rough applications. However, those applications reduce the cost a lot and are "enough" for vertical application like business applications. The pros overcome the cons in this scenario.

On the other hand, cross-platform APIs are not acceptable for wide scope applications like word processors or internet browsers. Does anybody would consider using a web browser written in Java or QT?

Reply Parent Score: 1