Fan – Next generation Java?
In this presentation, filmed at a recent Skills Matter JWUG meeting, Stephen Colebourne gives users a very comprehensive overview of the language, Fan. He puts this forward as an improvement over the existing Java language and highlights its portability for both the Java VM and .NET CLR (and even JavaScript).
Stephen describes some of the pitfalls in Java and explains the mindset behind the reasons for some of the syntax found in Fan. He states that the language is designed around expectations from realworld experience and follow the code patterns found in main stream programming languages; resultantly, Fan is tailored for real-world applications as opposed for academic purposes. Fan uses three levels to define a unique reference to any element, in the form of “pod::type.slot” (where top level “pods” are similar to modules). This representation is particularly useful when it comes to debugging with stack traces.
Fan is still a relatively new language and its very familiar syntax to existing Java and C# programmers will ease the transition with a minimal learning curve. This coupled with the flexibility of creating concurrent programs through immutability, and the even balance between static and dynamic typing, means Fan is certainly a promising contender to be Java's successor.
Download the slides for this presentation here (231 KBs)
- Login or register to post comments
- 7837 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)




Comments
Arek Stryjski replied on Fri, 2009/04/03 - 4:21am
Here is what they are writing on web page:
"Fan 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."
"IDE Support
We aren't IDE users ourselves, so this isn't our highest priority."
I don't get it. "Solid real world experience" and no IDE support... I was thinking it is XXI century...
Casper Bang replied on Fri, 2009/04/03 - 6:05am
Stephen Colebourne replied on Fri, 2009/04/03 - 7:44am
in response to: areks
"We aren't IDE users ourselves, so this isn't our highest priority"
Fan ships with Flux, a text editor with syntax colouring written in Fan itself that is currently being enhanced with more IDE like elements.
An IntelliJ plugin has been started by Fred Simon.
And, in general, writing a good IDE plugin with auto-complete should be a lot easier than Groovy (as its statically typed) and Scala (as the complexity is a lot less). Still, Fan really needs someone to take on the Eclipse plugin task...
Dennis Cheung replied on Fri, 2009/04/03 - 11:10am
I just have the following questions after I finsihed the video.
Q1.
Str? nullablestr;
Str str;
If (nullablestr!=null){
str = nullablestr; // is it valid ?
}
Q2.
enum Foobar { foo, bar }
Foobar sample = foo // it is stronlytyped, can I use a shorter form, if foo is not another slot
Q3.
Don't it have anything like "using(IDisposable){ sth stupid }" in C#
Q4.
Where is LINQ
Q5
How about Regular Expressions and XML? will there any literal or syntax support ?
Liam Knox replied on Fri, 2009/04/03 - 7:04pm
John De Goes replied on Wed, 2009/04/08 - 10:22am
John Denver replied on Wed, 2009/04/08 - 12:51pm
Liam Knox replied on Wed, 2009/04/08 - 5:54pm
in response to: jdegoes
I would also question this the same as initiatives such as Mono, where the requirement seems to of been invented before the problem exists.
Liam Knox replied on Wed, 2009/04/08 - 6:01pm
in response to: alpha512
It seems to of had every idea banged into it thinking about the function rather than the feal and intuitive nature of usage. Perhaps if they just took a little less haste, took Java as a base, made it pure OO, added a well thought through Closure design, you would have a better base that doesnt look to unatural to Java developers.