> terminal, console, and shell often refer to the same thing.
often, but not always. if someone tells me they made a terminal program to me it means that it can run without any gui. particularly i can run it in tty and without a windowing system. if someone tells me they made a shell program then its much harder for me to assume the above. actually it probably just means a shell script
Well, if you assume they don't mean GNOME Shell, but something like Bash shell, it's still easy to assume it'll work in a terminal. :-)
A pure shell program (without a TUI library like ncurses) is just a more broad concept, as it would also work outside a terminal in something like Emacs' eshell, but it'll always work in a terminal too.
often, but not always. if someone tells me they made a terminal program to me it means that it can run without any gui. particularly i can run it in tty and without a windowing system. if someone tells me they made a shell program then its much harder for me to assume the above. actually it probably just means a shell script