Skip to Content

Is the future of Mac...the iPhone?

I was chatting with my TUAW colleagues this morning about Mac versus iPhone programming. And as per usual with these conversations, we veered in the direction of unfettered speculation. It's an occupational hazard.

As someone who regularly develops on both platforms, I declared that the iPhone represents the future of Mac programming. The iPhone, I posited stated, offers a great new platform without the need to be fully backwards compatible like the Mac. Our own Victor Agreda challenged me to back up that position. After a bit of time and thought, I decided to do so in this post.

My key point is this: Apple's engineers have learned a lot of important design lessons during the history of OS X. When the iPhone debuted, it gave those engineers the chance to rebuild an OS and an API from the ground up. Those engineers could craft a platform and its libraries that built on the Mac's successes without dragging along its less fortunate design decisions. Yes, there were some lemon frameworks that initially made the grade, but over time, Apple has reduced their number.

Even now, Apple continues its iPhone design process, adding new frameworks and APIs at a prodigious rate. The iPhone OS remains a work in progress, developing in ways and directions that the initial release two years ago could not have anticipated. And Apple does this, knowing fully that the closed platform allows them a great deal of design freedom that would not have been possible on the open Macintosh.

In contrast, consider in how many ways the Mac's successful history drags the platform down. A commitment to existing APIs and historical design practices show up in nearly every Mac development project. The simple elegance of the iPhone's built-from-the-start-as-Objective-C 2.0-based API is largely missing from Cocoa libraries.

Whether you're working with buttons, menus or simple text views, the iPhone development approach simply works better: beautiful 2.0-style properties, consistent API design, better-thought-out object inheritance trees, and so forth. With the iPhone, you see a great new platform evolving without the need to be fully backwards compatible

Snow Leopard, with its minimal API changes has bought the Macintosh a few years of stability. But I think it's time for Apple to rethink the platform as a whole, re-imagining its API through the lens of current iPhone OS development. While Snow Leopard offers Apple the room to stay still for now, I can see Apple moving forward in a separate engineering effort to Cocoa Touch Mac, a hypothetical cross-platform OS that supports general development on iPhone and future Mac devices like my imaginary snow-princess-rainbow-pony-iTablet.

The ghost of NeXT-past, as TUAW-colleague Joachim Bean puts it, still haunts us. It's time to exorcise the unhelpful bits of that pervasive spirit and usher in the new age of the iPhone and its API design examples. Mac OS X is, and has been, a superb development platform. What I'm suggesting is that iPhone OS might just be a better one.



I was chatting with my TUAW colleagues this morning about Mac versus iPhone programming. And as per usual with these conversations, we...
 

Add a Comment

*0 / 3000 Character Maximum

30 Comments

Filter by:
Bleh...

I disagree with almost every statement above in this comment thread. I do not believe that Mac OS X has any future in programming or innovation. I believe the Mac line will witness a slow and painful death, a result from its little, (or should I say big at this point) brother. This is the first upgrade to Mac OS X on record that did not add any notable innovations. Snow Leopard is a mere upgraded version of Leopard with a few "under the hood" improvements. Under the hood improvements, improvements that someone cannot see or really prove, does NOT qualify as a new version of an operating system to me.

I believe Snow Leopard is proof that Apple is slowly losing interest in its computer line, never being successful enough to carry the company. Snow Leopard is the result of a lack of developers working on the desktop line of Mac OS X. Ultimately, my belief is that Apple will sooner become a handheld electronics maker rather than leader

One cannot forget about competition from Microsoft either. Windows 7 has been promised to be the most drastic upgrade to Windows since Windows XP. This is coming from a Mac user, who will soon be switching to Dell for the sheer fact I no longer see a benefit to using an Operating system who's creators are falling off the PC map. I can get a Dell laptop will all upgraded parts of an Apple laptop for 2/3 the price. Im talking twice as much GDDR3 RAM, same video card, a 7200 RPM hard drive, and more powerful processor for 400 dollars less. The fact is that Apple's losing its appeal to me when its Operating system no longer seems that impressing.

September 19 2009 at 6:32 PM Report abuse rate up rate down Reply
rxantos

So basically the future is that a few corporation will control all computing power and you can get lock out or all your data wipe out if your interest and the interest of the corporation are against your own.


Interesting.

September 17 2009 at 12:18 PM Report abuse rate up rate down Reply
Ouchies

I think someone is a little paranoid with Windows 7.

September 17 2009 at 9:25 AM Report abuse rate up rate down Reply
robb

Except for the touch and platform specific features, which are made as similar to the desktop Cocoa way of doing things as possible, Cocoa touch is pretty much just a stripped down version of desktop Cocoa's GUI bits.

The article makes it sound like it's some brand new, completely different API. It's not.

September 16 2009 at 10:00 PM Report abuse rate up rate down Reply
e-man

How true !! Why o why is it gone ?

September 16 2009 at 2:35 PM Report abuse rate up rate down Reply
VM

Erica, you seem to think that the nice bits of iPhone APIs etc. would somehow require or be a result of it being a closed down platform and that making Mac APIs and development anything similar would require making Mac similarly closed. Two words.. Hell No.

September 16 2009 at 1:30 PM Report abuse rate up rate down Reply
akatsuki

"In contrast, consider in how many ways the Mac's successful history drags the platform down. A commitment to existing APIs and historical design practices show up in nearly every Mac development project."

Legacy APIs and precedent is the price of success. You don't just throw it all away just because some of it is less the elegant. You are basically advocating a transition that is more ambitious than the OS 9 to X transition.

"With the iPhone, you see a great new platform evolving without the need to be fully backwards compatible."

There are a lot of apps that will be only SL compatible. More than that, Apple has thus far shown no fear in leaving older computers behind. The iPhone is a terrible model for desktop computers, and is barely tolerable as a mobile platform in its closed nature. What made sense on a mobile network that is controlled by oligopolists doesn't make sense when you are trying to compete against commodity hardware in an open market.

There article basically is some sort of geek dream to eliminate old APIs and cruft even further. Advocating a closed platform redesign of a mature OS for no real reason than a bit of elegance is pretty much what defines an amateur.

September 16 2009 at 11:17 AM Report abuse rate up rate down Reply
1 reply to akatsuki's comment
VM

I agree. I think Windows is good example of what this article sounds to be describing with all the baggage it's still carrying. On the other hand on OS X, every 10.x transition has brought with it something fresh and cleaned out something old.

September 17 2009 at 8:36 AM Report abuse rate up rate down Reply
James F

After reading John Siracusa's painstaking Snow Leopard review over at Ars Technica, I think this posting is way off. Snow Leopard is much more powerful and futureproofed now, and is going to take off with the new OpenCL and Grand Central Dispatch technologies, not go end of life.

September 16 2009 at 12:13 AM Report abuse rate up rate down Reply
R Muffet

The problem with this thesis is that programming the iPhone and programming Mac OS X, interface aside, are really not that much different.

In fact, AppKit (Mac) and UIKit (iPhone OS) aren't really drawing apart but rather back together: if you look at the new NSResponder events, you'll see Snow Leopard implements:

- (void)touchesBeganWithEvent:(NSEvent *)event

which looks straight out of iPhone programming, but is in fact Mac programming.

(This is also, to me, compelling evidence that the rumored iTablet will host Mac OS X...)

The claims of "simple elegance of the iPhone's built-from-the-start-as-Objective-C 2.0-based API is largely missing from Cocoa libraries" is also missing the point, as the Mac API is also benefitting from Objective-C 2.0 conventions. You can say, [legacyObject property] or legacyObject.property just as easily with the old API as new.

Garbage Collection and blocks are new additions to the Objective-C world, available on the Mac, but not yet on the iPhone, though eventually they will be.

I think my attitude is best summed up by saying: "Programming the iPhone and programming the Mac are the same, except where they are different." And those differences are due to the types of the devices: little screen vs big, touch vs mouse clicks (for the momment ;), modest CPU power vs monster cores of raw power.


PS To the guy who "looked" at Objective-C 2.0 and got C++ flashbacks... Hmm, try it see beyond the [squarebrackets scareMe] and @whatsthisagain typography. Cocoa really is very elegant. The patterns it follows are just as state of the art if not more so than any newer dynamic environment, with the benefit of having the power of hardware accessing procedural C there if you need it.

September 15 2009 at 7:13 PM Report abuse rate up rate down Reply
Chris K

Objective-C is ELEGANT!? Honestly?

I'm glad so many people are happy to program in Objective-C, because a few hours dipping my toes into iPhone software development gave me flashbacks to C++ / MFC programming. After years of programming in modern high-level languages, I refuse to go back to such a primitive language.

Technology marches on, but Apple's development environment is stuck in the 80's with NeXT.

September 15 2009 at 5:06 PM Report abuse rate up rate down Reply
1 reply to Chris K's comment
VM

Yeah, it is elegant. Obective-C is a "modern high-level language" and with the tools and APIs Apple provides, it's highly productive and fun to use. It's a bit different that some others but once you get your head around the concepts you might find you don't want to go back.

September 17 2009 at 8:30 AM Report abuse rate up rate down Reply
Buy an ad here

Hot Apps on TUAW

Tweets

© 2012 AOL Inc. All Rights Reserved.