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.
Source: ars technica