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:
- Object-oriented (with inheritance support).
- 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).
- 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.