Fan, another new programming language developed in the multicore era, has recently launched its 1.0.45 release. It is a very active open source project with a very interesting approach to many modern concurrent programming challenges.I began writing this post about Fan 1.0.44 a week ago. Now, Fan has a new version, 1.0.45.
Most developers don't want to learn a new programming language. However, Fan is a very attractive language for certain tasks because it is trying to solve many modern problems related to concurrency and multicore programming.
Fan is both an object-oriented and functional programming language. This means that a developer can combine functional programming code with object-oriented code. However, at the same time, it has built-in immutability, message passing, and REST oriented transactional memory. It uses Java-style syntax. Therefore, Java and C# developers won't have problems to understand Fan code.
It's a bit difficult to find a definition for Fan, because it tries to offer many different features in one single and simple language. In a few lines, this list offers a summary of Fan's main features: • Portability. • Object-oriented (with inheritance support). • Immutability. • Closures support. • Dynamic programming. • Functional programming. • Serialization support. • Actor framework.
The actor framework is really powerful. It supports the most important features required to create concurrent code without problems: • Actor locals. • Actor pools (using a shared thread pool). • Futures. • Timers. • Chaining. • Message passing. • Coalescing messages. • Flow control mechanisms.
In the forthcoming months, expect to see new libraries, languages, compilers and Domain-Specific Languages appearing to simplify parallel programming for many languages, virtual machines and run-times.
For more information, visit Fan's documentation website