Recently I watched some Handmade Hero episodes where Casey says that there is no more reason to Vulkan exists because we have D3D12 on Windows and Mac has its own library, Metal.
In some extent I agreed with that. But, there is something to consider here. D3D12 requires you to compile as C++, since we have to deal with the COM (Component Object Model) stuff and a lot of D3D12 functions requests a __uuidof(some type) parameter, which retrieves some GUID.
Personally, I don't like to compile as C++, even writing C in the cpp file, I don't know what the compiler can do behind my back. I know that Casey compiles as C++ but writes mostly C, and he knows what he is doing, and this is even something that I wanted to know also. Is there something wrong about that? Can optimization be affected?
So, considering someone who wants to use one of these modern graphics APIs, would want to compile as pure C code, without have to deal it the COM stuff, be a good reason to use Vulkan instead of D3D12?
I tried to compile D3D12 code in C and I always get that the __uuidof is C++ only.
Also, I want to start using Clang on Windows, and I'm not sure if there is this __uuidof stuff in Clang.
My point is... there are some options out there when it comes to graphics APIs. Personal development preferences, like programming languages and compilers, are good reasons to choose one over the other?
PS.: Sorry for any english grammar mistake.