- GTK+ is about as close as you can get to the Win32 API experience on Windows, but it is still a moving target.
- Package managers are a double-edged sword. Linux fixed the dependency hell problem and now every open source project depends on a thousand different things.
- A zillion distributions, a zillion ways your code might break on a system that wasn't tested.
Pretty good run down of thing Serge, but these three things I'm not so sure about.
GTK+ might be the most Windows 'looking' GUI toolkit but as far as function and being a stable target it's not even remotely the same. On Linux you have X11, X Toolkit Intrinsics (Xt), X Athena Widgets (Xaw) and Motif - each of which are much more comparable to Win32 except _because_ they're not a moving target people either forget about them or say "oh that's old" or "looks dated" etc. Which is a shame since imo Xaw looks great (ignoring these terrible color schemes)
and if you code using the standard APIs like Xaw and X11 then the standard tools like xrdb will work for setting theme colors and so on.
"Linux fixed the dependency hell problem" - if you call that fixed =P imo, they just made it worse because now people rely on the heroic complexity of package managers rather than drag and drop tar-balls. Worst of all it's a problem that doesn't even exist if you create your programs correctly.
"A zillion distributions, a zillion ways your code might break on a system that wasn't tested." - ditto, correct programs should just work. Don't dynamic link, stick to the standard APIs, don't rely on UB, etc. Of course Linux still supports way more hardware than Windows so you're going to have to account for things like endianess and different coherency mechanisms of other CPUs etc. so it's still a wider target but that's not really even a Linux thing.