Assuming you're talking about desktop applications and, in that case, you can use almost any language (provided it has bindings to graphic libraries/interfaces).
So, I'll mention what I would use:
Python: The nice thing about python is that it has libraries for almost anything. One of the few things one can't do with python is front-end web development and, even then, there are transpilers to js and web-assembly is around the corner. But I digress; anyway PyQT is one of the best choices, or so I've seen, as far as graphic libraries come.
Javascript: For all the talk about it supposedly being a limited language, one needs to see no further than Gnome Shell to see what can be done with js in the desktop.
C/C++: They are the no-brainer choice. Examples of what can be done with them: Most web browsers, most office suites, most media players, most media editors, most file browsers, most everything really.
Imho, HTML+CSS are the way to go when creating user interfaces today. They are standardized and used by so many people on so many websites, that one can do anything and pass on the source and be sure that the next developer probably knows how to handle it.
With Electron and NW.js, creating beautiful cross-platform graphical interfaces for the desktop is a very easy deed. Bonus: When planning ahead with CSS themes, the GUI can even be tuned to integrate nicely with the desktop environment in use.