Fantom (linguagem de programação) - Fantom (programming language)
Paradigma | multiparadigma |
---|---|
Desenvolvedor | Brian Frank, Andy Frank |
Apareceu pela primeira vez | 2005 |
Versão estável | 1.0.75 / 24 de agosto de 2020
|
Disciplina de digitação | estático , dinâmico |
Licença | Licença Acadêmica Gratuita versão 3.0 |
Extensões de nome de arquivo | .fan, .fwt, .pod |
Local na rede Internet | www |
Influenciado por | |
C # , Java , Scala , Ruby , Erlang |
Fantom é uma linguagem de programação orientada a objetos de uso geral criada por Brian e Andy Frank que roda no Java Runtime Environment (JRE), JavaScript e .NET Common Language Runtime (CLR) (o suporte .NET é considerado o status de "protótipo") . Seu objetivo principal de design é fornecer uma API de biblioteca padrão que abstraia a questão de saber se o código será executado no JRE ou CLR. Assim como C # e Java , o Fantom usa uma sintaxe de chaves . A linguagem oferece suporte à programação funcional por meio de fechamentos e simultaneidade por meio do modelo Actor . O Fantom adota uma abordagem "intermediária" em seu sistema de tipos, combinando aspectos de digitação estática e dinâmica .
Digitando
O sistema de tipos do Fantom é simples por design. Todas as variáveis são digitadas estaticamente, como estão em C # e Java . Fantom rejeita tipos genéricos , devido à sua complexidade, mas ele tem um conjunto de tipos genéricos incorporados: List
, Map
, e Func
. O Fantom também pode assumir a sensação de uma linguagem digitada dinamicamente por meio de chamadas dinâmicas e downcasting automático . O Fantom tem uma API de reflexão fácil de usar e recursos de metaprogramação .
Fantom é open source sob a Academic Free License 3.0 e está disponível para plataformas Windows e Unix-like (incluindo Mac OS X).
Pods
No Fantom, a unidade de implantação é chamada de pod . Os pods assumem o papel de namespaces , pacotes e módulos . Eles são armazenados como arquivos .pod, que são arquivos zip contendo o FCode (bytecode do Fantom), a documentação e os arquivos de recursos necessários para rodar o pod. Um pod pode definir qualquer número de tipos para uso em outras bibliotecas e aplicativos. Um nome de pod qualifica totalmente um nome de tipo. Por exemplo, fwt::Widget
é diferente de webapp::Widget
. Se um pod contém um tipo denominado Main
, ele pode ser executado na linha de comando com:fan <podName>
O sistema de construção Fantom pode empacotar um conjunto de vagens em um arquivo JAR através build::JarDist
.
Fantom Widget Toolkit
O Fantom vem com um kit de ferramentas de janelas padrão chamado Fantom Widget Toolkit, ou FWT para abreviar. Como o Fantom, o FWT foi projetado para ser portátil em várias plataformas. Atualmente, ele é implementado na JVM usando o Standard Widget Toolkit como backend. A implementação do JavaScript é apoiada pelo elemento canvas e JavaFX , permitindo que os aplicativos FWT sejam executados em um navegador da web. Existem planos para uma implementação CLR usando Windows Forms .
Exemplo de "Hello World"
Aqui está o programa clássico Hello world escrito em Fantom:
// Hello from Fantom!
class HelloWorld
{
static Void main()
{
echo("Hello, World!")
}
}
Observe que "Void" está em maiúscula. Isso ocorre porque Void é uma classe, não um tipo primitivo no Fantom.
Mudança de nome
O nome original da linguagem de programação Fantom era Fan, em homenagem ao bairro onde os criadores vivem em Richmond, Virginia . Depois que o idioma ganhou alguma popularidade, membros da comunidade levantaram preocupações sobre a possibilidade de pesquisa do nome. Em novembro de 2009, o nome do projeto foi oficialmente alterado de Fan para Fantom.
Outras características
O Fantom possui outros recursos úteis:
- O Fantom suporta importação de classes e módulos Java com algumas limitações.
- O número inteiro é de 64 bits. Ao contrário de Java e C #, o Fantom não possui tipos inteiros Long ou Short.
- Serialização e desserialização de classes de / para strings.
- O Fantom não suporta tuplas (ou seja, tipos que são produtos cartesianos de outros tipos)
Veja também
Referências
Leitura adicional
- Binstock, Andrew (14/07/2010). "As cinco principais linguagens de script na JVM: Groovy e JRuby lideram um campo forte, seguido por Scala, Fantom e Jython" . Dr. Dobb's . Página visitada em 2015-10-30 .
- Frank, Brian (18/02/2011). "Fantom" . Dr. Dobb's . Página visitada em 2015-10-30 .
links externos
- Website oficial
- Não é fã de Scala? Uma abordagem evolucionária | Ajaxonomy - postagem do blog discutindo Fan
- Fã de um Novo Idioma | SD Times
- Re: Fan Programming Language (lista de discussão jvm-languages@googlegroups.com), uma postagem no fórum de um dos autores do Fantom.
- The Next Big JVM Language , uma conversa com Stephen Colebourne por Bill Venners.
- Página de referência de linguagem em LangRef.org