Fantom (programmeringsspråk) - Fantom (programming language)
| Paradigm | multi-paradigm |
|---|---|
| Utvecklaren | Brian Frank, Andy Frank |
| Uppträdde först | 2005 |
| Stabil frisättning | 1.0.75 / 24 augusti 2020
|
| Skrivdisciplin | statisk , dynamisk |
| Licens | Academic Free License version 3.0 |
| Filnamnstillägg | .fan, .fwt, .pod |
| Hemsida | www |
| Påverkad av | |
| C # , Java , Scala , Ruby , Erlang | |
Fantom är ett objektorienterat programmeringsspråk för allmänt ändamål skapat av Brian och Andy Frank som körs på Java Runtime Environment (JRE), JavaScript och .NET Common Language Runtime (CLR) (.NET-stöd anses vara "prototyp" -status) . Dess primära designmål är att tillhandahålla ett standardbiblioteks- API som tar bort frågan om koden slutligen kommer att köras på JRE eller CLR. Precis som C # och Java använder Fantom en lockig stag-syntax . Språket stöder funktionell programmering genom stängningar och samtidighet genom Actor-modellen . Fantom tar ett "mitt på vägen" till sitt typsystem och blandar aspekter av både statisk och dynamisk typning .
Skriver
Fantoms typsystem är enkelt av design. Alla variabler är typiskt skrivna, som de är i C # och Java . Fantom avvisar generiska typer på grund av deras komplexitet, men den har en uppsättning av inbyggda generiska typer: List, Mapoch Func. Fantom kan också få känslan av ett dynamiskt skrivet språk genom dynamiska samtal och automatisk nedkastning . Fantom har ett lättanvänt reflektions- API och metaprogrammeringsfunktioner .
Fantom är öppen källkod under Academic Free License 3.0 och är tillgänglig för Windows och Unix-liknande plattformar (inklusive Mac OS X).
Skida
I Fantom kallas distributionsenheten en pod . Pods tar rollen som namnområden , paket och moduler . De lagras som .pod-filer, som är zip- filer som innehåller FCode (Fantom bytecode), dokumentationen och resursfilerna som krävs för att köra podden. En pod kan definiera valfritt antal typer för användning i andra bibliotek och applikationer. Ett podnamn kvalificerar fullt ut ett typnamn. Till exempel fwt::Widgetskiljer sig från webapp::Widget. Om en pod innehåller en typ med namnet Mainkan den köras på kommandoraden med:fan <podName>
Fantom-byggsystemet kan paketera en uppsättning Pods i ett JAR-arkiv genom build::JarDist.
Fantom Widget Toolkit
Fantom levereras med en standardfönstringsverktygssats som kallas Fantom Widget Toolkit, eller kort sagt FWT. Liksom Fantom var FWT utformad för att vara bärbar över flera plattformar. Det är för närvarande implementerat på JVM med Standard Widget Toolkit som backend. JavaScript-implementeringen stöds av canvas-elementet och JavaFX , vilket gör att FWT-applikationer kan köras i en webbläsare. Det finns planer för en CLR-implementering med Windows Forms .
Exempel på "Hello World"
Här är det klassiska Hello-världsprogrammet skrivet i Fantom:
// Hello from Fantom!
class HelloWorld
{
static Void main()
{
echo("Hello, World!")
}
}
Observera att "Void" är aktiverat. Detta beror på att Void är en klass, inte en primitiv typ i Fantom.
Namnbyte
Det ursprungliga namnet på Fantom-programmeringsspråket var Fan, uppkallat efter grannskapet där skaparna bor i Richmond, Virginia . Efter att språket fick en viss popularitet väckte medlemmar i samhället oro över sökbarheten i namnet. I november 2009 ändrades projektets namn officiellt från Fan till Fantom.
Andra funktioner
Fantom har andra användbara funktioner:
- Fantom stöder import av Java-klasser och moduler med vissa begränsningar.
- Heltal är 64-bitars. Till skillnad från Java och C # har Fantom inte långa eller korta heltalstyper.
- Serialisering och deserialisering av klasser till / från strängar.
- Fantom har inte stöd för tupler (det vill säga typerna som är cartesianska produkt andra typer)
Se även
Referenser
Vidare läsning
- Binstock, Andrew (2010-07-14). "Topp fem skriptspråk på JVM: Groovy och JRuby leder ett starkt fält, med Scala, Fantom och Jython som följer efter" . Dr. Dobb . Hämtad 30-10-2015 .
- Frank, Brian (2011-02-18). "Fantom" . Dr. Dobb . Hämtad 30-10-2015 .
externa länkar
-
Officiell hemsida
- Inte ett fan av Scala? En evolutionär strategi Ajaxonomy - blogginlägg som diskuterar Fan
- Fan av ett nytt språk | SD Times
- Re: Fan Programming Language ([email protected] mailing list) ett foruminlägg av en av Fantoms författare.
- The Next Big JVM Language , en konversation med Stephen Colebourne av Bill Venners.
- Språkreferenssida på LangRef.org