Although this year's Apple World Wide Developers Conference has everyone talking about the 3G iPhone, it's not the only thing to come out of Apple's annual developers meet & greet. Most of WWDC is dedicated to showcasing new technologies and techniques for developers along with filling them in on what Apple's going to be doing in the next year so that developers can plan things accordingly. Unfortunately much of this isn't shared far and wide, and with whom it's shared there's an NDA making sure it doesn't go any farther.

But this doesn't mean that we don't get anything out of WWDC, just less than we'd like. Case in point, Apple has announced that they're already working on Mac OS X 10.6 "Snow Leopard" which they will be releasing in roughly a year. Snow Leopard is billed as a rather minor upgrade from the end-user side of things as Apple focuses on performance and stability rather than 129 new features. Given that Leopard was coldly receipted by Apple standards, this probably isn't a bad choice by Apple. This doesn't mean that there won't be any new features however, Snow Leopard it appears is all about the developers as Steve Jobs embarks on a search for the Holy Grail of computing.

On the development side of things, there are two technologies that Apple is talking about right now: Grand Central and OpenCL. Apple has become (rightfully) concerned about the disjoint advancement of hardware and software that can use said hardware. We've talked before about how the movement from a fast single-core CPU to a slower multi-core CPU has created problems for developers; writing good multithreaded code is hard, really really hard. It's hard because doing multiple things at once is difficult to schedule, it's hard because doing multiple things at once can lead to odd results (race conditions), it's hard because not everything can even be split-up/parallelized, and it's hard because C-style languages were originally designed to be written and executed in a very linear way. Given the difficulties in writing good multithreaded code, it has become the Holy Grail of modern computing to be able to easily write/convert large programs so that they are efficiently multithreaded.

Grand Central is Jobs' search for this Holy Grail. Apple hasn't released a great deal of information about Grand Central beyond closed doors, but we do know that it's a new technology Apple is working on to make it easier to write multithreaded applications. They have even gone so far as to call it a "parallel-processing breakthrough" when talking to the New York Times; Apple makes no small boast in this case. The big question is what exactly Grand Central is, as "technology" is all all-encompassing term that can be anything from a library of optimized functions to an entirely new programming language. Apple seems rather attached to Objective-C at this point and libraries have proven to only be useful in very specific situations so we consider either extreme unlikely, but the middle is also a very big place.

We've thrown around the idea of a new auto-parallelizing compiler or perhaps something in Xcode to help direct developers on writing better multithreaded code, but really anything is possible with such vague descriptions. The bigger question on our mind is if Apple is capable of making this kind of breakthrough; they have some very capable engineers but they're also not on the list of companies we first think of when discussing fundamental computer science problems. The company's strength has been in business, hardware engineering, and "soft" programming issues such as GUIs and usage patterns; Apple does not have a lot of published experience at solving the hard and overly technical problems such as multithreading. We very much hope to be proven wrong here as a breakthrough as big as Apple is promising could change the entire industry, but when one goes searching for the Holy Grail a little bit of skepticism is in order.

Moving on, we have the other piece of Apple's new performance technology, the Open Computing Language (OpenCL). OpenCL is a C language for GPGPU computing, similar to CUDA and Brook+ for NVIDIA and AMD respectively. Currently CUDA and Brook+ are incompatible, both are C but the languages are different enough that programs are not portable between the two, and neither can compile for the other company's GPUs. Full GPGPU support has been notably absent from the Mac so far while CUDA and Brook+ have been supported on Windows and Linux for some time now. We have heard that Apple has wanted to add full GPGPU support to the Mac for some time now (having been one of the first companies to embrace early GPGPU usage for their video editing applications) but we have also heard that they are unhappy about the incompatibility between the GPGPU languages. They don't want to have to write two of everything, nor do they want their developers doing so. There are 3rd parties that offer GPGPU programming environments that are cross-GPU compatible, but these are expensive and not at all open in any sense of the word.

So we have OpenCL, Apple's proposed universal GPGPU programming language and API. From what we know it looks like Apple is trying to make OpenCL the GPGPU sibling of OpenGL, but like Grand Central Apple has said very little so far. We're not sure who (if anyone) else is backing OpenCL, although we expect AMD and NVIDIA to be on-board otherwise the whole effort will fall flat on its face without support from the GPU manufacturers. Apple has said it's beyond CUDA and Brook+, although we're not entirely sure in what way. From what we've seen of CUDA and Brook+, both are very powerful and very functional languages, so it's unlikely OpenCL is adding any new features that will expand what developers can do; nearly anything can already be done. Rather it seems Apple will be going the simplification route, as CUDA and Brook+ are anything but simple to program for; they may use C but they currently have many nuances that have to be dealt with. An even further generalized framework that's more open to less technical programmers may be what Apple is shooting for. But like Grand Central, we're going to be waiting some time until Apple fully explains where they're going and why.
POST A COMMENT

18 Comments

View All Comments

  • Ananke - Wednesday, June 11, 2008 - link

    Steve Jobs is just amaizingly smart business person. Not so many like him can be found. Apple still have problem however, if they are locked to AT&T only, they are making the elasticity of demand not so much elastic - particularly if Nokia computer devices are so much more open and getting closer to design to iPhone. Nokia's N800 needs only phone capabilities, and for $200 for unlocked device, Nokia's will be unbeat. Obviously, Motorola and Sony are very much out of the phone business Reply
  • TheJian - Wednesday, June 11, 2008 - link

    Umm, Apple's new iPhone is going for $199 for 8GB model, so Nokia can't come out with a $200 that's unbeatable. Last I checked apple's phone is unlocked (hehe, jailbreak anyone?). If the N800 is already $200, what makes you think they'll add Phone abilities for FREE?

    Also, last I checked it was $280 on cnet for N800. Maybe you can get it cheaper with a contract. Last I checked it has NO GPS. Last I checked it has a puny 128mb flash. Yeah you can add some, but doesn't that cost more money? Last I checked Cnet's review said VIDEO SUCKS on it! Isn't a glorious screen meant to be used for Video? Can't sync with my PC? WTF? 3hrs battery vs 5hrs for iphone? Hmmmff...There's probably more but that's just a quick rundown on your supposed iphone killer.
    Reply
  • Ryanman - Thursday, June 12, 2008 - link

    your fanboyism is palpable. Absolutely ridiculous how you'd write two paragraphs on how superior the Iphone is.
    You stick with your brushed aluminum and glass hardware that Apple marks up by %55 and locks into a ridiculously controlled environment. The upped service charges alone erase any possible advantage it could have. I'll respectively pass on such an offer.
    Reply
  • ksherman - Wednesday, June 11, 2008 - link

    Hmm, this isn't really about the iPhone at all.

    Kudos to Apple for looking into these issues. I think that while maybe they arent on the forefront of computer science, I think they have sat back and looked around for someone to come up with a solution. They really seems to be looking out for their developers (which is interesting, but makes sense. Make it easier to code for your machines and there will be better app support etc.) and are sick of nobody stepping up. Maybe they have something. Maybe they only have an idea with the illusion of substance. Who know, only time will tell.

    If Apple is able to deliver on Snow Leopard what they are saying they are going to do, it could really be revolutionary and VERY welcomed.

    Lets go Apple!
    Reply
  • Barack Obama - Wednesday, June 11, 2008 - link

    It's ironic how Apple is seeking to solve stability issues after critising windows for its lack of stability. Reply
  • Corland - Wednesday, June 11, 2008 - link

    If by ironic you mean entirely appropriate, I agree. If you think because another platform is less stable than yours, you can sit on your laurels and not improve stability, you will soon be the least stable system..... Reply
  • mikeepu - Wednesday, June 11, 2008 - link

    Agreed. The same should go for any company. Just because company A might be on top today doesn't mean that company B won't rise to topple company A. Classic example: AMD and Intel. Both have been caught with their pants down while resting easily on top.

    The continued desire, search and action towards improvement in anything whether it's software, hardware or life in general is not as bad as some might think.
    Reply
  • aeternitas - Tuesday, June 10, 2008 - link

    Juicy Reply

Log in

Don't have an account? Sign up now