At the heart of the software, the implementation is the application of the ideas that stem from the programmers imagination, with many different approaches reach to the same conclusion at the end. However, the path that is taken to reach that conclusion is sometimes bumpier than the others and sometimes, it is outright wrong. This is why program bugs exist, because not all solutions are born equal, and as a consequence, they yield different amount of efficiency and correctness.
At this point, we can pretty much agree that incorrectness of the programs stems from the flaws in the implementations, right? So we can now discuss about a rather popular, but buggy program. Or should I say a suite of programs? KDE.
Now, KDE has many neat features. It has a fucking taskbar for starters, in contrast of its closest competitor, GNOME. It has a much better design than any other desktop environments I have seen. It has a proper file manager. It has fancy promises. But underneath them, there lies an ugly truth, that KDE is a buggy mess.
KDE will crash on you when you least expect it. KDE will completely restart the computer when you are adding another torrent to the most stable torrent client out there, qBittorrent. KDE will try to index encrypted files in your home directory and dedicate an entire CPU core for this very cause. KDE will make you rip it out of your system and never touch it again.
Until this point, I have typed out my personal rant about KDE right there, most of it centered around the usability of this software. But why? I could have very well easily set up a blog for myself and take this entire pile of shit right here, and put it there. I would, but it doesn't stop there.
You see, KDE exhibits some characteristics of poor programming practices right in front of the users face. But what about the background? All those processes, taking up millions, sometimes billions of bits in the volatile memory, what about them? If the very structure of this program is broken, so should its smaller parts, right? What happens then? Surely, the poor programming practices that piled up shit code over the years do have a consequence, and that is insecurity.
You see, improper software development puts the confidentiality, integrity and security of the user data on the risk. It just doesn't stop at problems that you can fix by firing up another tty, or copy-pasting some commands from a wiki that most of the user won't be able to find in the first place. No.
This is why software like KDE will never be the default desktop environment for Ubuntu. This is why RedHat chooses to focus on the GNOME instead. Companies that aimed at distributing GNU/Linux systems has a pretty good reason to choose GNOME, because its alternative can't even help itself.
All in all, all incorrectly implemented software should be taken out with the trash, and no amount of widespread adoption should undermine this practice.