Fantom es un lenguaje de programación orientado a objetos de propósito general , creado por Brian Frank y Andy Frank. [4] Se ejecuta en Java Runtime Environment (JRE), JavaScript y .NET Common Language Runtime (CLR) (la compatibilidad con .NET se considera estado de "prototipo" [5] ). Su objetivo declarado es proporcionar una API de biblioteca estándar . [6] Fantom utiliza una sintaxis de llaves , admite programación funcional a través de cierres y concurrencia a través del modelo Actor , y combina aspectos de tipado estático y dinámico .
El nombre original del lenguaje de programación Fantom era Fan , en honor al barrio en el que viven los creadores en Richmond, Virginia . En noviembre de 2009, [7] el nombre del proyecto se cambió oficialmente de Fan a Fantom debido a las preocupaciones sobre la capacidad de búsqueda planteadas por su comunidad. [8]
Fantom es de código abierto bajo la Licencia Libre Académica 3.0 y está disponible para plataformas Windows y similares a Unix (incluido Mac OS X). [9]
Todas las variables en Fantom tienen tipos estáticos, ya que no tiene tipos genéricos , pero sí tiene un conjunto de tipos genéricos integrados: List
, Map
, y Func
. Fantom también admite llamadas dinámicas y conversión descendente automática . Fantom tiene una API de reflexión y capacidades de metaprogramación .
Fantom admite la importación de clases y módulos Java con algunas limitaciones. [10] Su entero es de 64 bits. A diferencia de Java y C#, Fantom no tiene tipos enteros Long o Short. Fantom tampoco admite tuplas . [11]
En Fantom, la unidad de implementación se denomina pod . Los pods asumen el rol de espacios de nombres , paquetes y módulos . Se almacenan como archivos .pod, que son archivos zip que contienen el FCode (el bytecode de Fantom), la documentación y los archivos de recursos necesarios para ejecutar el pod. El sistema de compilación de Fantom puede empaquetar un conjunto de pods en un archivo JAR a través de build::JarDist
.
F4 es el principal IDE disponible públicamente para el lenguaje Fantom, respaldado oficialmente por uno de los principales contribuyentes de código abierto al lenguaje, Steve Eynon. [12] El IDE F4 está disponible en GitHub.
Fantom se entrega con un conjunto de herramientas de ventanas estándar llamado Fantom Widget Toolkit, o FWT para abreviar. [13] FWT fue diseñado para ser portable en varias plataformas. Actualmente se implementa en la JVM usando el Standard Widget Toolkit como backend. La implementación de JavaScript está respaldada por el elemento canvas y JavaFX , lo que permite que las aplicaciones FWT se ejecuten en un navegador web. Hay planes para una implementación de CLR usando Windows Forms .
Escape the Mainframe es un juego de navegador (al igual que el dinosaurio T-Rex de Google) escrito completamente en Fantom por Steve Eynon. [14]