Infinite Loop —

Developers expect iOS and Mac OS to merge over time

Mac OS X developers aren't as concerned as our own John Siracusa about the …

Ars recently took a look at what direction Apple may be headed in for the future of its development platform. Though concrete answers are hard to predict, the truth is that the Cocoa APIs are built on the 20+ year-old NextStep and use Objective-C, a language that until recently lacked many features common to modern development environments, such as automatically managed memory.

Last week, we also hosted a live chat featuring several developers whose apps were picked for our Ars Design Awards for Mac OS X. We asked them what they thought about the future of Mac OS X and Apple's development platform during the chat, and then followed up on their thoughts about languages and APIs. While current Mac developers aren't nearly as concerned as our own John Siracusa about the Objective-C language in particular, they do see new and improved APIs coming down the pike. Developers are seeing iOS influencing Mac OS X instead of the other way around.

The developers on our panel unanimously agreed that Mac OS X will eventually be subsumed by iOS, but that the Mac has plenty of life left. "Mac is the awesome old grandma, whose kids (iPhone & iPad) have left home," Atebits' Loren Brichter said. "Not dead; not really dying. But it's our job to keep her comfortable until she's gone."

Mekentosj's Alexander Griekspoor believes that iPads will take over the market for a majority of consumers. "People who need a MacBook want an iPad," he said. "Only the pro segment will remain—they need the accuracy of a mouse."

When it comes to APIs—the programming interfaces that developers use to build their applications—Mac OS X generally influenced iOS as far as new features like Core Data. However, iOS 4 now has features that Mac OS X lacks, such as a built-in regular expressions feature.

Specifically, the developers were hoping that iOS's UIKit could supplant Mac OS X's AppKit APIs. Brichter said that UIKit was already influencing the design of Mac OS X apps, and revealed that he was busy writing his own desktop implementation of UIKit to help build the long-anticipated Tweetie for Mac 2. "I'll open it up [to other developers] if the code isn't too embarrassing," he said.

(Brichter also let slip that Tweetie for Mac 2 will in fact be renamed Twitter for Mac, just like the iPhone version, and will also be free.)

Panic's Cabel Sasser suspected that Mac OS X 10.7 might represent a hybrid of the current desktop and mobile OSes. "I could see a gradual, slow merger between iOS and Mac OS X styles and approaches," he said. "It doesn't make sense for them to be developing two of everything, one good, one not as good—two calendars, two address books—it's got to merge somehow."

But, the developers weren't as concerned about Apple replacing Objective-C with a new, more "modern" language. In general, most seemed pleased with Objective-C and the design of the Cocoa frameworks.

"From my own experience, Cocoa and Objective-C are the best tools for writing desktop applications," Lucky Ants' Vadim Shpakovski told Ars. "Objective-C syntax together with Cocoa paradigms literally forces you to use MVC everywhere and your application is always winning from this. I used to develop in Win32, ATL, Delphi, and WPF—they are not even close as helpful as Cocoa is."

Griekspoor agreed with Siracusa that things will eventually change in the next five to 10 years, but wasn't concerned with Apple using a new or different language. "I personally prefer the perhaps somewhat more elaborate syntax of Objective-C over a compact but more difficult to read one," he told Ars. "But more important than the language are the APIs, and Apple has done an amazing job in this area over the last three years."

Brichter had more colorful comments about his love for Objective-C, which stem from his love for the performance of straight C itself.

"Objective-C is perfect, and if you don't think so you're a Windows-lover. Just kidding," he told Ars. "But really, Objective-C is awesome in my mind for one reason: it goes high-low, like a poker game. Google, Microsoft, Palm, etc can dick around in Candy Land, but try twiddling some bitmaps before passing them to the graphics driver in Javascript—Objective-C can do it, because C can do it."

"On the flip side, it's easy to develop a sweet tooth after you've tasted some syntactic sugar. I guess my point is that I agree we'll need a new language. But if the original Objective-C proved anything it was that we didn't have to sacrifice the pure awesome that is C to have it. And we don't have to sacrifice Objective-C to have something better."

"I want an Objective-Objective-C," Brichter said. In this way, developers could drop down to lower levels as needed, for performance reasons, but still benefit from syntactic improvements or other higher-level features where performance isn't as critical.

When it comes to UI design, Agile Web Solutions' Dan Peterson hoped for a rethinking behind Interface Builder. "As a designer it would be seriously awesome if the designer was able to have more control in some way," he said. "Interface Builder sucks for anything not 100 percent basic." He pointed to CSS, which allows web designers to do a lot "without needing a masters in computer science."

How Apple could pull off all these changes without scraping current tools and starting from scratch is still a matter for debate, though LLVM is believed to be crucial to future language changes. But Brichter thinks he is ready to prove his point whether Apple is ready to change or not. "Hell, why do we need Apple for this?" he said. "The Objective-C runtime gives us everything we need to build a new superset ourselves." He said he plans to begin implementing his "Objective-Objective-C" just as soon as Twitter for iPad and Twitter for Mac are out the door.

(If you'd like to read what these developers had to say about recommended resources for Mac OS X developers, thoughts on Macs for scientific computing, benefits of RAD languages and tools, adopting new developer tools in Snow Leopard and iOS 4, and more, the full transcript of the live chat—jokes and all—is still available to all Ars Premier subscribers.)

That would be stupid in my opinion. Lowest Common Denominator would apply and can you image what Windows 7 would look like if it was based off Windows CE 5 or 6? There's a reason it hasn't happened at the largest OS vendor on the planet and that's because it is not a good idea.

That and the inane language fanboism shown by the developers removes much of their credibility. C#, C, C++, Java, Javascript, Objective-C, VB and more all have their places and no single environment is universally better than all others.

I'm waiting for the inevitable language war that will come out of this that will then diverge into an IDE war. I can code it all with gcc and notepad damn it, now get off my punch cards. /sarcasm

I don't know about this; the locked-down nature of the iPhone doesn't really bother because of the type of device it s, Apple will lose a lot more than developers if they restrict application installs on a lap/desktop.

Yay, all Macs as locked down as the iPad. Non-Apple approved software need not apply, and say goodbye to Flash and Photoshop. And Apple continues its frantic race into irrelevance as it increasingly abandons the central principle of generativity fundamental to all personal computing.

"It doesn't make sense for them to be developing two of everything, one good, one not as good—two calendars, two address books—it's got to merge somehow."

While I'm sure that there will be (probably is) shared code between the two, the interfaces for a finger based app, and a mouse based app are completely different. I wouldn't want to use either in the other context. That's not going to change anytime soon. It's still very difficult to do a lot of things in a finger based environment. Something as simple and common as selecting, cutting, and pasting text is torture with finger based interfaces.

"It doesn't make sense for them to be developing two of everything, one good, one not as good—two calendars, two address books—it's got to merge somehow."

While I'm sure that there will be (probably is) shared code between the two, the interfaces for a finger based app, and a mouse based app are completely different. I wouldn't want to use either in the other context. That's not going to change anytime soon. It's still very difficult to do a lot of things in a finger based environment. Something as simple and common as selecting, cutting, and pasting text is torture with finger based interfaces.

You don't like the way iOS does it? Out of the BB Storm, and Android devices I find iOS' implementation of cut copy paste to be very intuitive and good.

You know, as Xavin is implying... part of what made the iPad functional is its divergent approach to UI design. Rather than ape Microsoft and try to shoe-horn OS X UI mechanics into a tablet, Apple designed a UI appropriate to the iPad's chief input modality. That logic should work both ways.

I'm open to a rethinking of the dominant desktop UI model, and I see increased API convergence between OS X and iOS as both likely and good. However, unless SJ and the crew are far more clever (or foolhardy...) than we imagine, OS X and iOS will remain meaningfully distinct, if only in their GUIs.

from cnet:Speaking for an hour and a half at the D8, All Things Digital confab, Jobs said the day is coming when only one out of every few people will need a traditional computer.

"When we were an agrarian nation, all cars were trucks because that's what you needed on the farms." Cars became more popular as cities rose, and things like power steering and automatic transmission became popular.

"PCs are going to be like trucks," Jobs said. "They are still going to be around." However, he said, only "one out of x people will need them."

The move, Jobs said, will make many PC veterans uneasy, "because the PC has taken us a long ways."

As for the rest. My understanding is that UIKit and AppKit are pretty much as analogous as they can be while still maintaining distinctions between one UI metaphor and another. Not too much reason to merge them.

What bothers me is that I don't think anyone will step into the void created by the death of the Mac. The Mac does the desktop user experience much, much better than Windows, IMO. We will lose that "better desktop," possibly forever, when Apple kills it.

What bothers me is that I don't think anyone will step into the void created by the death of the Mac. The Mac does the desktop user experience much, much better than Windows, IMO. We will lose that "better desktop," possibly forever, when Apple kills it.

But that is also your opinion I use both frequently but i'm hard pressed to find what makes the UI of OSX any more intuitive then that of Windows. I think both are pretty much on the same level.

If you use OSX regularly Windows will feel unintuitive but if you use Windows regularly the same happens when you use OSX. That was how it was for me at least.

UIKit superseding AppKit will not really impact users. If you think this means that the Mac will have the same application restrictions a la the App Store or some kind of home screen with just a bunch of apps instead of the Finder, you're a complete goofball.

Actually scratch that last part. I could totally see the Finder replaced with the SpringBoard. Wait, what? Oh noes!

I'm still not getting these opinions from Ars that Objective-C and Cocoa need to be replaced or updated. Until there are actual development problems being caused by them, it's pointless. On the contrary, Objective-C is extremely powerful and is a major part of what makes Cocoa so great. The fact it's 20+ years old doesn't matter. Even the remark about automatically managed memory makes it sound more archaic than it is, because Cocoa has reference counting, which *is* a form of automatically managed memory.

iOS has always struck me as being very specifically designed for multitouch screens - which are pretty much nowhere to be seen in modern general-purpose machines. It's a paradigm which works extremely well for the space that the iPhone / iTouch / iPad inhabits, but that's primarily because of the way that hardware is designed and used. I could maybe see some kind of iOS interface as an alternative GUI for OSX machines, perhaps. It wouldn't be the first time they've done it either - anyone remember At Ease in System 7? The basic top-level iOS GUI has always reminded me of that.

I think iOS will become the one and only OS (other than an iOS Server), but...

On devices with larger screens (iMacs or MacBooks with touch screens) it will not be what we have on the iPhone or iPad currently. It will have to support a few extra things...1) windowing of some kind. We need to see two or three apps running "side by side" at times.2) multitasking will be "real" (this will eventually make it's way to the iPhone and iPad too as processors and memory get better)3) ability to use fingers, mouse, keyboard, graphics tablet etc...

Just like iWorks for the iPad, all apps for "Aqua" will need to be rebuilt for iOS. This will be the same as OS 9 -> OS X and will probably handled the same.

The world is moving to touch, so the sooner Apple moves there the better. Doesn't mean the mouse is going anywhere, just means that all apps should work with both.

So basically any fears of iOS are unfounded, the current iOS wont be what we get on our iMacs and MacBooks.

I don't know about this; the locked-down nature of the iPhone doesn't really bother because of the type of device it s, Apple will lose a lot more than developers if they restrict application installs on a lap/desktop.

This is the entire point. It's the single reason I refuse to buy an iPad, despite being intrigued by them.

There is never going to be this surge of dissatisfaction with Apple taking away from the Mac all the freedom and flexibility we've enjoyed on personal computers forever. That's because Apple is never going to take anything away from the Mac. They are just going to let it fade into obscurity (not just the Mac, but personal computers in general they hope).

What's replacing it, the iPad, is already locked down. Unless somebody can compete with it, no one will ever wonder why it's not open, because it's never been open.

I kind of doubt they will be successful, but just in case, I'm going try my best to support more open platforms.

from cnet:Speaking for an hour and a half at the D8, All Things Digital confab, Jobs said the day is coming when only one out of every few people will need a traditional computer.

"When we were an agrarian nation, all cars were trucks because that's what you needed on the farms." Cars became more popular as cities rose, and things like power steering and automatic transmission became popular.

"PCs are going to be like trucks," Jobs said. "They are still going to be around." However, he said, only "one out of x people will need them."

The move, Jobs said, will make many PC veterans uneasy, "because the PC has taken us a long ways."

...that just goes to show that Steve's reality distortion bubble just doesn't apply to computers.

Assuming that all of his rhetoric is infact sincere, you gotta wonder if the guy is a shut-in or something.

What bothers me is that I don't think anyone will step into the void created by the death of the Mac. The Mac does the desktop user experience much, much better than Windows, IMO. We will lose that "better desktop," possibly forever, when Apple kills it.

But that is also your opinion I use both frequently but i'm hard pressed to find what makes the UI of OSX any more intuitive then that of Windows. I think both are pretty much on the same level.

If you use OSX regularly Windows will feel unintuitive but if you use Windows regularly the same happens when you use OSX. That was how it was for me at least.

As an occasional user of Windows I find it more user hostile than it really needs to be. Beyond the annoying things in the Mac that are very much historical but still seem like "being different just to be different", a lot of the approach makes a lot of sense. Windows has a bad habit of shoving a lot of irrelevant crap in your face and forcing the user to sort through all of it.

It used to be said that UNIX was user friendly... it was just picky as to who its friends were. I guess the same can be said for Windows, then However, Windows 7 is really nice. I have a Mac and this PC sitting side by side. I have pretty much zero problems getting things done on either one. Humans are supposed to be very adaptable. If (the general) you aren't... well...

You know...for me, it's not so much the software, as the hardware. I love OS X 10.6. I also love Windows 7. But more than either, I love my iMac and my MacBook Pro. They are functional, compact, and, as icing on the cake, damned good-looking.

Apple "got it right" with the iMac, and I really don't care if I'm running OS X or Windows on it. Sure, Dell and HP (and Sony?) have "all-in-one" computers, but somehow I don't have nearly the faith in those hardware platforms that I have in Apple's.

The pity won't be the (presumed) death of OS X; rather, it will be the move to, as an earlier commenter stated it, disposable iDevices. (And that disposability is one reason I simply don't see any utility in an iPad.

It seems silly to talk about the convergence of operating systems which only recently diverged and still share a fair amount of underlying code and APIs. I would expect the two OSes to evolve in parallel and for components that make sense to be implemented on both sides. Certainly some ideas will be brought back from the mobile platforms to the desktop. And I think some of the things which have been changed in the evolution from desktop to mobile will be rethought in time.