Support for mixed Scala/Java projects improved a lot in Scala 2.7.2, which was released in late 2008, so there aren't problems mixing Scala/Java anymore.
Here's a description of what was added since this article was written:
"The compiler can now parse (but not translate) Java source files. This makes it possible to have mixed Java/Scala projects with recursive dependencies between them. In such a project, you can submit first all the Java and Scala sources to the Scala compiler. In a second step, the Java sources are compiled using the Scala generated .class files and the Scala sources are compiled again using the Java generated .class files."
I don't know Tony personally, but I'm very familiar with his work. He's a brilliant programmer.
HN is the only reason I learned about Tony's suicidal message on IRC within an hour of it being sent. Hopefully someone who personally knows him seeing this will be able to help.
Being able to write a "hello, world" in Haskell certainly doesn't make you a good programmer. However, I would say that anyone who has already written a sizable Haskell program (5K+ LOC) is almost certainly a good programmer.
The reason is that it's more work to grok Haskell than almost any other existing language, and the job market for Haskell hackers is practically nonexistent. You have to really love programming to become a proficient Haskell hacker.
Version control is indeed always a good idea. However, I'd strongly advise choosing Git over SVN.
SVN's branching capability is a joke compared to Git, and you'll wonder how you ever lived without easy branching once you get used to having it. This is important even if you're the only developer on the project.
In my experience, Solaris zones and VMWare's virtualization offerings are the most solid and reliable virtualization solutions available (VMWare is quite pricey though). Zones are the best game in town when you need OS level virtualization.
There are plenty of things that suck about Solaris -- zones aren't one of them.
Scala has some very nice features for making Java's libraries much nicer to deal with. The most useful are probably implicit definitions and parameters, operators (any method may be used as an infix or postfix operator), and target typing. You can often "Scalify" a library using these features. See [1] and [2] to see what I mean. These features are also great for creating DSLs.
The recent Scala 2.6 compiler brought some other niceties like structural types (imagine duck typing with a static type system), existential types, and lazy values.
All in all, I've been thoroughly impressed with Scala.
Interestingly enough, we actually live off something very similar for our startup. However, what we do requires less work than pg's setup for the lazy ones among you.
Buy a rice cooker and large quantities of white rice. Then buy 6-packs of various pre-made packages at TastyBite (http://www.tastybite.com). This sounds like an ad for TastyBite, but their product seriously is amazing for startup founders.
Once your rice is done, just open up your TastyBite and put it over the rice. The packages last a year unrefrigerated, taste good (and are reasonably good for you), and only cost two dollars a package. There's a pretty wide variety of things you can buy from TastyBite (all of them go well with rice), so you won't be eating the same thing again and again.
I consider it one of the smartest things we've ever done at our startup.