Snow Leopard, a bargain at twice the price! 2009/08/28

I’ve been using Snow Leopard as my primary OS since WWDC’09 and regularly informing my fellow Omni Groupies that many of the individual features are worth $30 by themselves. They don’t disagree with this sentiment, but I think they might have an issue with the volume of my proclamations.

Today is Snow Leopard release day, and I can finally shout publicly about the amazing work in Snow Leopard! Each of these are going to make development easier and will result in more powerful Mac OS X apps for our users.

First, there are some huge new technologies for developers that will enable entirely new types of applications:

  • Blocks. This has been out of the bag for a while now, but it will be years until the full effect of this enhancement is in force. Never has ^ been a more loved character.
  • Grand Central Dispatch. Hand in hand with blocks, this is a new way to make efficient use of multicore systems. This will lead to easier development of applications that use all the power in your Mac.
  • OpenCL. If taking advantage of up to 16 cores in your Mac wasn’t enough, how about running the same code on your GPU. Or several GPUs and all your CPUs?
  • Clang/LLVM. Amazingly good compiler infrastructure, including a new front-end, static code analyzer, better code generation, and faster builds. If you haven’t run the clang static analyzer on your code, you have bugs. I don’t know how many, but it isn’t zero.

There are also a ton of improvements to existing features. Each of these is worth the piddly $30 Apple is asking for this update:

  • Xcode is improved in so many ways, I can’t even think about going back to 10.5.
  • NSImage/CGImage impedance mismatch cleanup and CALayer support for NSImage content.
  • Per-thread garbage collection!
  • ObjC associated storage. This can be used for good|evil, but when you need it, you really, really need it.
  • Smart quotes, URL-ification, and more Text Checking support that will let us delete load of code.
  • NSPasteboard/Services has a much cleaner API and vastly improved user experience. Also, there was a song…
  • A whole ton of new CALayer subclasses that handle fiddly jobs for us.
  • CALayer.geometryFlipped. Now you can do flipped content reasonably in CoreAnimation!
  • -[CALayer needsDisplayForKey:]. Now we can easily add our own properties that animate the content of layers
  • GPU-dependent CALayer size restrictions lifted. This still seems too good to be true.
  • Sudden Termination: Apps that opt into this will quit immediately when they have nothing to save on logout/shutdown.
  • NSFileManager rewrite. One of the cruftiest classes gets some much needed love, and some great new features like incremental writing.
  • NSURL “bookmark” support — easy aliases for everyone!
  • Concurrent document opening. If an app takes advantage of this, it can avoid hanging when opening a large document.

These are just a few of the things we’ve already benefited from or that we’ve been looking forward to for years. Beyond this, a search of the system headers for 10_6 is a seemingly never-ending litany of features developers have wanted for years and reading the release notes is a trip into the future.

Congratulations and a hearty “Thank you!” to everyone at Apple and all the developers submitting bug reports over the years!

blog comments powered by Disqus