Vulkan is very unforgiving of errors and it doesn't hold your hand
yet it has an extremely useful feature - validation layers. if you enable parameter validation layer for example it will tell you every time you pass in an invalid parameter to a function. but it is extremely low level and I am now at about 100 KB of code just to get Vulkan to initialize and start rendering. This is off topic of course, but I have been researching Vulkan for the last 6 months, it is very promising. Bero, has done some amazing work to make Vulkan available for pascal developers here https://github.com/BeRo1985/pasvulkan.