Graphical desktop application programming interfaces
Desktop toolkits for X11-compatible X-servers (GTK, QT)
For contemporary and fast Linux GUI programming, one usually uses a high-level C/C++ programming toolkit library like QT or GTK. For programming languages that come with their own UI toolkits (like Java), one even doesn't have to care about the platform - those languages follow the paradigm "write once, run everywhere". However, in practice you will notice small differences between the platforms, even when the paradigm mentioned should apply.
Classic X11-API GUI programming
The "X Window System" (X11) is window system, which was first developed at MIT in 1984, then it was enhanced by various non-profit organzations like XFree86 and X.Org over the years. On the Debian clients managed by ISG.EE, "X.Org" (X server) is the current reference software implementation based the original X11 server. Most programmers nowadays no longer directly write software that is interacting with the X server server directly (for those who are still interested in that, read: X11 Programming).