The X11 toolkit is written in the C language and accessed at quite a low level, so it is not easy to program for. “Widget sets” were developed to make this development more consistent and less low level; these evolved into object-oriented APIs, and there are several of these. From time to time there are proposals to replace this layer with new code, but it is not likely to happen soon.