**فانتوم** یک زبان برنامه‌نویسی شئ گرا است که به وسیله برایان و اندی فرانک ساخته شده‌است و روی ماشین مجازی جاوا، جاوا اسکریپت و زمان اجرای زبان مشترک دات نت اجرا می‌شود. (دات نت از وضعیت نمونهٔ اولیۀ در نظر گرفته شده، پشتیبانی می‌کند) هدف اولیهٔ طراحی آن فراهم کردن یک کتابخانهٔ استاندارد رابط برنامه‌نویسی نرم‌افزار بود که مشخص کند بالاخره کد فانتوم در نهایت روی ماشین مجازی جاوا اجرا می‌شود یا روی زمان اجرای زبان مشترک دات نت. مشابه سی شارپ و جاوا، فانتوم از نحو آکولاد استفاده می‌کند. این زبان از برنامه‌نویسی تابعی با بستار و هم روندی در مدل بازیگری پشتیبانی می‌کند. فانتوم دارای هر دو نوع دادهٔ ایستا و پویا است.

نوع داده
--------

سیستم نوع دادهٔ فانتوم بسیار ساده است. همهٔ متغیرها از نوع دادهٔ ایستا هستند، مثل سی شارپ و جاوا. فانتوم اجازهٔ نوع دادهٔ عمومی را به دلیل پیچیدگی نمی‌دهد ولی چند نوع دادهٔ عمومی مانند لیست، مپ و تابع در خود دارد. فانتوم یک رابط برنامه‌نویسی نرم‌افزار انعکاسی آسان دارد. فانتوم برای ویندوز و سکوهای یونیکس (شامل سیستم عامل) وجود دارد.

پاد
---

در فانتوم واحد گسترش پاد نامیده می‌شود. پادها نقش فضای نام، بسته و پودمان را ایفا می‌کنند. آن‌ها به صورت فایل‌هایی با پسوند pod. ذخیره می‌شوند که دارای پرونده‌هایی فشرده شامل اف سی کد، مستندات و پرونده‌های منبع ی که برای اجرای پاد لازم است، هستند.

ابزار ویجت فانتوم
-----------------

فانتوم با ابزار ویجت استانداردی به نام کار می‌کند. مانند فانتوم، ابزار ویجت فانتوم نیز یه گونه‌ای طراحی شد که بین دستگاه‌های متفاوت قابل حمل باشد. در حال حاضر روی ماشین مجازی جاوا با استفاده از ابزار ویجت استاندارد تفسیر می‌شود. مفسر جاوا اسکریپت که به وسیلهٔ عنصر بوم و جاوا اف ایکس پشتیبانی می‌شود به برنامه‌های ابزار ویجت فانتوم اجازه می‌دهد تا برنامه‌های خود را روی مرورگر وب اجرا کند. نقشه‌هایی برای مفسر زمان اجرای زبان مشترک دات نت به وسیله فرم پنجره‌ای وجود دارد. پاد می‌تواند در هر تعداد نوعی برای استفاده در کتابخانه‌ها و برنامه‌های دیگر تعریف شود. نام یک پاد می‌تواند نام نوع را کاملاً مشخص کند.

مثال "سلام، دنیا!
-----------------

مثال معروف سلام، دنیا! نوشته شده در فانتوم را در زیر می‌بینیم:

```
// Hello from Fantom!
class HelloWorld
{
 static Void main()
 {
 echo("Hello, World!")
 }
}

```

تغییر نام
---------

اسم اصلی زبان برنامه‌نویسی فانتوم، فان بود. فان نام محله‌ای در ریچموند ایالت ویرجینیا است که سازندگان زبان در آن زندگی می‌کردند. بعد از گسترش اعضای گروه سازندهٔ این زبان و برای راحتی جستجو، در نوامبر ۲۰۰۹ اسم این زبان به‌طور رسمی از فان به فانتوم تغییر پیدا کرد.

دیگر ویژگی‌ها
-------------

فانتوم ویژگی‌های پرکاربرد دیگری نیز دارد:

* فانتوم با اعمال یک سری محدودیت، از وارد کردن کلاس‌ها و مدل‌های جاوا پشتیبانی می‌کند.
* نوع دادهٔ عدد صحیح ۶۴ بیتی است. بر خلاف جاوا و سی شارپ، فانتوم نوع دادهٔ عدد صحیح بزرگ یا کوچک ندارد.
* ترتیب و عدم ترتیب کلاس‌های رشته‌های از/به.
* فانتوم از چندتایی مرتب پشتیبانی نمی‌کند.

جستارهای وابسته
---------------

* بوو
* سیلان
* سی شارپ
* ارلنگ
* گرووی
* اسکالا
* روبی (زبان برنامه‌نویسی)

* Gosu
* Kotlin

پانویس
------

1. ↑  Blog post about history of Fantom
2. ↑  "Fantom". 8 January 2015.
3. ↑  «FAQ». *Fantom*. دریافت‌شده در ۲۰۱۷-۰۶-۲۷.
4. ↑  «Roadmap». *Fantom*. بایگانی‌شده از اصلی در ۱۱ دسامبر ۲۰۱۵. دریافت‌شده در ۲۰۱۷-۰۶-۲۷.
5. ↑  «WhyFantom». *Fantom*. دریافت‌شده در ۲۰۱۷-۰۶-۲۷.
6. ↑  McAllister, Neil (2012-01-03). "10 programming languages that could shake up IT". InfoWorld. Retrieved 2015-10-30.
7. ↑  "fwt – Fantom". Fantom.org. 2015-01-08. Retrieved 2015-10-30.
8. ↑  "scala, haskell and fantom programming language, Scala, Java (Programming Languages)". *scribd* (به انگلیسی). Retrieved 2017-06-27.
9. ↑  «Fan is officially now Fantom». *Fantom*. دریافت‌شده در ۲۰۱۷-۰۶-۲۷.
10. ↑  «JavaFFI». *Fantom*. دریافت‌شده در ۲۰۱۷-۰۶-۲۷.
11. ↑  «Serialization». *Fantom*. دریافت‌شده در ۲۰۱۷-۰۶-۲۷.
12. ↑  «Cartesian product?». *Fantom*. دریافت‌شده در ۲۰۱۷-۰۶-۲۷.

پیوندهای بیرون
--------------

* Binstock, Andrew (2010-07-14). "Top five scripting languages on the JVM: Groovy and JRuby lead a strong field, with Scala, Fantom, and Jython following behind". Dr. Dobb's. Retrieved 2015-10-30.
* Frank, Brian (2011-02-18). "Fantom". Dr. Dobb's. Archived from the original on 11 December 2015. Retrieved 2015-10-30.

* وبگاه رسمی
* Why Fantom, by Fantom's authors, explains why they have created this language.
* Not a Fan of Scala? An Evolutionary Approach | Ajaxonomy بایگانی‌شده در ۱۸ فوریه ۲۰۱۰ توسط Wayback Machine - blog post discussing *Fan*
* Fan of a New Language | SD Times
* Re: Fan Programming Language  a forum post by one of Fantom's authors.
* The Next Big JVM Language, a conversation with Stephen Colebourne by Bill Venners.
* Language reference page at LangRef.org