A linguagem de programação Fan foi uma descoberta recente para mim e achei-a engraçada pois permite compilar e interoperar tanto com a JVM como com o CLR .NET. Digo engraçada porque não me parece sinceramente que venha a ter alguma utilidade no futuro – e são estas frases proféticas que voltam mais tarde a assombrar-me
A linguagem é descrita no site oficial como:
- Portável – código usável em java e .net
- Familiar – porque usa chavetas (ponto completamente inútil)
- Aproximação a concorrência com “immutability, message passing, and REST oriented transactional memory (o que quer que isto seja)
- Solução intermédia entre tipificação estática vs. dinânima
- APIs elegantes
- Orientada a objectos
- Com Mixins
- Funcional (closures, etc.)
- Serialização “tipo JSON”
- Mais coisas sobre REST
Antes de mais não consigo compreender muito bem como
é que o conceito de REST é aplicado aqui, especialmente a memória transaccional (!!). Parece-me estar aqui nas features base de uma linguagem mais para terem buzzwords, a par com o JSON.
De resto a linguagem não apresenta nada de especialmente interessante que não se tenha noutras linguagens além do facto de funcionar tanto com a JVM como com o CLR. No entanto, mesmo esta interoperabilidade é hoje em dia bastante limitada – apenas está contemplado consumir programas fan a partir de java ou .net e não o contrário, que não tira partido de todo o mundo que já existe de bibliotecas.
Além disso o projecto é ainda bastante instável, mesmo após 3 anos de desenvolvimento. Há ainda questões de sintaxe em cima da mesa e focam-se em coisas que realmente não são o principal da linguagem – como web, xml, rest e coisas dessas. Acima de tudo, parece um projecto desfocado.
No entanto a ideia de linguagens multi-VM seria muito bem-vinda mas parece-me que só acontecerá se uma linguagem
já bem implantada (java ou c#, por exemplo), for portada para outra plataforma e apoiada pela Sun ou Microsoft. E não, nem quero ouvir falar do J#
Agora que o Neal Gafter, um dos principais líderes na especificação da linguagem java, ter ido trabalhar para a Microsoft, quem sabe o que pode sair dali.