I'm a big fan

I've been watching the Fan language for some time now after seeing it first mentioned on on Stephen Colebourne's blog.  Or maybe it was Cedric's.  Anyway, it caught my interest and i've been a voyeur ever since.  I'd peek into the site every few weeks or and see what was up.  Recently I decided to really give it a go.  Since I had so many other side projects languishing, what's one more, right?  Now, I'm not one to just sit down and start writing random code.  I need a goal.  A Project. I finally found one:  porting mercurial from python to fan.  Now, I know what you're probably asking.  "Are you daft?  Why would anyone want to do that?"  Well, there are a few answers to that.  Foremost, is that it gives me something concrete to write in Fan.  Other, more ancillary, reasons include not really needing platform specific builds (get rid of the C code!) and seeing how Fan stacks up speed wise to the python version.

Now, that last reason is the tricky one.  The first is easy enough to fulfill no matter how far down this road I go.  I mean, I'll be learning fan regardless of how functional this port is.  But to really compare speed, one has to have equally functional software.  I *could* just write some benchmarks blahblahblah but those are relatively boring and my python chops are a bit rusty.  Having me write python code for a benchmark wouldn't fair at all to python.  And probably just a little embarrassing for me to have that code out in the wild.

So my question now is, how far do I take this?  I like the fan language quite a bit.  I'm far from having mastered it (especially as parts of it are still under heavy development and discussion).  But so far, it's not too bad at all.  It's like a cleaned up Java 2.0.  I've found a number ways that *I* would "clean up" the current python code (I know "clean" is subjective and probably will start a flame war but that's not the point of all this).  I'm almost to the point where I'm going to start getting into some heavy lifting of hg protocols and the like.  I'm not sure have much further I really want to go down this path but so far I'm having fun.

If you're looking around for a new language to try or you've been thinking about fan, you should definitely give it a spin.  It's probably a little too early to commit an enterprise to since there's still some evolution going on.  And some IDE support would be nice.  (I do have Komodo Edit set up to parse the build output but no syntax support yet...)  It's definitely an interesting option if you have mixed deployment environments, though.

IDEA 8 on Java 6 on the Mac

That's a lot of "ons" for just a title but it's descriptive at least.  I've been having some problems launching IDEA 8 on my macbook pro since upgrading to 8.0 final (the RCs were fine strangely enough).  I tracked it down to a plugin that had been built against Java 6.  Unbeknownst to me, IDEA 8 is hard coded to launch with Java 5.  I have no idea (ha!) why but I know how to fix it. If you open up the package contents (right click, show package contents) and open the "Contents" folder you'll see a file called Info.plist.  Edit this file with your favorite editor and change the line that says "1.5*" to say "1.6*"  You'll also need to update the JVMArchs entry to list x86_64.  Save the file (but don't close it in case you need to roll back this change) and start IDEA.  When it's done starting up, click on the "Intellij IDEA" title in the menu bar and select "About InteliiJ IDEA" option.  The window that pops up should now list your VM as some 1.6 variant.

Now, I'm sure that JetBrains had some good reason for tying to IDEA to 1.5.  This change might break something down the line.  I haven't used it enough to see if I hit anything like that but so far so good.  Your milage may vary and, of course, I can't guarantee this won't trash your source files.  But it seems to work so far.  If you run into any issues, please leave a comment and tell me about it.  I'm guessing if we run into anything it'll be some odd swing bug.  Good luck with it.

UPDATE:

A friend mentioned some menu rendering lag after trying this tip and fixed it by increasing his permgen space.  Another pointed out the VMOptions IDEA plugin to help with editing those options.  No more tracking down that file.