Blue Collar Languages

September 27th, 2010

Cay Horstmann wrote an interesting response to Stephen Colebourne’s NBJL post:

Creating a “blue collar” language isn’t something that happens every day.

When done by “blue collar” people who have sketchy knowledge of programming language theory, the result is often problematic. Look at PHP–I trust that I won’t have to elaborate… Or Groovy, many of whose properties (particularly in the MOP) are under-specified and constantly shifting.

Few “white collar” people have an interest in designing a blue-collar language. They give us languages that dazzle us with their brilliance and innovation. After all, that’s what a researcher is rewarded for.

Interestingly he made no mention of Fantom in this context, which means I assume he hasn’t looked at it any detail. That was one of the explicit design goals.

Which makes me wonder – do people pass over Fantom because of the exact same reasons they search for new languages? You want a simpler, more expressive language, with great APIs, that make your life easier 9-5. But you take a look at Fantom, and move right along, since you don’t see buzzwords like monads, or some ground breaking new syntax?

Beer Mile

September 27th, 2010

Koozie artwork for a friend’s annual Stew & Brew party. Theme was a Beer Mile.

Beer Mile

Fantom’s History and Future with JavaScript

June 2nd, 2010

One of Fantom’s primary design goals from day one was portability between the JVM and CLR. Naturally we got to thinking, if we can run on both of the popular VM’s, why not on JavaScript too? That would enable enormous opportunities for code reuse and greatly simplify the huge impedance mismatch of developing backend server code and user interfaces in the browser.

Read the full post at


April 12th, 2010

The product we have been crafting at SkyFoundry for the past year and a half has officially been christened as SkySpark.


SkySpark is turning out to be an awesome platform for visualizing, analyzing, and managing mountains of data. We’ve updated the website to include some high level technical documentation on the software stack. Its built 100% in Fantom – including all the client-side browser code using the Fantom JavaScript compiler.

This software has really validated the years of effort we’ve put into making Fantom a first-class language. I don’t think we’d have been able to build anything even close without it. I’m excited to show off more as we move towards the official release.


March 17th, 2010

Played with the new Inbox2 beta today. Very promising application. Really tries to build a new email model from the start instead of trying to bolt things to the side of a 10-year design. Looking forward to see where it goes.

Fantom AST Viewer

January 22nd, 2010

Finally got around to throwing the code to my Fantom AST Viewer online. You can check it out over on bitbucket:

Its pretty crude, but works, and should be pretty easy to fix or modify to suite your needs.


January 20th, 2010

After following the mailing list briefly, I figured this project was doomed from a “too many cooks in the kitchen” approach. Good software is the result of a small group of really good people making really good decisions – often deciding what not to implement. To be fair though, the S/N ratio was very high, and it was good brainstorming, so I reserved judgment until I saw who was elected “president”.

So I was surprised when I saw that John Gruber was elected as “president”. John gets Mac software and good software in general, so this little project still has alot potential.

New Email Client?

January 18th, 2010

Very timely since I’ve been searching for a new email client (grown tired of using two different webapps to manage my personal and work email). I’ve been using Postbox which is the best I’ve found – but still leaves a bit to be desired. And while Postbox’s theme (its built on Thunderbird) is nice – still would love a pure-Cocoa client.

See info on Brent Simmon’s blog. Hope this goes somewhere.

JavaScript try-catch bug?

January 13th, 2010

Ran across a seemingly bad bug either in Rhino or JavaScript language spec – haven’t had a chance to dig into. But this pattern appears to let an exception raised in func() leak thru the surrounding try block:

  function foo()
    try { return func(); }
    catch (err) { ... }

I was able to work around by assigning to a local variable:

  function foo()
    try { var x = func(); return x; }
    catch (err) { ... }

Did a short Google on this, but nothing obvious turned up.

Google Reader

August 6th, 2009

I’ve used a number of RSS readers over the years, and even wrote a few of my own (Newsfox, Fizzle, Beatnik). However, when I bought my MacBook Pro a few years ago, I settled on NetNewsWire as my app of choice. After getting my iPhone, the NNW app was one of the first I downloaded. I signed up for NewsGator to sync my feeds and read/unread between my phone and laptop. I might have too many feeds for the iPhone app to work well, but it did its job, and I was pretty happy with the setup.

Not long after that, I realized I could access all my synced feeds in NewsGator from the browser. So now I could read my synced feeds on my daytime Windows dev box. The online NewsGator app is pretty much abysmal, but it works, and syncs, and since I couldn’t do any of that before, I was happy enough.

So when I got wind that the next release of NNW was dropping NewsGator syncing in favor of Google Reader, my ears perked up a bit. On one hand thats interesting since NewsGator bought NNW, but I was more interested in the browser experience. It had been several years since I’d tried out Google Reader, and while I thought it was ok, I don’t remember being overly impressed.

But I decided to give it another go. I exported all my feeds from NNW and imported them effortlessly into Google Reader. The UI seems to be the same as before. But this time it “felt” alot better, not sure why (is it the enormous performance gains we’ve seen in the last year or two that makes it feel zippy now?). I found it easy to scan and read all my feeds. In fact, I like it so much I might just drop NNW altogether and use Google Reader exclusively.