Actually, I do agree with most of what you have said; I can understand what the perception is, because I am committer and developer on at least 5 of the current most popular java / web /orm frameworks out there, and also am leading a framework project myself.
However having said that, What I do not like is, the fact that Linux community is so damm fragmented, the big problem is that even though we have X11 and POSIX like standards, in my opinion there is no common GUI and application Virtual machine like standard, that allows consistent desktop experience and certain level of expected behavior; For example, if I am running Linux (any flavor, any kernel version), I should know what can be expected set of minimum features available that as an end-user I should be able to see and use; (this would be a very dynamic specification off course, but still); then they should do something about their damm GUI; it is so backwards that I cannot fathom using it any time sooner.
OK, Another BIG problem with Linux is their stupid adherence to C; because in Linus Torvalds and several other folks opinion is that C++ compiler is funky and can do optimizations without their knowledge ... this is downright stupid, no wonder Linux source code is not componentized (most other OSes I have heard have been following OO paradigm pretty much, by abstracting out their stuff, so that future is easy ... sure there exists abstractions in linux source, but its just not enough IMHO).
You are right Stryder, which is why I have started reading up on basics of device drivers, brushing up C and Assembly and lookup linux kernel libs available, X11 basics, to see if I can contribute and do something about it.
I have to dig deeper though, I don't know what kinda standards are available for GUI at the moment, what libraries have been written etc. (During my undergrad CS years, I did do a fair amount of assembly and c, wrote device driver for USB, but never got into GUI thing myself)
Frankly speaking I HATE the way Linux GUI works right now; I am planning to setup a test system to allow me to do some stuff.
Thanks!
Rick