David Pollak
Who is David Pollak?
A dad. A geek by birth. A lawyer by training. I’ve been doing software for pay since 1977 starting on the Apple ][, fell in love with NextStep, then Java, then Ruby/Rails and finally Scala.
What's Scala?
What if Java and Ruby and Haskell has a love-child? Scala is the best of all three languages. It's got the conciseness and DSL-ability of Ruby. It's objects all the way down like Ruby (and unlike Java). It's got the performance and library support of Java and the JVM ecosystem. It's got a very powerful type system that lets you declare many of your tests in source code rather than bolting them on in separate files.
Scala vs Ruby vs Python? and why?
transaction on customer complete {...} postCommit {...} postRollback {...} send CompleteSale(item) // yep... that's valid Scala
So, you've got super nice DSL capabilities. Scala supports all kinds of combinators... for example, this is part of Lift's Textile parser:
lazy val lineElem = not(blankLine) ~> (endOfLine | image | footnote_def | copyright | trademark | registered | single_quote | quote | acronym | charBlock)
That bit of valid Scala code says "a line element is something that's not a blank line followed by any of the other elements."
The nice thing is that the above is type-safe... all of the items that are or'ed together have to have a type Parser[Textile]… that means if you put “println” in there, you’d get a compile-time error.
Scala’s got the run-time performance of Java… that is to say wicked quick. It’s got type inferencing so you don’t have to declare types except where you’d have to document/write tests for them. That means similar code conciseness to Ruby and Python. Scala’s object model is a superset of Java’s so you can use any Java library, subclass any Java class and implement any Java interface… without any bridge code or runtime penalties.
Scala’s got traits… which are like Ruby’s mixins.
Scala’s got immutable collections which make for some very sweet concurrency-related coding.
Scala’s got for comprehensions which are more general purpose than Python’s list comprehensions.
GIT or SVN?
TGV or mule cart? Flamethrower or rubbing sticks together? Sewer system or outhouse?
Git allows technical collaboration and excellent exploration of ideas in a way that’s impossible with Subversion. I love Git.
What does your typical day look like?
Wake up. Wake the kids up. Make breakfast. Take the kids to school. Have coffee with the dog and catch up on my Twitter feed. Go to my office. Catch up on the over-night Lift and Scala mailing lists. Try to help a few newbies. Then I get down to coding. Usually by 11am, I’ve got and idea of what I’m going to bang out for the day. Between 11 and noon, I get as much stuff into my brain-cache as possible. Then I go to lunch… there are a ton of great Pho places near me and I love Pho. I come back from lunch and start cranking on code. Round about 5pm, I get things into a commitable state, and commit them up and clean up a little of the last-minute emails. At 5:30, I turn into a dad and husband.
What do you do in your free time?
Have fun with my family. Play with Archer, my dog. Read. Have fantasies of hooking up a turn-table and making my kids listen to LPs.
Current favorite apps?
Emacs. Firefox.
What OS do you prefer?
NextStep (but there’s no JVM, so I don’t use it a lot anymore). Ubuntu. And, no, I don’t like OS X at all… sorry.
Small picture for your Workplace?
Wht’s the next for Scala?
On the release side, Scala 2.8 has been 18 months in the making and is going to be quite a stellar release. I’m expecting Martin and his team will release it this spring. Along with 2.8 comes a lot of nice IDE tooling. There is an increasing amount of Scala-specific tooling and this helps make adoption easier. Highly visible projects from the likes of Novell and Xerox as well as very visible adoption from startups like Twitter and FourSquare tell an interesting story about how Scala adopts to a very broad audience.
Martin Odersky, Jonas Boner, Paul Philips and I are banding together with some other folks in the Scala and Lift communities to offer commercial, supported Scala and Lift releases, training and other services around Scala, Lift and some of the other key frameworks in the Scala ecosystem.






Did you happen to have NextCube? Those were the coolest computers ever.
Yeah, I’ve got a NeXT Cube with a NextDimension board. I’ve also got a Turbo (33Mhz 68040) slab. I did most of my development on the slab. It’s faster.
Why allways this david pollak! All he’s done is a mediocre web framework(?).
How did he become the poster (play)boy of the scala scene? Listen to the brains instead.
nice short comparison between the languages.
I follow DP on twitter so kinda had an idea of his daily schedule but this is way to perfect considering that I usually spend 12+ hours at office :)
Cheers, I read all your writings, keep them coming.