One thing you do not see fragmenting are command-line tools, because people tend to agree on their function(1). However, QT is huge; its scope goes far beyond GUI functionality, into string classes, SQL databases, networking, etc. And moc, its C++ code generator. More scope equals more possible disagreements, which necessarily entails fragmentation.
I tried installing the Qt version of wireshark using exherbo (one of the most minimal Linux distros) and it wanted MySQL as a dependency! For me, if you cannot build a well focused tool with a GUI toolkit it's not worth using.
1 (sure different Unices have different options, but that is more historical)
That sounds like a tenuous thing related to wireshark, not Qt, which is a little odd. You can build command line tools with Qt (surprise!) that are light and focused, but have the benefit of a number of frankly excellent standard library replacements.
> it wanted MySQL as a dependency! For me, if you cannot build a well focused tool with a GUI toolkit it's not worth using.
How is Wireshark not well focused? It probably uses a mysql database for its activity history (note: I didn't look, its just a common design pattern). I mean, it seems like a program like Wireshark would be better suited by a simpler sqlite database, but its really up to the project lead on these things.
Wireshark doesn't use MySQL or any other SQL backend. I'm not sure what sort of dependency chain would trigger the installation of MySQL but it's unusual to say the least.
Looking at the exherbo package list, it seems that the qt4 package has an optional (or opportunistic) dependency on mysql. And on sqlite. So it ought to be possible to do the equivalent of an `apt-get install --no-install-recommends` to get it without mysql.
> One thing you do not see fragmenting are command-line tools, because people tend to agree on their function(1).
Hm. top and htop do mostly the same thing. So do more, less and most, as examples of multiple tools for the same job. awk behaves slightly different on MacOS X. Bash is stuck at version 3.x there, too, for examples of different tools on different platforms. Some Linux distributions come with dash as /bin/sh, whereas others still use bash there. Which version of gcc you get in a given distribution seems mostly down to luck, as examples of fragmentation even within one operating system.
I wouldn’t say that there is no fragmentation of command-line tools, but maybe the individual fragments are smaller (as opposed to the two to four larger “fragments” GTK, Qt, MacOS X and Windows).
It probably only wanted mysql-client (the API library), not the whole server. At least on debian that's the case.
If the distro is not taking care of splitting the packages in "dev" (headers and .a files), "client" (.so files), "server", etc. then it'll have such problems.
I doubt having few extra kb of client is such a big deal, especially if you decide to use Qt.
Also in debian (I think) the Qt sql part is also optional.
I tried installing the Qt version of wireshark using exherbo (one of the most minimal Linux distros) and it wanted MySQL as a dependency! For me, if you cannot build a well focused tool with a GUI toolkit it's not worth using.
1 (sure different Unices have different options, but that is more historical)