Paradigm | мультипарадигма |
---|---|
Разработчик | Брайан Франк, Энди Франк |
Впервые появилось | 2005 |
Стабильная версия | 1.0.74 / 2 марта 2020 г.; 7 месяцев назад (2020-03-02) |
Набор текста | статический, динамический |
Лицензия | Academic Free License версия 3.0 |
Расширения имен файлов | .fan,.fwt,.pod |
Веб-сайт | www.fantom.org |
Испытал влияние | |
C#, Java, Scala, Ruby, Erlang |
Fantom - это объектно-ориентированный язык программирования общего назначения, созданный Брайаном и Энди Фрэнком и работающий в среде выполнения Java (JRE), JavaScript и.NET Common Language Runtime (CLR) (поддержка.NET считается статусом «прототипа»). Его основная цель разработки - предоставить стандартную библиотеку API, которая абстрагирует вопрос о том, будет ли код в конечном итоге работать на JRE или CLR. Как и C # и Java, Fantom использует синтаксис фигурных скобок . Язык поддерживает функциональное программирование за счет замыканий и параллелизма через модель актора. Fantom использует подход «середины пути» к своей системе типов, смешивая воедино аспекты статической и динамической типизации.
Система шрифтов Fantom проста по конструкции. Все переменные статически типизированы, как в C # и Java. Fantom отклоняет общие типы из-за их сложности, но у него есть набор встроенных универсальных типов: List, Mapи Func. Fantom также может ощущать динамически типизированный язык с помощью динамических вызовов и автоматического понижающего преобразования. Fantom имеет простой в использовании отражение API и возможности метапрограммирования.
Fantom является открытым исходным кодом по Academic Free License 3.0 и доступен для Windows и Unix-подобных платформ (включая Mac OS X).
В Fantom единица развертывания называется pod. Поды берут на себя роль пространств имен, пакетов и модулей. Они хранятся в виде файлов.pod, которые представляют собой файлы zip, содержащие FCode (байт-код Fantom), документацию и файлы ресурсов, необходимые для запуска модуля. Модуль может определять любое количество типов для использования в других библиотеках и приложениях. Имя модуля полностью соответствует имени типа. Например, fwt :: Widgetотличается от webapp :: Widget. Если модуль содержит тип с именем Main, он может быть запущен в командной строке с помощью: fan
Система сборки Fantom может упаковать набор модулей в архив JAR. От до build :: JarDist.
Fantom поставляется со стандартным набором инструментов для работы с окнами, который называется Fantom Widget Toolkit, или сокращенно FWT. Как и Fantom, FWT был разработан с возможностью переносимости на несколько платформ. В настоящее время он реализован на JVM с использованием Standard Widget Toolkit в качестве бэкэнда. Реализация JavaScript поддерживается элементом холста и JavaFX, что позволяет запускать приложения FWT в веб-браузере. Планируется реализация CLR с использованием Windows Forms.
Вот классическая программа Hello world, написанная на Fantom:
// Hello от Фантома! class HelloWorld {static Void main () {echo ("Hello, World!")}}
Обратите внимание, что "Void" пишется с большой буквы. Это потому, что Void - это класс, а не примитивный тип в Fantom.
Первоначальное название языка программирования Fantom было Fan, названное в честь района, где создатели живут в Ричмонде, Вирджиния. После того, как язык приобрел некоторую популярность, члены сообщества выразили обеспокоенность по поводу возможности поиска имени. В ноябре 2009 года название проекта было официально изменено с Fan на Fantom.
Fantom имеет другие полезные функции: