Fan Programming Language
// find files less than one day old files := dir.list.findAll |File f->Bool| { return DateTime.now - f.modified < 1day } // print the filenames to stdout files.each |File f| { echo("$f.modified.toLocale: $f.name") }
Portability Write code portable to both the Java VM and the .NET CLR.
Familiar Syntax Java and C# programmers will feel at home with Fan's curly brace syntax.
Concurrency Tackle concurrency with built-in immutability, message passing, and REST oriented transactional memory.
Static and Dynamic Typing Don't like the extremes - take the middle of the road.
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.
Object Oriented Everything is an object.
Mixins Interfaces but with implementation.
Functional Functions and closures are baked in.
Serialization Built-in "JSON like" serialization syntax makes Fan ideal for declarative programming too.
REST Model data with a unified namespace of resources identified with URIs.
Download Fan
Build 1.0.26