Rewrite Java in Scala - If developers have time to learn ONLY ONE language in year 2013, it should be Scala.
• Doesn't have "Void" like in Java which means "return nothing", but Scala has Unit "()". Think of "()" as a placeholder for “no useful value”. Void has no value whereas Unit has one value that signifies “no value”. This is better design Scala than Java, the difference can be described between an empty wallet and a wallet with a bill labeled “no dollars”.
• Has no checked exceptions. Exceptions handling in Java is one big headache, poisoning the codes, breaking OO design principles.
• Has functional programming built-in. Java ONLY has method, but no function. A method operates on an object, but a function doesn't. So in Java, you have to imitate function with static method.
• Different return. Return is invasive in Java, but in Scala you need to get used to life WITHOUT return. Return is like the breakout statement for functions, and it breaks out to the enclosing named function. So the less the better for immutable codes.
Google+: View post on Google+