Monday, April 21, 2008

From Win32 to Cocoa

Peter Bright (via Buzz Andersen):

This approach—forced on it due to screwing up the Copland project—put Apple in a strong position. The new OS was free of many of the legacy constraints that the Copland approach would have caused; the clumsy old APIs were restricted to the Classic environment, and they didn’t form a part of the modern OS core. Although the new APIs were not entirely new—the Obj-C Cocoa API was based on the NeXTstep API, and Carbon was similar to the old Mac OS API—they were cleaned up, allowing bad decisions of the past to be fixed.


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.

I imagine this is improved in .NET, though.

Update: Part II addresses .NET.

1 Comment RSS · Twitter

In my opinion, .NET/C# (or many of the other neat supported languages) is a lot nicer and more developer-friendly than Cocoa/Objective-C. Also, Visual Studio is braincandy. It makes everything so easy and seamless that your capacity for writing code actually starts to deteriorate to the point that it becomes difficult to be productive in a plain text editor (or a less "advanced" IDE such as Xcode). The issue with .NET is that you often have to call through to the old APIs to get the cool Windows functions, and this is where things start to get really, really messy.

Leave a Comment