And there might be some interaction with the Vulkan team.
There better be! Let's just hope the Apple logo on the Khronos site doesn't just sit there for nothing! That is, Apple would just be "watching" what others were (not) doing.
Yes, I have to agree, from a business perspective, it totally makes sense to also port Metal to OS X for at least two reasons:
- They have already invested lots of research to bring it to iOS
- Providing another supported platform (OS X) is another incent for developers to actually use that technology
Altough any small to medium sized game developer studio (let alone "hobby 3d developers") won't touch Metal themselves (which is by design even on a lower level than OpenGL - basically the application takes over responsibilites that were previously the duty of an OpenGL driver!), but rather use an existing Game Engine such as Unreal or Unity (which do or will support Metal), so the second point might not be that important anyway (since those Game Engines are usually cross-platform anyway).
And third: Metal is already there in the real world, whereas Vulkan doesn't even have a "public draft", as far as I can tell -
https://www.khronos.org/vulkan - "expected later this year".
So maybe Apple simply didn't want to wait, or deliberately turned away from Vulkan (worst case!) in order to have their own "unique selling point" (and be master of their own API, and change it as they see fit!).
But there is off course hope that Apple will put their experience into an upcoming Vulkan implementation of OS X, which quite frankly wouldn't be ready before the next iteration OS X 10.12 (2016) anyway, given that we can "expect a first Vulkan Draft and implementations by end of 2015". At least the Vulkan API, which might then be simply a "wrapper" over their existing Metal implementation. That would already be a BIG WIN for cross-platform 3D programming.
Because quite frankly: if we won't get to a common 3D API, it's either Game Engines (which on their part put overhead already - and I don't even know about shaders: do they all provide their own Game Engine shading language, or even worse: "pre-defined effects"?), or you're stuck with a given technology.
And how are students going to learn 3D programming? Do you really want them to lock them into a single-platform technology? OpenGL was so promising over all these years, even though it collected lots of cruft from the past. And Vulkan promises to get rid of that, while still being cross-platform!
And now it seems we're all going back to the early 1990! (Anyone remembers this:
http://en.wikipedia.org/wiki/Glide_API ?
)