After a few delays the Khronos Group has released version 1.0 of the Vulkan API - which is often referred to as the next generation version of OpenGL. How will this change things?
Graphics programmers seem to be living their lives in a time reversal stream compared to every other programmer on the planet. In other areas the move is toward an ever-increasing abstraction and a hiding of the details of the hardware. Graphics programmers have made moves in this direction in the past with 3D APIs such as early versions of DirectX, which operated in "retained mode", but today the move is away from such things and back to the hardware - well it sort of is.
There are lots of graphics programmers who are very happy with the level of abstraction in APIs such as OpenGL and perhaps would like things to continue to evolve in this way. However, graphics is still a computationally demanding task and, while other areas of programming have benefited from enough hardware improvement to indulge in software abstraction, graphics always needs still more hardware. Even with the availability of GPUs to speed things up, the need to address the specific capabilities of the hardware to squeeze the last drop of performance out has been important. In fact the existence of GPUs has made this even more attractive, with real-time high quality graphics only just out of reach.
Put simply, for the 3D CAD community OpenGL is more than enough and well worth using for the simplification it offers. For the real-time graphics programmer it is time to move to Vulkan and pay the price of increased complexity and hardware dependence.
Vulkan is a development on AMD's Mantle a proprietary low level API and it stands alongside rather than replacing OpenGL. At the moment overall support is low so don't expect to see lots of new games that run 10 times faster than the old ones. Nvidia has release a driver which passes the conformance tests for Windows and Linux. There is a driver from Qualcomm which passes the test for Android, but AMD's beta driver has not yet reached conformity.
Vulkan is in competition with the latest DirectX, i.e. version 12, and with Apple's Metal API. However, Metal isn't as low level as Vulkan - it is more something between DirectX 11 and 12. It is argued that developing using Vulkan has the huge advantage of being platform independent and open source whereas DirectX 12 is tied to Windows 10 and Metal is tied to Apple. The biggest problem is that it is very early days for Vulkan and there are few tools.
Perhaps one day soon the hardware, or perhaps more likely the software, will develop to the point where graphics programmers can join the mainstream and start moving towards increased abstraction and further away from the hardware. Until then we have Vulkan 1.0.
Researchers whose work revealed the "bow-tie" structure of the web, thereby improving search engines, have been awarded the third Seoul Test of Time Award at this month's World Wide Web Conference, he [ ... ]
The results of the 2017 Stack Overflow survey are available. They cover many different aspects of the developer landscape and one that is of immediate interest is what we can expect to be paid and whe [ ... ]