Sunday, May 18, 2008

Scala and the Lift web applicaton framework

I have been playing with Scala for a while - playing is the correct word to use since I am waiting to see how popular the language becomes. I think that Scala will possibly end up being 'the better Java' for the JVM, but for my business I prefer not learning and using another language that is not main stream (my almost 25 years of using Lisp professionally has sometimes been a hassle because of the unavailability of other skilled Lisp developers and a smaller ecosystem, and I don't want to devote a lot of time to mastering another language that may end up being "on the fringe").

That said, Scala is a very nice language that has two non-language things going for it: very efficient runtime performance with OK memory use and that it runs on the JVM. Scala looks to be a good language for AI development and its interactive console adds some of the advantages of interactive bottom up development - a style I like to use when working in Lisp, Ruby, or Python.

Until this morning I have only read about the Scala Lift web framework, but after reading Vivek Pandey's blog about running Lift I gave it a try this morning. The maven setup and default web application construction was all very smooth, and the generated code was interesting to read. I also like the way Scala unit tests work and the debug modes supporting both an interactive Scala console and running with an embedded jetty web server. Everything works very well together and the entire system has a polished feel to it.

3 comments:

Zemian Deng said...

Hello Mark,

Check out http://code.google.com/p/sweetscala as well. It's more MVC and OO oriented approach using Scala.

Mark Watson, author and consultant said...

Thanks, I just took a quick look at sweetscala - looks interesting. I am still deciding whether I want to invest the time in Scala to move past the "just having fun with it" stage, and to use it for real projects. I am rally waiting for excellent IDE support before I make up my mind.

keepitsimple12 said...

Yeah, I am a java developer and have been spoiled by Eclipse. It was specially tough for me to decide start investing time into a Scala project where the IDE is limited. But then I am always good with my plain editor(jEdit) and I find myself not much behind as productive wise when coding Scala with it. As I add more codes and design the framework around Sweet, I have so much fun with Scala coding that it makes me little sad to put it down when working on my real job with Java. :)

Also as part of Sweet goal is to provide a toolbox that can generate and start off things with single command line. So it's not too bad to get a new project running with just:

$ toolbox create-project myapp
$ cd myapp && mvn jetty:run

I hope you will check back after a stable release and give more comments then.

Thanks.