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.
E-mail Print r 4   · Read More · 48 Comment(s)
Thread beginning with comment 310851
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Comment by TBPrince
by TBPrince on Tue 22nd Apr 2008 09:58 UTC 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[3]: Comment by TBPrince
by snozzberry on Tue 22nd Apr 2008 16:49 in reply to "RE[2]: Comment by TBPrince"
snozzberry Member since:
2005-11-14

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


You base this statement on what? Did the Mac versions of Office lag their Windows counterparts in any provable fashion?

, made them irrelevant to the market and general users.
No, the fact that you can buy something from eMachines for $400 is what keeps their market share small.

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.
I have no idea what you're trying to say here.

However, I believe Jobs still didn't catch the wave. To be popular, you should flood market with applications
I believe that's the responsibility of Developers! Developers! Developers! Developers!

pay developers to produce tons of applications in various fields
Who exactly does Microsoft pay to write third-party applications for them? Apple subsidized Metrowerks' existence for years to guarantee Mac development could continue, if that counts.

pay developers to produce games for your platform
Remember Halo?

flood the market yourself with free apps
Like the ones that came with Tiger but not XP?

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.
Yes. .Mac is truly the center of Apple's terrible failure as a company.

That's not the way he will make OS X platform more popular. Time will tell.
I get these kinds of arguments from mouth breathing armchair quarterbacks all the time.

Apple's business model is not the same as Microsoft's. Quit whining that it should be. Apple lives on margins, not volume. This means that their profitability is not tied to the economy for the most part. In contrast, MS releases a not-compatible-enough OS during a recession which requires people to upgrade their hardware, and business consumers avoid it like the plague.

As API philosophies go, Raymond Chen's "business customers are whiny babies who must be placated" philosophy is not even in force at Microsoft any more.

APIs change. Vendors of business apps are given fair warning by both Apple and Microsoft when changes come, and for the kind of money they charge their customers, their customers are entitled to believe those vendors will get with the times.

Edited 2008-04-22 16:52 UTC

Reply Parent Score: 2

RE[3]: Comment by TBPrince
by apoclypse on Tue 22nd Apr 2008 23:36 in reply to "RE[2]: Comment by TBPrince"
apoclypse Member since:
2007-02-17

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...


But that is the whole point of the article, that business are using old code, are not fully embracing the new in-order to keep things going. the issue with that is when things break, say on MS side who do they blame? Themselves who shoul have known better than to not keep their code up to dat eor MS? They will blame MS (as they have done already with Vista. Most issue with Vista stem from third party developers not updating their software for Vista).


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 it was pointed out already. Apple doesn't plan to make any changes to the api anytime soon. Especially now that they have the iPhone using the same api's. They want developer using their platform and so now that they have something stable and robust they cn go ahead and make less drastic changes in the api. This is still apple so you never know.


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.


Again that is the point of the article. teh authors complaint is that apps on Ms are not consistent. This is not form a a single source, there is no consistent guideline or even roadmap for how an application should look or behave on windows. There just isn't. Like I said the issue is because MS themselves don;t have a clear guideline for how their apps should look or act. That is the first thing that Ms should focus on.


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.


Just like apple can't force developers to not use carbon. Agreed. the issue is that those developers will run into issues down the line and MS will coddle them instead of doing the right thing for themselves as a company and dropping unneeded and wasted resources on something that any good company shoudl be doing inthe first place.


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.


Directx was successful because frankly everything else sucked. Opengl was way too advanced and limited in scope for any hardware to really take advantage of. In-order for games to directly access the hardware at the time, you either had to use opengl (which most hardware didn't support natively only in software. Not to mention that MS's implementation purposely sucked) or 3dfx's driver or Dos. Ms was trying to drive developers towards directx for the sake of their platforms stability (a LOT of issues with win95 had to do with legacy code and hardware support, again it bit hem in the butt. In this case it was necessary to gain a userbase).


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.


This I agree with you on. the author should have been more objective. However its hard to compare the two api's because while cocoa is extensively used by developers, .net is not heavily used yet because of the old api still works and is there. I perosnally think this is a bad thing but some people see it as good.


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.


That is an issue that Apple needs to face. Though in today's world thing are a little different, you now have cross platform productivity tools, mail clients 9though theirs is pretty good) and browsers (though theirs is pretty good as well).

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.


And other than graphic professionals, that is exactly the audience that are drawn to macs now. Students, home users, people who want to listen to music watch dvd's. All of these are things that Apple does well and has made in-roads and in some cases created their own markets.


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.


Sure if you are about quantity, go right ahead and flood the market with crapware. That is no apple's way and the fact that their sales are growing their brand strong (stronger than MS)in the public eyes speaks volumes that what they are doing is not only working but is slowly but surely gaining them customers.

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.


Great. How many people will use it I wonder with the iPhone's market share increasing and already huge. I see more people learning Cocoa.

Reply Parent Score: 2