The Fantom Programming Language
Introduction
A blurb from the Fantom home page:
Fantom is designed as a practical programming language to make it easy and fun to get real work done. It is not an academic language to explore bleeding edge theories, but based on solid real world experience. During its design we set out to solve what we perceived were some real problems with Java and C#. Our background is heavily Java, but many of Java's problems are shared by C# and .NET also.
So what is it?
Design goals for and capabilities of the language include:
Portability
Write code portable to the Java VM, .NET CLR, and JavaScript in the browser.
Familiar Syntax
Java and C# programmers will feel at home with Fantom's evolutionary syntax.
Mixins
Interfaces but with implementation.
Concurrency
Tackle concurrency with built-in immutability and actor model.
Object Oriented
Everything subclasses from Obj. Value types when you need the performance.
Functional
Functions and closures are baked in.
Static and Dynamic Typing
Don't like the extremes - take the middle of the road.
Serialization
Built-in "JSON like" serialization syntax makes Fantom ideal for declarative programming too.
Elegant APIs
We're quite obsessive about providing all the key features required for a standard library, but with much less surface area than the APIs found in Java or .NET.
REST
URI literals and a unified namespace of resources identified with URIs.
...and a host of thousands.
There's lots of information about Fantom available out there.
Documentation
Learning more about Fantom is a click away.
Community
- There's a consolidated blog list with entries ranging from discussion about the language to announcements of releases.
- There's a ticket system for reporting and reviewing bugs, feature requests, etc. (It also serves to demonstrate the responsiveness of the creators.)
- There's a discussion board for sharing opinions, tips, complaints, etc.
- There's an IRC channel with helpful people. (It can be a bit slow. Be patient.)