Shaders have always been little programs that run on your GPU, it's just that their original intention was to operate on and then output a texture/set of pixels, which you would render to your scene. However a texture/pixel set is just bits at the end of the day, which can be used to represent other data than colors/alpha as well.