[quote=Zignd]Olá galera depois de fazer varias pesquisas no Google, sobre o desenvolvimento de aplicativos para Windows 8 que virá com sua nova interface, o Metro, só será suportado pelas linguagens da Microsoft, C#, VB .Net …, e Java, quando comecei a estudar Java pensei que seria a melhor opção, por ser multiplataforma e por rodar em muito mais sistemas do que as linguagens .Net da Microsoft que só funcionam no Windows, e também porque gosto bastante do Linux.
[/quote]
CLR é um padrão e Microsoft.NET é uma implementação dele. Mono.NET é outra. O Mono roda no linux (é suportado pela Novell atualmente, que tem muitos interesses nno linux). Portanto, .NET não funciona apenas no windows. O que acontece é que a Microsoft adora adicionar coisas não padrão na lib do .net para fazer vendor lock-in e essas partes, sim, só funcionam em windows.
O C# também é um padrão (assim como o javascript) e o fato de ser mais usado em .NET não significa que não poderia ser usando em outros, apenas não ha vantagem em criar um compilador C# para bytecode da jvm. Se quer uma linguagem cross-platform, aprenda scala , pyton , ruby ou até fantom…
Agora, como plataforma, o Mono está em todo o lado, inclusive no android e no iphone/ipad. Não sei até que ponto o suporte é bom e vale a pena, mas o fato é que está lá.
Só que se vc está fazendo um raciocinio contrário ao que deveria. Vc tem que escolher a plataforma conforme os seus objetivos e depois a linguagem na plataforma, não ao contrário. Se vc apenas sabe java só consegue chegar onde a JVM chega. .NET não funciona em JavaCard, por exemplo, mas isso não é um problema. Se vc quiser mexer com javacard, precisa usar java.
Existem uma tecnologia chamada IKVM que permite rodar java dentro do .NET e compilar libs de bytecode java para CLI. Isto não resolve todos os problemas (Como a interface UI) ,mas resolve bastantes coisas. Por outro lado, a interface UI não é o que define um sistema.
Planos da Oracle para o futuro nos dizem que javafX (a nova tecnologia de ui em java) estará no android e no iphone/ipad. Acho que vamos ter que esperar para ver. Tecnicamente isto sempre foi possivel (afinal existia jvm para o palm que nem sequer tinha muitthread nativo) o ponto é que ainda não é mainstream nem existe uma forma padrão para fazer isto. Quem manja de escovação de bits consegue fazer, mas os comuns mortais não 8) …
Quer fazer aplicações distribuidas ? java. Quer fazer aplicações desktop ? java. Quer fazer android ? use o android SDK em java.
Quer fazer a sua aplicação deskto parecer uma aplicação metro : faça seu look&feel swing (em java)
Cada proposito tem uma tecnologia e mais do que uma é possivel muitas vezes, então, não é uma questão da liguagem que vc quer ou gosta, mas do sistema que vc está tentando criar. Ou então, vc adota o java e se exclui do mundo que não o usa. Não simples assim.
A escolha é sempre sua.