"Of course Apple had to remain the jerks they are and not support Vulkan natively, forcing developers to write translation layers[2]..."
We write programs that use DirectX,Metal, OpenGL/OpenCL, and now Vulkan and I disagree.
We believe competition is great. OpenGL/CL was in theory a standard but over the years we had to funnel way more resources to make that work than with DirectX or Metal combined. Why? Because of the "design by committee" mentality of OpenGL/CL.
The only reason they had to react with Vulkan was competition from private companies and even then the reaction was slow and painful for those that were forced to support the bloat software for years.
We could do the same thing in OpenGL/CL with 5 different ways,one modern way and 4 obsolete but not pruned from the standard because some company of the committee that had obsolete legacy code banned the removal.
This made the codebase so big and hard to maintain, and expensive for developers to support.
If Microsoft and Apple runs circles around those people, they are forced to act and develop a better standard.
For us it is easier to develop translation layers that support OpenGL/CL messiness.
Competition is great, sure. But Apple are anti-competition here. Competition would mean choosing between using Vulkan or Metal on their system. Where is that choice (wrapper is a workaround, but besides)?
All those lock-in proponents are actually scared of competition. So we are not in disagreement. Competition is indeed good. Lock-in however is not, and lock-in is anti-competition.
> The only reason they had to react with Vulkan was competition from private companies
It's the other way around. The only reason MS and Apple suddenly woke up is because AMD was planning to open up Mantle (which resulted in Vulkan). Except they reacted in their usual manner. Instead of helping the shared effort they pushed for more lock-in.
I am not scared about Apple getting a monopoly. They are not going to sell as much as Android because they only care about the high margin stuff.
I am more worried about Microsoft though, with Windows and Xbox they force millions of people to use DirectX.
Yeah, we agreed on that . It took millions for our company to support OpenGL/CL only because we did not want to make our code dependent on just one provider. It was tough to justify that decision (financially). Decision that only started to pay back with Android popularity.
The good part is, since all of them (Vulkan as well as DX12 and Metal) have roots in Mantle, they have a lot of similarities, which makes creating translation layers easier. So I wouldn't be surprised if we'll see Vulkan → DX12 layer in addition to Vulkan → Metal one. As well as other way around.
> As though its of no cost to Apple to make Metal available on every platform, or support other products on their platforms?
It was of no cost for them to simply copy most of the ideas from Mantle to make Metal, saving all that huge effort on initial design, isn't it? Somehow that doesn't surprise you. But when they are criticized for not doing it in the opposite direction (by sharing the effort and supporting the common API), you are surprised.
PS: Things like compilation of shaders really made us suffer with OpenGL/CL. Those guys did not want to do it, so simple, and they did not do it for years, because they could.
No matter what feedback from developer were, those people didn't care. But Microsoft did and forced the guys to react much later.
The same thing happened with so many things to mention here, like asserting the same quality on different machines that save millions to companies in debugging time and money.
We write programs that use DirectX,Metal, OpenGL/OpenCL, and now Vulkan and I disagree.
We believe competition is great. OpenGL/CL was in theory a standard but over the years we had to funnel way more resources to make that work than with DirectX or Metal combined. Why? Because of the "design by committee" mentality of OpenGL/CL.
The only reason they had to react with Vulkan was competition from private companies and even then the reaction was slow and painful for those that were forced to support the bloat software for years.
We could do the same thing in OpenGL/CL with 5 different ways,one modern way and 4 obsolete but not pruned from the standard because some company of the committee that had obsolete legacy code banned the removal.
This made the codebase so big and hard to maintain, and expensive for developers to support.
If Microsoft and Apple runs circles around those people, they are forced to act and develop a better standard.
For us it is easier to develop translation layers that support OpenGL/CL messiness.