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 objectoriented 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.