I am trying to get my fellow (Java) programmers to use Scala. The case, in a nutshell, is this:

  • Scala is very Java compatible, which means you don’t have to give up anything.
  • Scala has lots of big and little features that together make you more productive.
  • Even a small productivity gain is worth making a change for. We’re going to be writing a lot of code and  we have ideas for many a lifetime more. We need that extra productivity.

In the next few posts, I will show off the compatibility and the different features. The last point is self-evident and so my case should be very solid. Unfortunately, not everyone makes the same kind of list. Here’s an alternative case:

  • Java is already perfect, since I found it I haven’t felt the need to ever learn another language.
  • The good people at SunSnoracle are constantly busy making Java more awesome. If a new feature is really good, they will incorporate it.
  • Nobody I know uses Scala, there’s too little documentation and learning it is too hard.
  • I leafed through the book and it has 33 freaking chapters. You expect me to read all that? I dread looking at the others.
  • There are no frameworks in Scala.
  • Scala is an academic language. It will never work in the corporate world.
  • I have to use Lift to do web programming? lib.web? Oh, now it’s suddenly Play! Make up your mind already.
  • If it were any good, I would have known about it. I stay on top of everything in technology.
  • Object-Oriented Programming has won. Don’t bother me with you niche functional language.

If you entertain 3 or more of these thoughts, then I have news for you: You are lazy and insecure. It’s much easier to pick some reasons at random to not do something, however wrong and inconsistent they may be, than to invest the time to become a better programmer. I cannot hope to refute every wrong statement or point out every inconsistency, because there’s an infinite supply of them.

So, I’ll do what I can do, which is to present my own case as best as I can. To be continued…