The snap experience is bad, and is increasingly required for Ubuntu [long][not-a-rant]
As the title says. The overall user experience with snaps is very, very poor. I have several apps that won't start when installed as snaps, others that run weird, and none run well or fast. I have yet to see a snap with a start up time that I would call "responsive". Furthermore the isolation is detrimental to the user experience.
A few examples:
firefox now can't open a PDF in a window when installed as a snap on Ubuntu 18.04 or 18.10. The "open file" dialog doesn't work. The downloads path goes to the snap container.
stuff that I don't need isolated, like GNOME calculator, is isolated. Why do I care? Because as a snap it takes forever to start, and the calculator I'd really like to have start quickly.
Other snaps like simplenote take so long to open I often wonder if they crashed.
many snaps just won't open, or stop opening for a plethora of reasons. Notables include bitwarden, vscode (worked then stopped, thanks to the next point), mailspring, the list goes on.
the auto-updating is the worst thing ever. Ever. On a linux system I can disable auto-updates for just about everyting EXCEPT snaps. Why do I care? Well, one day, the day before a deadline, I sat down to do some work, only to find that vscode wouldn't open. A bug was introduced that caused it to fail to open, somehow. As the snap auto-updated, I was dead in the water until I was able to remove it and install it via apt (which solved the problem and many others). That little auto-update caused me several hundred dollars in lost revenue that day.
daemons have to be started and stopped via the snap and not systemd. This is a terrible design choice, making me have to change my tooling to support it for daemon (which I'm not going to do, by the way). A great example of that is Ansible - until very recently there was no support for snaps.
logging is a nightmare. Of course all the logs are now isolated too, because for some reason making everyone change where to look for help when something is not working just sounds like a good idea. As if it's not enough that we have to deal with binary systemd logs, now we get to drill into individual snaps to look for them
most system tools are not prepared for containerization, and make system administration much more difficult. A great example is mount. Now we get to see every piece of software installed on the system when we run mount. Awesome, just what I wanted. This is just one example of many.
snaps are slowing down my system overall, especially shutdown. Thanks to it's poor design, there are multiple known issues with snaps and lxd, for example, shutting down running containers. This is just one of many that makes me have to force shutdown my machine daily.
creating a snap as a developer is difficult and documentation poor. You have to use a ubuntu 16.04 image to create your snap, which alone makes it unacceptable. I found myself in dependency hell trying to snap package some software that used several newer libraries than what Ubuntu 16.04 had on offer. The YAML file documentation is laughably bad, and the process so obtuse that I simply gave up, as it just wasn't worth the effort.
This is just the short list, using mostly anecdotes. I won't waste my time compiling a more extensive list, as I feel like the folks at Canonical should have done some basic testing long ago and realized that this isn't a product ready for prime time.
As for Ubuntu in general, I'm at a crossroads. I won't waste any more time with snaps, I just can't afford to and this machine isn't a toy or a hobby. It seems that removing snaps altogether from a Ubuntu system is becoming more and more difficult by the day, which is very distressing. I fear that I may have to abandon Ubuntu for a distro that makes decisions that are more in line with what a professional software developer who makes their living with these machines requires.