The Artima Developer Community
Sponsored Link

Computing Thoughts
The Fan Programming Language
by Bruce Eckel
February 16, 2009
At the free Alternative Languages Day 0 of the upcoming Java Posse Roundup, one house has decided to have a coding dojo on the Fan programming language, which I hadn't heard of before.


You can find out more about the roundup, and sign up here. We're also holding a Flex Jam the 3 days before the Roundup.

Fan is an interesting language because it attempts to pick and choose among the best features of both Java and C# and add features missing in both. It runs on both the Java VM and the .NET CLR.

Although it provides a syntax that will be familiar to both Java and C# programmers, it attempts to remove much of the cruft from both languages -- it doesn't go as far as becoming curly-brace free (too abrupt for programmers from C-based languages), but it does make a lot of design choices in the name of improvement. I rather like that the language designer(s) has a strong opinion on some things, for example:

Checked Exceptions: checked exceptions are evil syntax salt. Checked exceptions don't scale, don't version, and don't allow composable systems - all the reasons why Anders Hejlsberg didn't include checked exceptions in C#.

There's a rather compelling design document here that's worth reading -- it gives you a strong sense that the author(s) set out to solve all the problems that they encounter.

We have moved into the age of the virtual machine, so language designers can now create new, experimental languages that can be used for real projects. Because they run on VM's that do most of the low-level work, these experimental languages can rapidly become practical.

Talk Back!

Have an opinion? Be the first to post a comment about this weblog entry.

RSS Feed

If you'd like to be notified whenever Bruce Eckel adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Bruce Eckel ( provides development assistance in Python with user interfaces in Flex. He is the author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000, 3rd Edition, 2003, 4th Edition, 2005), the Hands-On Java Seminar CD ROM (available on the Web site), Thinking in C++ (PH 1995; 2nd edition 2000, Volume 2 with Chuck Allison, 2003), C++ Inside & Out (Osborne/McGraw-Hill 1993), among others. He's given hundreds of presentations throughout the world, published over 150 articles in numerous magazines, was a founding member of the ANSI/ISO C++ committee and speaks regularly at conferences.

This weblog entry is Copyright © 2009 Bruce Eckel. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use