From Win32 to Cocoa: Part III

Ars has just published part three in their series “From Win32 to Cocoa”, in which Peter Bright explains why he thinks “Windows is dying, Windows applications suck, and Microsoft is too blinkered to fix any of it.” Part one dealt with the history of both development platforms, part two dived into .Net, different types of programmers, and Windows Vista, and part three details the development platform and tools Apple has to offer, and in what ways they are superior or inferior to Windows’.I don’t wish to dwell for too long on the actual merits of Objective-C over C, or the benefits of Xcode, Interface Builder, and other tools – I mean, which tools someone prefers is a very personal thing, and debating that issue here is pointless and bound to end in tears and torn stuffed animals anyway. What is a very interesting point is that Apple gives away all its development tools, including their various profilers, for free, and how that affects the Mac software ecosystem.

These profiling tools are, as with all the Apple developer tools, free,” Bright writes, “In a world where most equivalent tools are rather expensive, this is very welcome. There’s a clear contrast here with Microsoft.” According to Bright, a ‘bean counter’ at Microsoft realised that you could sell development tools and make money from them. While the Visual Studio Express tools are free, it are the extras where Microsoft is weak.

To get a profiler for Visual Studio, you have to spend money. Quite a lot of money. The Express versions don’t have one. Nor does the Standard version, nor even the Professional version. So to get a profiler, you need Visual Studio Team System 2008 Development Edition. That’ll set you back a couple of thousand bucks. And it’s not even a very good profiler. It’s hard to use, limited in what it can tell you, and just plain ugly.

The problem with this is that it is a rather short-term way of generating income. If you purchase software development tools, you’re going to write software. This application can attract new users, who buy Microsoft software to run this application – and let’s face it, that’s going to generate more money than a single developer buying tools.

As Bright explains:

Giving developers better tools strengthens the platform. Good software is more appealing to users; business-critical software is essential to corporations. So while you could monetize developers, it’s short-sighted. Developers make your platform better, and charging them a lot of money for the privilege just doesn’t make sense. Intel does much the same thing; the chipmaker has a profiler product of its own, and it costs money. And yet, the purpose of that product is to make software that runs better on Intel processors so that people go out and buy more of them.

Apple also ‘eats its own dog food’, as the saying goes. It actually uses the tools, APIs, and frameworks it provides, reassuring their development community that said tools, APIs, and frameworks are sound and stable enough. In fact, in the Apple world, it’s usually the case that Apple will introduce some sort of new UI element or framework, which will later be made available to everyone else. If there’s an API in OS X, Apple is bound to be using it somewhere.

Finally, Apple has finally settled on Cocoa. It took them a while, but ever since 10.4 and 10.5, the direction has been clear: the future of the Mac OS is Cocoa. While Carbon is still there, and it’s still in use in for instance the Finder, it’s on its way out, as evidenced by the fact it won’t become available in 64bit. “This willingness to leave old technology behind is a great strength of the Apple platform,” Bright writes, “Rather than enshrining past decisions in perpetuity, Apple has a willingness to say “enough’s enough; this new way is better, so you should use it”.”

Part four will detail what and how Microsoft can improve things.

106 Comments

  1. 2008-06-02 11:10 am
    • 2008-06-02 11:19 am
      • 2008-06-02 12:26 pm
        • 2008-06-02 1:40 pm
          • 2008-06-02 2:19 pm
      • 2008-06-02 6:19 pm
        • 2008-06-02 6:41 pm
          • 2008-06-02 7:37 pm
          • 2008-06-02 8:39 pm
          • 2008-06-02 10:02 pm
          • 2008-06-02 10:32 pm
          • 2008-06-02 10:35 pm
          • 2008-06-02 11:56 pm
          • 2008-06-03 1:31 am
          • 2008-06-03 6:45 pm
    • 2008-06-02 11:56 am
    • 2008-06-02 3:03 pm
  2. 2008-06-02 11:52 am
    • 2008-06-02 11:59 am
      • 2008-06-02 1:34 pm
        • 2008-06-02 1:40 pm
        • 2008-06-02 1:55 pm
          • 2008-06-02 2:52 pm
          • 2008-06-02 5:03 pm
          • 2008-06-02 11:50 pm
          • 2008-06-02 3:18 pm
          • 2008-06-02 5:04 pm
        • 2008-06-02 1:59 pm
          • 2008-06-02 2:08 pm
          • 2008-06-02 2:22 pm
          • 2008-06-02 2:42 pm
          • 2008-06-02 2:56 pm
          • 2008-06-02 2:44 pm
          • 2008-06-02 2:47 pm
          • 2008-06-03 12:35 am
          • 2008-06-03 12:43 am
          • 2008-06-03 11:17 am
          • 2008-06-03 9:29 pm
        • 2008-06-02 2:11 pm
          • 2008-06-02 2:45 pm
          • 2008-06-02 3:11 pm
          • 2008-06-02 4:22 pm
          • 2008-06-03 9:34 am
          • 2008-06-02 6:42 pm
        • 2008-06-03 9:27 pm
      • 2008-06-02 6:37 pm
    • 2008-06-03 11:30 am
      • 2008-06-03 12:26 pm
        • 2008-06-03 1:51 pm
  3. 2008-06-02 1:59 pm
  4. 2008-06-02 2:41 pm
    • 2008-06-02 3:57 pm
      • 2008-06-02 6:34 pm
        • 2008-06-02 8:25 pm
          • 2008-06-02 9:41 pm
          • 2008-06-02 10:14 pm
          • 2008-06-02 10:33 pm
          • 2008-06-03 12:04 am
      • 2008-06-03 2:27 am
    • 2008-06-02 4:49 pm
      • 2008-06-02 6:01 pm
      • 2008-06-02 6:13 pm
        • 2008-06-02 6:23 pm
          • 2008-06-02 6:42 pm
          • 2008-06-02 6:51 pm
        • 2008-06-03 6:26 am
      • 2008-06-02 6:26 pm
  5. 2008-06-02 3:04 pm
  6. 2008-06-02 4:09 pm
    • 2008-06-02 4:26 pm
      • 2008-06-02 4:34 pm
        • 2008-06-02 5:17 pm
          • 2008-06-02 5:30 pm
          • 2008-06-02 5:57 pm
          • 2008-06-02 6:06 pm
          • 2008-06-03 9:46 am
          • 2008-06-03 2:11 pm
          • 2008-06-02 5:51 pm
          • 2008-06-02 8:14 pm
          • 2008-06-02 5:53 pm
    • 2008-06-02 6:03 pm
      • 2008-06-03 9:44 am
        • 2008-06-03 11:29 am
  7. 2008-06-02 6:17 pm
    • 2008-06-02 7:01 pm
      • 2008-06-02 8:00 pm
        • 2008-06-02 9:38 pm
          • 2008-06-02 9:53 pm
        • 2008-06-02 10:46 pm
          • 2008-06-03 12:17 am
          • 2008-06-03 6:30 am
          • 2008-06-03 6:48 pm
        • 2008-06-03 1:36 am
          • 2008-06-03 1:56 am
      • 2008-06-02 10:51 pm
        • 2008-06-03 12:54 am
          • 2008-06-03 1:07 am
          • 2008-06-03 11:19 am
      • 2008-06-03 3:08 am
        • 2008-06-03 6:32 am
        • 2008-06-03 9:03 am
          • 2008-06-03 11:08 am
          • 2008-06-03 6:52 pm
  8. 2008-06-03 3:59 am
    • 2008-06-03 9:04 pm
  9. 2008-06-04 10:36 pm