Também não quero fugir do mérito da questão. Vou apenas contar o que eu passei:
Estudo Linux há dois anos, e programo nele também, principalmente C/C++.
Todos os programas que desenvolvi até hoje rodaram perfeitamente em todas as distribuições Linux que usei. Nunca tive problemas de compatibilidade.
Quantos aos drivers, alguém consegue instalar perfeitamente os mesmos drivers em todas as versões do Windows? (tido aqui como um sistema livre desses problemas)
Você citou problemas com APIs nativas. Sabe por que ninguém aqui teve provavelmente algum problema assim no Windows? Porque no Windows não existem APIs nativas que você usa o tempo inteiro para gerar binários (não no sentido de que você irá encontrá-las no CD de instalação do SO). Praticamente tudo o que é usado já vem pré-compilado, é só rodar. Assim, você provavelmente não teria grande desses problemas se rodasse apenas softwares pré-compilados no Linux.
Quanto á RedHat e afins, eu não as uso (já usei), nem recomendo. São uma opção, e respeito isso, mas por serem “diferentes”, acabam criando esse tipo de problema.
Não quero criar flames ou coisas do tipo. Apenas achei um tanto exagerado dizer “Na verdade eu nunca ouvi falar de compatibilidade com linux. Pelo menos com os padrões posix.” e “O Linux nao tem uma especificacao”.
Quanto ao Java, sei que ninguém é obrigado a usar a JVM da Sun, apenas acho que seria interessante que a JVM fosse uma implementação totalmente livre. E já que o Linux foi citado, anda creio que seja um caso de SL que deu certo, devido, inclusive, à sua derivação: o Unix. Esse, sendo proprietário, fez com que uma implementação livre fosse criada para atender os anseios de uma comunidade de usuários. E deu certo, o Linux cresce muito mais que qualquer Unix hoje.
Talvez o mesmo possa acontecer com a Sun e a JVM. Não me parece interessante um modelo e especificação centralizado. Por exemplo, a Sun não implementou o Java3D para Linux, nem o JAI (entre as implementações atuais estão a BlackDown, que inclusive é livre). Mas o problema é que a JVM livre sempre está atrás da Sun, porque tem que “copiar” depois do lançamento. Isso é um problema sério, que poderia ser resolvido com uma implementação livre.
O Software Livre em si veio para resolver problemas, e não criá-los. Eu participo do projeto de SL na minha universidade, a UEMS, e apesar de estarmos no começo, nossas projeções são realmente muito boas. E é em nome do que eu conheço que faço tais afirmações.