Fantom (programming language)
   HOME

TheInfoList



OR:

Fantom is a general-purpose object-oriented programming language, created by Brian Frank and Andy Frank. It runs on the
Java Runtime Environment Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms ...
(JRE),
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
, and the .NET Common Language Runtime (CLR) (.NET support is considered "prototype" status). Its stated goal is to provide a standard library
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
. Fantom uses a curly brace syntax, supports
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declarat ...
through closures and concurrency through the
Actor model The actor model in computer science is a mathematical model of concurrent computation that treats an ''actor'' as the basic building block of concurrent computation. In response to a message it receives, an actor can: make local decisions, create ...
, and blends aspects of both static and dynamic typing. The original name of the Fantom programming language was Fan, named after the
neighborhood A neighbourhood (Commonwealth English) or neighborhood (American English) is a geographically localized community within a larger town, city, suburb or rural area, sometimes consisting of a single street and the buildings lining it. Neigh ...
in which the creators live in
Richmond, Virginia Richmond ( ) is the List of capitals in the United States, capital city of the Commonwealth (U.S. state), U.S. commonwealth of Virginia. Incorporated in 1742, Richmond has been an independent city (United States), independent city since 1871. ...
. In November 2009, the name of the project was officially changed from Fan to Fantom due to searchability concerns raised by its community.Fan is officially now Fantom
/ref> Fantom is open source under Academic Free License 3.0 and is available for Windows and Unix-like platforms (including Mac OS X).


Features and systems

All variables in Fantom are statically typed, as it does not have generic types, but it does have a set of built-in generic types: List, Map, and Func. Fantom also supports dynamic calls and automatic downcasting. Fantom has a reflection API and
metaprogramming Metaprogramming is a computer programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyse, or transform other programs, and even modi ...
capabilities. Fantom supports imports of Java Classes and modules with some limitations. Its integer is 64-bit. Unlike Java and C#, Fantom does not have Long or Short integer types. Fantom also does not support
tuple In mathematics, a tuple is a finite sequence or ''ordered list'' of numbers or, more generally, mathematical objects, which are called the ''elements'' of the tuple. An -tuple is a tuple of elements, where is a non-negative integer. There is o ...
s. In Fantom, the unit of deployment is called a ''pod''. Pods take on the role of
namespace In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified. Namespaces ...
s, packages, and modules. They are stored as .pod files, which are zip files containing the FCode (the Fantom bytecode), the documentation, and resource files necessary to run the pod. The Fantom build system can package a set of pods into a JAR archive through build::JarDist.


Integrated development environment

F4 is the main publicly available IDE for the Fantom language, officially supported by one of the main open-source contributors to the language, Steve Eynon. The F4 IDE is available on GitHub.


Fantom Widget Toolkit

Fantom ships with a standard windowing toolkit called the Fantom Widget Toolkit, or FWT for short. FWT was designed to be portable across several platforms. It is currently implemented on the JVM using the Standard Widget Toolkit as a backend. The JavaScript implementation is backed by the canvas element and JavaFX, allowing FWT applications to be run in a web browser. There are plans for a CLR implementation using Windows Forms.


Usage

Escape the Mainframe is a browser game (just like the Google t-rex dinosaur) completely written in Fantom by Steve Eynon.


See also

* Boo *
Ceylon Sri Lanka, officially the Democratic Socialist Republic of Sri Lanka, also known historically as Ceylon, is an island country in South Asia. It lies in the Indian Ocean, southwest of the Bay of Bengal, separated from the Indian subcontinent, ...
* Gosu * Apache Groovy * Kotlin *
Ruby Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...


References


Further reading

* *


External links

*
Open source website: https://fantom-lang.org/download
* Open source repository for Fantom libraries https://eggbox.fantomfactory.org/ * Fantom portfolio https://fantom-lang.org/portfolio
Not a Fan of Scala? An Evolutionary Approach , Ajaxonomy
- blog post discussing ''Fan''
Fan of a New Language , SD Times

Re: Fan Programming Language ([email protected] mailing list)
a forum post by one of Fantom's authors.

a conversation with Stephen Colebourne by Bill Venners.
Language reference page at LangRef.org
{{DEFAULTSORT:Fantom (Programming Language) Object-oriented programming languages Statically typed programming languages JVM programming languages .NET programming languages Programming languages created in 2005 Software using the Academic Free License