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 310798
To read all comments associated with this story, please click here.
Comment by TBPrince
by TBPrince on Mon 21st Apr 2008 22:25 UTC
TBPrince
Member since:
2005-07-06

Honestly I can't follow this guy since the beginning:

Microsoft has never done anything so bold as Apple's OS X transition.
What did he mean? Does this guy know that you can use Vista to run a software from mid-80s (i.e. more than 20 years ago) and it will (mostly) work? Not only Apple was never able to do that, but actually no software house was able to do that, except for some old Unix console-only software. So what is the guy talking about?

What makes this all worse is that Win16 was never well-designed in the first place, and Win32 has replicated poor decisions in abundance. Win32 is a big API; it's really huge, many thousands of API calls, and it's totally inconsistent. It's inconsistent in every way imaginable.

Why is this guy comparing OS X API to Win32 when even rocks know that Win32 is the past in Windows development? The guy obiouvsly never heard about .NET 1.0/1.1/2.0/3.0/3.5, WPF, WCF and so on. Now that's a modern API to me. What's the point in comparing OS X to Win32? Even if Win32 will be here for years (maybe until Windows will exist, knowing MS), it's also clear that Win32 is a dead duck for new development.

It continued to tidy up legacy features (deprecating QuickDraw, for example). It added new APIs like Core Audio and Core Image.
Oh great. Except for the fact Microsoft had system-wide services like this in Windows95 and has DirectX since... I don't know... 10 years?

Let alone the fact Windows developers produce crappy applications while OS X developers only make high-quality apps (because they don't develop for big corporation! How fun!).

Hey friend: if you found your dimension in developing for OS X, happy coding! But avoiding to throw mud at others because you switched side, well... that would be better ;-)

Reply Score: 11

RE: Comment by TBPrince
by apoclypse on Mon 21st Apr 2008 23:18 in reply to "Comment by TBPrince"
apoclypse Member since:
2007-02-17

Well I think that's his point. MS is so worried about losing market share, that they made a huge bloated mess out of their api's instead of doing the sensible thing and deprecating anything irrelevant in todays computing environment. He specifically points out that apple dropped their plans to just hack Classic OS to add much needed features and instead dropped the whole thing and decided to go another direction. Basically freeing them from the shackles of old deprecated code and forced themselves and developers to start anew.

As for .Net he didn't point this out but the real point of the article is that MS doesn't eat their own food. Even MS themselves don't extensively use .net for much of anything, they still use good ol win32. That's the problem right there, developers are taking their cues from MS, but MS has huge issues with consistency in their applications, in everything from the api itself, which if you read the article he gives examples of, to issues with application UI,to not having a set and consistent HIG. Now what he failed to mention is that Apple is also guilty of the same thing. The whole Carbon/Cocoa issue is an example. A lot of Apple's pro apps are not written in cocoa but instead use carbon, the same for some of the system wide apps. I think finder is written in Carbon. Apple also has issues following its own HIG, but they are still hands over feet more consistent that MS in a lot of respects.

Directx has been a system wide service and api since win95 (though do you seriously think that directx2-5 was any good. i certainly don't). the issue is that MS has several ways for accessing the same services basically creating a huge issue with inconsistent way that devs access the same resources. Directx itself has many issue with consistency but the api is familiar and many people know how to use it. Besides Apple also had their version of these services in classic OS, you had quicktime, quickdraw, etc. It wasn't implemented all that great but they were there and they had them for quite some time. CoreAudio, CoreMidi, Coreimage, all of these are newer more powerful version of the same concepts, they are much easier to use, extremely versatile and they are constant and given to developers for free of charge to use and abuse. The same api's services are being used to develop for the iPhone. It really is rather elegant.

Reply Parent Score: 3

RE[2]: Comment by TBPrince
by google_ninja on Tue 22nd Apr 2008 03:01 in reply to "RE: Comment by TBPrince"
google_ninja Member since:
2006-02-05

Directx has been a system wide service and api since win95 (though do you seriously think that directx2-5 was any good. i certainly don't). the issue is that MS has several ways for accessing the same services basically creating a huge issue with inconsistent way that devs access the same resources. Directx itself has many issue with consistency but the api is familiar and many people know how to use it.


I am not an expert, but I am familiar with it. DirectX 10 being about performance is a straight-out lie; what DX10 is about is cleaning up the API and providing alot more consistency, both in windows and between windows and xbox.

CoreAudio, CoreMidi, Coreimage, all of these are newer more powerful version of the same concepts, they are much easier to use, extremely versatile and they are constant and given to developers for free of charge to use and abuse.


All three of those are high quality APIs for creating Midi Sequencers, Audio Workstations, and Graphical apps.

On our side of the world, we have WPF, which is hands down the most elegant UI framework I have ever used. LINQ, which is a unified data access model. WCF which is a fantastic abstraction layer for services of any sort (anything from named pipes, to web services, to RPCs). WF, which is an API to take care of the plumbing in workflow applications.

These APIs make it very easy to build high quality line of business applications very easily, and are all free of charge as well.

Completely ignoring things like tooling, infrastructure, and language features, when you are talking api to api, .net holds its own really well against apple. The big difference is that apple pours its effort into the more creative stuff, and ms pours its effort into the more business oriented stuff.

Edited 2008-04-22 03:03 UTC

Reply Parent Score: 3

RE[2]: Comment by TBPrince
by TBPrince on Tue 22nd Apr 2008 09:58 in reply to "RE: Comment by TBPrince"
TBPrince Member since:
2005-07-06

Well I think that's his point. MS is so worried about losing market share, that they made a huge bloated mess out of their api's instead of doing the sensible thing and deprecating anything irrelevant in todays computing environment.
That's not true. Microsoft is deprecating older APIs. It is just not removing them. Developers are encouraged to use newer APIs but Microsoft puts a great effort in supporting their products. That's the biggest part of its success. Of course, Apple (which holds a 2.something% marketshare) can just say "We don't care: rewrite your applications...". But if you were a business, you wouldn't feel very safe with tha policy unless you're hell of a brave business...

He specifically points out that apple dropped their plans to just hack Classic OS to add much needed features and instead dropped the whole thing and decided to go another direction. Basically freeing them from the shackles of old deprecated code and forced themselves and developers to start anew.
And that's why Apple starts from 0 everytime. This way, they won't go anywhere in marketshare as they will always get users willing to user Apple's software and nothing else. Or wait 2 years while Adobe converts Photoshop to latest Apple's changes. No-one still have doubts that backward compatibility is the key for success. Really. No-one.

As for .Net he didn't point this out but the real point of the article is that MS doesn't eat their own food. Even MS themselves don't extensively use .net for much of anything, they still use good ol win32.
That's true but OS developers always use tricks and have advantages. Reason why Microsoft is still using Win32 is because, as all businesses, they slowly migrate their software to new platform instead of re-writing all from scratch. Plus, I honestly believe that they might use some hooks or undocumented functionalities which aren't available on .NET. But almost ANY Microsoft product requires .NET today.

Now what he failed to mention is that Apple is also guilty of the same thing. The whole Carbon/Cocoa issue is an example. A lot of Apple's pro apps are not written in cocoa but instead use carbon, the same for some of the system wide apps.
This is somewhat normal. I honestly don't expect Apple (nor Microsoft) to convert their applications to newer APIs all of sudden. But still, you cannot say Microsoft HASN'T a newer API because that's not true. .NET is huge, consistent, elegant and embraces basically 95% of Windows API. If you're developing NEW software based on Win32 today, you're putting yourself in troubles. That's not a MS problem as they did anything they could to provide you tools not to be forced to do that but they cannot stop you from using Win32 if you feel you should.

Directx has been a system wide service and api since win95 (though do you seriously think that directx2-5 was any good. i certainly don't).
Well, DirectX was for sure reason for success of Windows platform as gaming platform. Of course, compared to modern APIs (like newer DirectX) it looks acient and bad but it was the foundation of PCs as gaming machines, given the better upgradbility of PCs themselves. If PC gaming market is the hugest gaming market available today, that was because of Windows and unique PC features when compared to consoles. You can't just ignore that.

the issue is that MS has several ways for accessing the same services basically creating a huge issue with inconsistent way that devs access the same resources.
That's true but only because Microsoft, until .NET, didn't provide an unified way of accessing services. This is partly related to acient problems which have been solved with .NET. Now, if we compare Windows platform NOW, we have to compare to newer APIs, not older ones which are mantained for backward compatibility.

Directx itself has many issue with consistency but the api is familiar and many people know how to use it.
You said that. That's the basis for success.

Besides Apple also had their version of these services in classic OS, you had quicktime, quickdraw, etc. It wasn't implemented all that great but they were there and they had them for quite some time.
Unfortunately, for years Apple's platform was a really good platform but only in specific areas. We all know Apples were great in GFX, in desktop publishing and so on but the very fact they weren't good as general purpose machines, made them irrelevant to the market and general users.

We know (and Apples knows that too) what users want: a machine which you could use to use Excel and Word onto, which you could use for e-mails and browsing, which you can let your kid play games onto and maybe connect to your home theater system to watch DVDs. Other niche markets exists but they are infacts niche markets.

Of course, now that Apple converted to general users that's great but your life it's easier when you have 95% market share than when you only have 1.something or 2%.

However, I believe Jobs still didn't catch the wave. To be popular, you should flood market with applications, pay developers to produce tons of applications in various fields, pay developers to produce games for your platform, flood the market yourself with free apps. Still Jobs tries to lock users in by trying to sell them services they won't buy, killing competition from ISV and missing important markets. That's not the way he will make OS X platform more popular. Time will tell.


The same api's services are being used to develop for the iPhone. It really is rather elegant.
Sure. And that's why Microsoft has .NET Compact Framework which is almost 1-1 (well, maybe 0.80-1) compatible to standard .NET framework.

Reply Parent Score: 2

RE[2]: Comment by TBPrince
by tyrione on Tue 22nd Apr 2008 11:06 in reply to "RE: Comment by TBPrince"
tyrione Member since:
2005-11-21

Next release of OS X won't have Carbon, so expect those Carbon parts to be Cocoa, along with their applications.

Reply Parent Score: 2

RE: Comment by TBPrince
by sakeniwefu on Tue 22nd Apr 2008 00:24 in reply to "Comment by TBPrince"
sakeniwefu Member since:
2008-02-26

An old article* he links to, by himself on how Vista is wonderful is a much more interesting read and that was the kind of thing I expected in this one.
Here there is no technical description of the frameworks, no comparison, nothing about Objective C, no nothing.
Overall it appears as if he wanted to make clear he just bought a Mac and has converted from MS zealot to Apple zealot.

http://arstechnica.com/reviews/os/pretty-vista.ars

Edited 2008-04-22 00:24 UTC

Reply Parent Score: 4