Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There have been (though don't quote me on this) stories about how everything Khronos standardizes reeks of design-by-committee, to the detriment of the final standard.

An obvious example would be OpenGL, which nobody has called a well-designed API.

But there's other misfires as well. OpenCL hasn't exactly set the world on fire compared to CUDA. OpenVG was a standard for accelerating 2D Graphics that was a little too late to matter. OpenXR? Well, at least Oculus is actually using it. WebGL? The W3C is working on replacing it with the (far superior) WebGPU. WebCL? Well, that was a JavaScript system for OpenCL, and that was as bad of an idea as it sounds.

And of course, most recent example: Vulkan. Almost everyone who has actually used Metal has commented on how it is much, much easier to hit the ground running than Vulkan, because Vulkan requires mountains of boilerplate. (It's also worth remembering that every iOS Developer builds for Metal, so it isn't like there isn't knowledge out there about how to use it - it's just among mobile game developers instead of the AAA developers).



I'm a graphics programmer and basically write Vulkan code full time. It's an amazing and excellent API with an absolutely crazy good documentation. I've done some DirectX and Metal work too, and while they are definitely less verbose, I find them much harder to use because I have to rely on my intuition and prior experience for how things interact with each other. With Vulkan, it's spelled out for me in the specification.

Yes, Vulkan comes with more boilerplate. But who cares? Vulkan was meant to write your engine in, not something you call directly from client game code. It works extremely well and Khronos deeply cares about Vulkan and continuously improves it. Part of the verbosity also comes from the fact that Vulkan scales from small embedded SoCs to big gaming GPUs and everything inbetween, so the API has to cover a lot of potential hardware quirks. Viewing Vulkan as a kinda low level HAL helps explain a lot of the verbosity.

Anyways, long story short, I absolutely love working with Vulkan and after having been Vulkan programmer since basically day 1 of its existence, you can take it from my cold dead hands.


Your comment isn't really that informed.

OpenGL wasn't designed by Khronos, rather it was designed by SGI and called GL. It was then given to Khronos and then maintained it.

OpenCL wasn't designed by Khronos either, rather it was designed by Apple and then given to Khronos to maintain. It was orphaned when Apple gave up on it, and not because of Kronos's leadership but rather Apple decided to go all in on Metal, their proprietary solution that did graphics and compute shaders.

Vulkan also wasn't fully designed by Khronos, rather it was based heavily on Molten from AMD, which was gifted to Khronos. It is much more widely used than Metal.

That said, benevolent dictators who are competent can out do committee decision making, but committee decision making is often better for an industry as a whole because it aligns different interest groups.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: