Eu mesmo fui programador de Delphi, VB5, VB6 e Visual C++ Builder (e antes disso de Clipper e Pascal, mas aí estamos indo longe demais o Tunel do Tempo).
[quote]Mas de qualquer forma, eu estava me referindo a velha discussão se vale a pena aprender programar para desktop. Para mim acho que software desktop não vai morrer tão cedo e ainda há um nicho de mercado ativo.
[/quote]
Com certeza. Eu mesmo estou no mercado desktop há muitos anos (se vcs não notaram, eu raramente apareço nos tópicos de desenvolvimento web), e não vejo ele desacelerar.
Aliás, até pelo contrário. A introdução do Metro e dos dispositivos móveis deu foi um boom no mercado (apps. para dispositivos móveis são aplicações desktop).
A web também abriu portas para a distribuição de aplicações, coisa que na época em que só havia apps desktop por aí, não tinhamos (você até podia fazer o software, mas muitas vezes jamais conseguiria distribui-lo para um grande mercado sem um publisher).
Há certas indústrias, como as de engenharia, onde sequer faz sentido falar em aplicações web. Aplicativos que são usados para controlar dispositivos ou tomar decisões em tempo real.
Sem falar nos aplicativos “de prateleira”, para o usuário de PC.
A grande vantagem é que as tecnologias Desktop e web estão se aproximando. No Windows 8, por exemplo, já vai ser possível programar usando HTML 5 e Javascript para criar suas telas. No caso do QT e do próprio JavaFX, linguagens como a QML e o Groovy tornam o código bastante declarativo, bem similar ao que um desenvolvedor web já encontra. Do outro lado, a web também torna-se cada vez mais responsiva, o javascript cada vez mais poderoso e mais e mais idiomas de desktop vão sendo incorporados as páginas.
[quote]Creio que grande parte dos problemas levantados em relação ao Java podem ser contornados ou não são significativos para grande parte das situações. Por exemplo, que mal tem utilizar um instalador para resolver questões de empacotamento e deploy?
É claro que nenhuma tecnologia é mágica e haverá situações específicas em que talvez o Java não seja a melhor escolha. Isso não é demérito da plataforma.
Bom, se Java não fosse viável para desktop o Netbeans e Eclipse não seriam escritos nessa linguagem, as maiores referências de softwares desktop desenvolvidos em Java.[/quote]
O Eclipse não é feito inteiramente na plataforma Java. Ele depende da SWT, que usa JNI. É claro que o SWT é confiável e maduro, mas não é Java padrão (não dá para usa-lo para defender a plataforma, pois roda fora da VM).
No caso, podemos citar como apps desktop o Netbeans, o MySQL Workbench e o Vuze. Ainda assim, dois deles são apps para desenvolvedores. Dá para contar no dedos quantos aplicativos desktop de mercado famosos usando somente a plataforma Java temos por aí (além do Vuze, alguém conhece mais algum?). Agora, não significa que seja impossível, ou mesmo inviável, desenvolver aplicações corporativas em Java desktop. Note que eu fui cuidadoso, desde o primeiro post, ao falar que estava falando do mercado de aplicações para consumidores, e não empresas.
Basta ver como exemplo softwares de SAP, que são em Java. Na Siemens mesmo, utilizei Java por vários anos com muito sucesso (embora tenha sofrido um pouco com a descontinuação repentina da javax.comm). Eu gosto de usar o Java para desktop em meus estudos também, como é o caso desse editor de imagens, que fiz para o mestrado.
Vale lembrar que, mesmo fora da plataforma Java, temos frameworks maduros e garantidos, como a SWT, RXTX, DirectShowJava, Javacv e a LWJGL. É através deles que surgiram não só o Eclipse, mas o Minecraft, Taikodom e outros aplicativos conhecidos. Não vejo problema em usa-los, pois são muito bons. Só estou gostaria de fazer aqui a diferenciação entre “conseguir fazer aplicações usando linguagens Java” e “defender o Java como plataforma para desktop”. Usando a linguagem Java, você consegue fazer muita coisa, pois pode recorrer a bindings como esses que rodam fora da plataforma e resolvem o problema. Já na plataforma java, mantida pela Oracle, e garantida em todas as VMs java padrão, a coisa aperta.
O fato é que, na minha opinião, os problemas, são sim, demérito para a plataforma (no quesito desktop). Eu acho engraçado que nós vivemos ouvindo no GUJ que “linguagens são ferramentas e o programador tem que se adaptar a cada caso”. Essa frase rola por aqui pelo menos uma vez por semana. Mas chega um tópico desses, onde o Java claramente não é a melhor ferramenta, e o pessoal defende a plataforma com unhas e dentes. É a mesma coisa em tópicos sobre games.
Se falarmos em defender a plataforma como um todo, as coisas são bem diferentes, por exemplo, ao fazer apps usando a plataforma Android, mesmo que usando linguagem Java.
Ele não só nasceu para isso, como a Google tomou bastante cuidado, associando poder, facilidade de implementação e conceitos modernos de programação desktop.
Como fã da linguagem, e da plataforma Java como um todo, é o que eu torço também.