iOS 9.0 was released on 16 October and OS X 10.11 on 30 September – between the release of iOS 9.0 and OS X 11 Apple released two updates with the first being specifically for iPhone 6S devices and the second being for all devices to address last minute bugs that were annoyances rather than show stoppers. With the release of OS X 10.11 it marked what appears to be a maturity of OS X in terms of harmonising the frameworks between iOS and OS X such as Metal coming to the OS X platform along with moving key system components from using OpenGL to using Metal as well as many under the hood optimisations that have yielded performance improvements even on hardware that are not Metal compatible. There have also been long complained about bugs fixed with the biggest being the move back from discoveryd (implemented in 10.10) and then transitioned back to mDNSresponder (implemented in 10.10.4) and the further development of mDNSresponder in 10.11 meant that over 300 bug reports alone could be closed off not to mention also hitting bugs relating to Wifi reliability that had also been a plague for many OS X users through out the 10.10.0 release cycle.
One of the first things you’ll notice with 10.11 is the improved responsiveness even on relatively older machines such as my iMac circa 2013 with a 780M GPU where there are bits and pieces of improved performance – as they say it is those little things that count and when they culminate they result in a better over all experience. The boot time has gone down to the point that my computer loads up faster than me being able go to the refrigerator to grab a drink then come bak which amounts to a journey of 10-15 metres at the most. Once loaded the time between login and a usable desktop with the only menu bar item to load is the ‘Drobo Dashboard’ which loads pretty quickly – keeping in mind that I connect to the network via my router which uses powerline networking (I keep the Wi-Fi working because it allows me to send things back and forth between my iPhone 6S and my iMac using AirDrop).
The best insight in terms of how the compiler improvements might translate into better over all performance can be tracked on the LLVM project website ( link ) which probably involves large parts of the operating system moving from linking against the GNU C++ library to the modern super optimised libc++ library that was shown off a while ago on one of their presentations that they have a couple of times per year. Lots of stuff is occurring under the hood and with the move by Apple to their own compiler chain it means that they’re in a much better position of being able to control the direction and now have to deal with the politics of a large and disparate community such as the GNU GCC tool chain which sometimes have goals that don’t line up to where Apple wanting to be taking their development tools in.
Metal and Metal Kit, although immature in its current form, I could see eventually growing into a replacement for OpenGL and OpenGL ES on iOS and OS X. When it comes to Metal, that is the low level framework which gives developers the closest bare metal access to squeeze every last bit of performance out of the hardware which is similar to what Valkan promises to deliver where as Metal Kit would be closer to what OpenGL provides. In the OS X world the term ‘kit’ tends to refer to the more high level abstraction which is based on the lower level version where by lots of boiler plate common uses ‘things’ are provided in the kit itself so then developers don’t need to recreate it. In the case of El Capitan, Apple has taken advantage of Metal in many parts that were once done by OpenGL but I could imagine that as Metal become more mature and feature complete that we’ll see more parts of the graphic and compute stack moved over to utilising Metal.
There has also been a move to tidy things up – for example, the VideoDecodeAcceleration (which is based on the proprietary nVidia acceleration framework) is now replaced with VideoToolbox.framework which takes advantage of Metal/Metal Kit and other modern frameworks to provide a consistent hardware acceleration experience for encoding and decoding without spending a copious amounts of time getting each individual framework working well with a new hardware release. Moving to a standardised underlying technology means that it is a matter of getting that underlying technology working on new hardware and then everything sitting on top will automatically get the benefits automatically without having to muck around.
Metal and OpenGL’s future:
Although nothing has been said by Apple regarding the future direction of OpenGL and OpenCL other than being able to use it in conjunction with Metal and Metal Kit I do believe that after many years Apple has arrived at the same impasse that Microsoft hit when they made the discussion to develop DirectX after many years being a champion of OpenGL and participating in the OpenGL steering committee. Although in the past the argument for OpenGL was tapping into the larger gaming ecosystem the situation today is very much different when one considers that Apple was a smaller player before the rise of the iPhone and iPod but things have changed and Apple can now leverage their position in the portable games market to help the Mac ecosystem. A combination of great hardware, well design framework and great developer tools will provide the same sort of push that developers need to embrace Metal in very much the same way that Microsoft provided great communication, support and tools to get developers to embrace DirectX after many years of supporting OpenGL and developers using DOS because it provided them with low level access to hardware back in the bad old Windows 9x days.
When it comes to Metal and Metal Kit, in the long term Metal will eventually develop into a richer experience as hardware becomes more feature rich (adding hardware specific tessellation rather than providing functionality by bring together various low level parts) on the iOS platform whilst Metal Kit being able to piece together like a jigsaw those low level features into the sorts of higher level abstraction that exists in OpenGL. Although I am a big fan of open standards such as OpenGL I also have to be realistic that sometimes you end up with momentum moving forward being crippled by vested interests and that maybe it is better that the money is spent on developer tools to make moving code between DirectX, OpenGL and Metal rather than trying to come up with a grand unified one size fits all which ultimately leaves no one happy. The other benefit that I can see is Apple being able to have the sort of control over hardware and software development so that there is a movement forward of feature parity.
For example, in AV Kit it provides UI functionality that is common for video players that application developers need within their application. What that means, rather than the programmer having to create a large sways of code bringing together code from various low level frameworks, Apple provide a high level kit which enables all that handwork and drudgery to be taken care of for them – the developer can focus on more important things and the end user ends up with a more consistent experience – we all end up winning in the end.
The Disk Utility GUI has been re-written from the ground up to provide a more simplistic GUI but the underlying features are still there but are only accessible via the Terminal which to be completely honest if you’re a ‘power user’ complaining about having to use the terminal then you’re probably not a power user in the first place. I remember reading about someone having issues with SoftRAID on OS X but I’m unable to confirm whether the issue still remains since I have a Drobo 5D device. Although the Drobo 5D is a RAID of sorts, all that is hidden from the operating system itself as OS X just see it as a giant size single hard disk with the onboard operating system on the device taking care of the details such as the RAID configuration meaning that I’m not impacted by any RAID related issues. According to ‘Mac Performance Guide’ the RAID functionality has been removed (based on the blog post dated 9 October 2015) – and regarding my reply to his hyperbole of, in a nutshell, “Tim doesn’t love us any more”, manually managed RAID devices are dead and only maintained by a few hard core knuckle draggers who believe that allowing the operating system built into the RAID device to manage the storage and present it as a single disk is apparently the ‘tool of the devil’ (lets not get started on his whinging about ‘Save/open dialogs still have resize bugs and grow to fill the screen just as in OS X Yosemite.’ when the solution has been known for ages – do a fucking clean install (yes, really, do one – don’t argue, don’t complain “I shouldn’t need to”, just do it and stop your whining. Nothing annoys me more than people who are given solutions, ignore the solution then continue to whine – if you ignore a solution then you forfeit your right to complain).
Mail has had a refresh with support for swiping from the left or from the right in much the same way you can with iOS along with an improved reliability experience as so far as when I’m using my email account which is an iCloud one. I’ve heard many horror stories about people with their Yahoo, Google or Hotmail personal accounts and when they switch to iCloud everything seems to go a lot smoother. For me, my email account is dated right back to when I purchased a MobileMe subscription and I’ve been with them ever since especially when trying for many years with multiple clients to try and get Gmail to work only to simply give up in horror at what a mess Gmail was and Google’s flat out refusal to abide by the IMAP standard because they wanted to include some rinky-dinky pointless features that the IMAP standard doesn’t cover but apparently end users “oh so desperately need”.
Notes have been updated so that rather than using the frankenstein IMAP implementation it has been moved over to the Cloud Kit which has support for font and type styling along with embedding photos and so forth. I’m unsure about Reminders as to what protocol it uses but I have a feeling it is probably either using CalDAV or Clout Kit but what ever the case maybe things have been pretty reliable. Word of caution though, when you load Notes for the first time after installing 10.11 you’ll find that it’ll ask whether you want to upgrade to the new Notes format – keeping in mind that if you have devices running software before 10.11 or iOS 9 then they’ll no longer be accessible.
As noted before, various frameworks have been updated to reflect the change in priorities away from OpenGL towards metal as well as modernising the audio and video capture, the USB stack has been completely re-written from the ground up, more of the various components have been moved from using QuickTime to using AV Foundation such as Safari. Over all the improvements haven’t resulted in user visible features but it has gone a long way to making OS X stable, reliable and more secure. Although there have been much fanfare regarding the ‘rootless’ mode of OS X, that will serve as an interesting litmus test to the naysayers in reference to improving security for OS X over all without giving up the sort of flexibility that end users have come to expect from having a general purpose computer.
Oh, and I guess iOS 9.0.2 needs to be covered too:
I received my iPhone 6S the day it was released (Friday) it arrived in the morning and I was pleasantly surprised at how reliable it was when compared to previous x.0 releases that had been delivered in the past but had been very rough around the edges even if they didn’t result in catastrophic failures resulting in necessarily down time. I’ll upload a second article in the next few days to address the experience and how it compares to 8.4.1 and previous releases along with what else is out there in terms of smartphone operating systems.