I’ve written many times how important the Ivy/Counsel/Swiper package is to my workflow. Other than Org-mode, it is the most important package in my Emacs panoply. Even so, it does so much that I don’t make use of all its capabilities.
I was, therefore, very interested in a post by Jeremy Friesen in which he describes his move from Ivy/Counsel/Swiper to Selectrum. Friesen has been a happy Ivy/Counsel/Swiper user since he became an Emacs user a year ago but decided to switch to Selectrum. His reason for doing so—as far as I can tell—is that Swiper et al. have grown organically, added some special cases, and therefore become more complicated at the source level. Selectrum, on the other hand, tries to adhere to the Emacs API and is therefore simpler.
I have to admit that I don’t really understand the objection. Unless you’re planning on hacking on the package, its complexity is a minor matter. Yes, complexity unchecked can lead to maintenance problems in the long term but I’d pretty sure we’re nowhere near that point now. In fact, every time I see a problem reported on, say, reddit, the first comment is usually from abo-abo with a solution or an announcement that he’s already pushed a patch.
Still, I understand that some want a simpler solution that doesn’t try to do so many things. If that describes you, give selectrum a try. If you like having unused capabilities in reserve for the day that you do need them, maybe you should stick with Ivy/Counsel/Swiper.