What if I would like to have different versions of the same application ? Or even the same version twice ?
I heard there some new technology ("Modularity") in Fedora 28 that allows to do that.
Are there any way to do that in Ubuntu now ?
Two roads to look at here, neither seamless but both functional.
For multiple configs, what you can do for traditional binaries is to create a new user. When you want to run a second config of a given program, execute it from terminal as that user. Do an
su <user> in a terminal and then launch the program from there. All the config files for that program will be grabbed from that user's home directory.
For different versions or modified parallel binaries, things get a bit messier.
If you want a specific version for legacy purposes, that isn't too hard. Just install the version you specifically want as discussed here and then copy the folder in
/usr/lib to a new one in the same parent directory under a different name. Now, you can safely update the original app and still launch the legacy version by launching it's executable under the directory you cloned.
It doesn't make too much sense to have two different versions, both updating with one behind by some amount, but unfortunately that behavior isn't officially supported as of yet on Ubuntu (though who knows what new features will come with snaps/flatpaks and the like.)