The evolution of OpenGL basically goes like this: Immediate mode -> Modern OpenGL (3.0+) -> Direct State Access -> Vulkan. As the APIs have progressed, progressively more control has been given the the programmer.
Direct State Access provides a nice balance between verbosity and control. In particular, getting rid of the “state-machine” construct makes interacting with the GPU feel much more similar to native C++.
Early OpenGL does not provide enough control to the user, but Vulkan can make getting started with graphics very intimidating and prototyping / experimenting with the GPU challenging.
The research I did resulted in applications that explore many of the ways in which DSA leads to a more elegant programming experience.
The featured images show just a few examples of applications made easier with DSA. These include (in order) tessellation, an example of the Phong Illumincation Model and a realtime raytracer.