More blog woes
Saturday February 18, 2012 16:53:25

Well looks like the new implementation of Border Town, written using the cool Play! framework, just isn't cutting it.

Its sad because I really enjoyed experimenting with the Play! framework and the code that I've written so far in Scala is like a dream. I worked for nearly two years on a professional web site which used the JVM and came to really appreciate the technologies and was looking forward to utilizing that experience with my personal site.

Ultimately, however, I don't have the time or the computer to treat BT like its a professional job. I'm currently using a laptop that was white-hot in 2005; these days its fast enough for anything I do, except for Scala. This project made me realize that Scala is just too slow. I love it to death, I really do, but when you switch Play! (a Java framework whose claim to fame is the quick turn-around time) from Java to Scala page refreshes go from taking a second or two to in some cases half a minute and more if the JVM crashes due to lack of memory. I started the new version of Border Town in a Vagrant backed VM and had a good time hooking all the disparate components together with Bash scripts, but when I integrated Play! I had to start developing it on my host machine instead and only use the VM for infrequent tests. Even then, refreshing a page using Play! with Scala on my host machine with 2GB of RAM took longer than simple Java files hooked directly into Tomcat in my VM.

Its sad because Play! with Scala is otherwise so frickin' cool. The template language is based on Scala which means you get 100% type-safety in your views, which is amazing. Plus Scala is just a beautiful language which I've never had a chance to really dive into, and I was hopeful Border Town would present such an opportunity.

In the end though the overhead of setting all the garbage up to play with the site meant I never touched it. Silly errors that were one-line fixes got noticed, and then put off for several weeks as maintenance required a free morning during the weekend where I could turn on the Border Town VM, then turn on Play! on my host, and then remember how it all worked. Play! also used its own version of everything including its build system (i.e. no Maven or Ant) which was another layer to remember, and then when I went to deploy it on Tomcat I often found it broke due to typical Java issues such as a Jar getting included twice. If this had been my job or even something I worked on as often as I could in my free time I think I could've figured it all out and the time spent would've justified the productivity gains, but since that isn't the case eventually I just came to dread messing with the thing.

I'm not 100% sure what I'll do for the next version. PHP of course will have to be there. I hate PHP and never have “learned” it the idomatic, right way (assuming such a thing exists) but I'll be damned if the apps written for it like PhpBB and Wordpress aren't impressive. I'll start simple and see where I can go from there.





<---2012-02-27 07:03:21 history 2012-01-29 17:57:42--->



-All material © 2007 Tim Simpson unless otherwise noted-