I think node is the wrong word. This idea came from using lots of programs whose primary function worked well but had terrible UIs or other features didn't work well. I think it would be great if you could just write code for the core function that you want your program to have and then plug it into other people's functions to make everything else work. Like you said, you can do this to an extent with libraries; however, people only write a library if that code is heavily used. Most people just make a program. Basically all you would have to do to make a program would be to connect different function's inputs and outputs or write your own function if you wanted to. I'm not sure if that makes sense or if this is the right forum for something like this, but thank you for the response.
Again, you can do that already. Numerous programs already do that. Many Linux programs that follow the Unix philosophy have a purely textual interface.
e.g. vim, emacs, git, gcc, gdb, vlc
All of the above programs work in the terminal.
They also have one or more graphical front-ends that allows you to run them on the desktop!
gvim uses GTK to provide a GUI for vim, I can’t remember what the GUI version of emacs uses. There are numerous IDE’s, implemented using various GUI libraries to wrap/encapsulate the functionality of git, gcc, gdb etc etc.
VLC has a few different GUI’s available. I think QT is the library used to provide the primary interface. But there are (or were) a couple of others in things like GTK, cocoa.
And then there is nmap which has the zenmap GUI. I could go on and on!
So, many programs that can run in the terminal can also be wrapped/encapsulated in GUI’s and given a more attractive front-end.
Granted, there are some applications that are purely GUI only and do not put their functionality into libraries.
But again, you have graphical programs like Gimp which have extensive plugin libraries which provide custom functionality. It can also access and use functionality from other external programs. It is also scriptable. You can write scripts to perform many tasks in gimp.
Blender is another GUI application with tons of functionality built into it, but it also has a lot of plugins available. And it also has a complete Python API. Every piece of functionality in blender can be accessed via a script. So it’s perfectly possible to set up a .blend file and a script to manipulate objects in the file, change different settings/parameters and render an image, or an animation.
The video editor Openshot leverages blenders Python API in order to generate animated text effects which can be used for generating credits, or on screen captions, or any other text based animation. You can even set up your own text animation plugins for openshot in this way too!
So there are a lot of GUI programs which can already use functionality from other GUI programs.
So we’re already using lots of programs like this every day. And many of us probably never even realise it!