Ask HN: From Ruby to Scala?

Hi guys.

I'm a long time Java developer (around 10 years off and on) and a more recent (4 years) Ruby developer. Lots of other languages thrown in too, but I won't mention them here.

Anyway, I love many things about Ruby, and also about Rails. The clarity, succinctness and openness is refreshing. But I often find things to dislike too...(the fact that I have to develop a rather large set of tests to even get to the level of checking a true compiler would give you...the monkey patching...the lack of a true, effective, import, the difficulty many tool vendors have when dealing with things like autocommit...the lack of an agreed upon and standard way to define software and api contracts...I'll stop here, but there's much more).

I'm not Ruby-bashing by any means...it's been good to me and has made coding fun again. But I'm starting to hanker for something new.

I've heard from some that Scala has many of the features that make Ruby nice, but without paying the "dynamic magic" tax. And I know from lurking here that many of you use Scala. So, HN'ers, I ask you:

1. Is it true? Can Scala do much or more of what ruby does with the same clarity and productivity boost? I've scanned some of the docs and have frankly been scared of the syntax...reminds me of my old Perl days.

2. Assuming #1, what's an experienced but very busy Ruby/Java developer to do to get up to speed? The Artima book weighs in at 776 pages...if it really takes that much tree carcass to learn the language, I'd argue that #1 must be false. I still have sore arms from carrying around my Java books...I don't want to go through that again.

3. Has Lift reached a point where it is ready for production use, and if so, how does it compare to Rails?

Thanks very much for any insight you provide!

  • These are surely aspects that differ based on the coder, but here is my take on it. I have a strong Ruby background and the last few months I have been using Scala alongside Ruby.

    1. In short, yes. I think the key for me is using a mix of Scala and Ruby. For many tasks, I am not as efficient with Scala. I think that is 2/3 my inability to more effectively leverage the language and 1/3 the language itself. I find Scala to be incredibly clear; in many cases more so than Ruby. The type system and pattern matching can do amazing things for readability.

    2. The Artima book is helpful to have at hand, for sure. As for getting up to speed, both the O'Reilly book and the Pragmatic book are good. Just from my feel, the Pragmatic appeals more to those coming from a Java perspective, and the O'Reilly appeals to people with a Ruby/Python background.

    3. Never built more than a toy application with Lift, but there are definitely a fair number of people using it in production.