I’ve been working a lot with Scala over the last few months, both at work and personally. If you get a chance, check out DenverDesignStudio.com. It is the new site for my girlfriend’s company. She does custom calligraphy for weddings and events. Her work is amazing. It’s almost the exact opposite of what I do. While I sit around beating my head against machines, she fashions these beautiful organic handmade creations. It’s awesome. We collaborated on the site. I’m not much of a web developer, so she did all the design in illustrator, and then I coded it to get it working. It turns out that the two of us make one half-decent web designer. In any case, check it out.
The reason I mention it here is because the entire site is done in Scala against a PostgreSQL database using the Play Framework. It’s running behind nginx on Ubuntu which is running on a Linode VM. I guess that makes it a LNPS stack, which just rolls off of the tongue. It’s been a lovely experience.
First off, Linode is awesome. They totally get out of your way. I feel bad for not having more to say about them; however, they are so good that I hardly notice that they are there. I mean that in the best way possible.
Second, nginx is awesome. It’s small, it’s fast, it’s wicked easy to configure. I have it serving a bunch of blogs (including this one) which are WordPress sites, DenverDesignStudio.com, etc. and it just works.
Third, Ubuntu Server is awesome. It’s small, it’s fast, it’s wicked easy to configure. I tried using Ubuntu as my main OS on my Dell laptop for work for the last 3 weeks and it’s not my favorite. I’ll write about that some other time, but I like Server quite a bit.
Fourth, Play/Scala is awesome. It’s as simple as it can be, and no simpler. It’s a joy to work with. It integrates with intellij (which is also an awesome piece of software). It doesn’t use an ORM! That might be my favorite part. I write SQL, and it blazes. It doesn’t get on board the java abstraction boner wagon. The main reason I almost never write Java is because it feels heavy and slow. It abstracts away things that people should probably understand if they are writing code. I like a certain level of abstraction though, which is why I don’t program in C or C++ much. I don’t need everything abstracted away though. Play is a good balance and so far I really enjoy it. Scala is mostly what makes it awesome. There is part of me that still things the erlang vm is the way to go, but I’ll have to wait until I have more time to play around with it. In the meantime, I’m getting things done with Scala, which is nice.