You can always have a choice between official APT repositories and third-party ones and/or PPAs. For example GIMP has a PPA.
Snaps and Flatpaks need to download big runtime parts. You should learn more about them before actually using them. And you can choice - do you want to waste disk space and network traffic to use them, or not.
Some developer applications are available in Ubuntu Make.
In your particular case - GIMP needs to download GNOME runtime (
runtime/org.gnome.Platform/x86_64/3.28) and dependencies (check flatpak org.gimp.GIMP.json for details):
$ flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref
The application org.gimp.GIMP depends on runtimes from:
Configure this as new remote 'flathub' [y/n]: y
Required runtime for org.gimp.GIMP/x86_64/stable (runtime/org.gnome.Platform/x86_64/3.28) found in remote flathub
Do you want to install it? [y/n]: y
Installing in system:
org.gnome.Platform/x86_64/3.28 flathub 6d1d0ebbd724
org.freedesktop.Platform.ffmpeg/x86_64/1.6 flathub d757f762489e
org.gnome.Platform.Locale/x86_64/3.28 flathub 2823e3d81b74
org.gimp.GIMP/x86_64/stable flathub 1fcb2c783cf6
permissions: ipc, network, x11
file access: /tmp, host, xdg-config/GIMP, xdg-config/gtk-3.0
dbus access: org.gtk.vfs, org.gtk.vfs.*
Is this ok [y/n]: n
Here there is one positive moment - this runtime may be reused by other later installed FlatPaks.
Personally I prefer PPAs over Snaps and Flatpaks and install several applications from
umake (for example Arduino IDE).