I think the comparison with OpenGL is stretched. The problem with OpenGL is that it was made to a describe a limited hardware pipeline corresponding to a graphics card from the mid 90s. Manipulating this state machine is cumbersome and made more difficult by the lack of easy debugging.