You might be surprised to learn that the original version of Vim (on the Amiga: https://www.reddit.com/r/amiga/comments/l5j53m/the_text_edit...) was a GUI based application! Ok, it didn't have much in the way of an actual GUI, but it ran in a window which wasn't the shell/CLI window. I guess the actual reason why Vim is a console application on Linux is the lack of a "standard" GUI framework.