That's not really a problem on modern systems.....at least OSX
Linux is a modern system, yet that's a problem in Linux. I just had to recompile dozens of libraries because one of them had littered the namespace with its own unprefixed symbols, one of which clashed with another's library's -init function, which didn't get called - so I got a segfault on exit of any application that was using that library. Fortunately the library in question was open source and its binary wasn't stripped, so the problem was easy to spot.
You can use versioned symbols on Linux, but that's not a design requirement, and not a majority of the developers do that.
Of course, if you want to call a function that has the same name in both libraries, then you're in trouble, but that's a problem in Java, too.
Not in Java, because all symbols are namespaced by design. It would be a problem if you had two versions of the same library and wanted to use both of them at once.
Meh, I wrote my own replacement for freeglut3 in a weekend. It's not hard to have a platform abstraction layer, and many already exist (I just needed my own lightweight one for my games). Since I started out with cross platform toolchain, I have no issue writing code that runs on multiple platforms.
Writing your code is only part of the problem. Things become funny when you have to use code that has already been written by other people. For example, you're using a shared library which exports a symbol which clashes with another library used by another library that is dynamically loaded by another library that you use. Without you knowing.
I get a native application without Java's huge runtime dependencies
What are Java's huge runtime dependencies? For instance the Linux version only requires the X11 libraries if you want to display graphics. It will run on a Pentium 1 machine with 16 MB of RAM.
Providing binaries for every current modern chipset including ARM and MIPS takes me about 30 minutes total to build with my cross compilers.
This is assuming that you write code that doesn't interface with any existing software on the target, which is a rare occurence. Do you talk directly to the hardware? Your cross compiler won't spare you from having to write hardware-dependent code for each of the flavours of your target.
However, saying that cross platform C/C++ is more of a headache than Java is ridiculous. They're all "write once, debug everywhere" options.
With C and C++, you get in the best case to fix up your application to port it into a new operating environment, which is what Java requires you to do in the worst case. And we're not even considering the case of mutually incompatible runtime dependencies.
Government surveillance? The technology you have supported can be the best means to bring more surveillance to the web - for instance, by allowing you to view certain subsets of the web only if you're using a proprietary browser with spyware built-in.
When we're running apps, we inevitably end up with using at least one QT app, at least one GTK app and probably in future at least one Aura app. These libraries have a huge level of duplication (e.g. each one will have a completely separately implemented file dialog). Add to this that each library will be used in several incompatible versions and you end up with serious bloat.
That's true, but how much can that bloat amount to? 20 MB? 100 MB? It won't be much relevant for today's standards. Code duplication is what happens regularly in the closed source world, where applications ship with a private version of all the libraries they use, and not only for the UI - with few people complaining.
Ive gotten the impression that the GTK3 folks werent terribly interested in hearing other people's thoughts.
This sounds like a serious problem; do we have any proper evidence?
https://mail.gnome.org/archive... - don't know if things have changed in the last two years.
And then again, why should anyone have a say on what toolkit Google decide to use for their own browser? Did "the Free Software Community" have anything to say when it was slang vs ncurses, emacs vs vim, gtk vs qt, gnome vs kde? No, because exploring alternate solutions is good for the whole community in the long run. Please stop this poisonous attitude of finding "enemies of the people" among people who dare write free software.
He has not acquired a fortune; the fortune has acquired him. -- Bion