Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Scala for me? (C# developer with focus on functional / OOP style)

I want to learn a new programming language and develop for the Android platform.

I'm a fulltime C# / F# - developer and I also use C# in the most functional way possible (because I like this paradigm far better than the old skool style "lets iterate and describe to the barkeeper how to make the cocktail", to quote Microsoft).

However, I have a strong dislike for Java, because in my opinion it is outdated and, hm, a dinosaur - it lacks exactly the features I like best about C# and F#.

On the other hand, developing for the Android platform requires JDK use.

So, would you recommend Scala? Or is the JDK stuff not for me at all?

like image 864
FunctionalDude Avatar asked Oct 02 '10 08:10

FunctionalDude


1 Answers

Scala rocks exactly as you'd expect that a functional language built on the JVM might. The only downside compared to C# for me (I haven't used F#) is that the IDEs haven't quite got the refactoring down yet. It isn't bad. I'm using IntelliJ's plugin for Scala; that seems to work well enough.

Of course, the main benefit you get from Scala is being able to leverage all the many Java libraries out there, since they work (mostly) interchangeably. That might not be important for the Android platform where your apps will be small and stand-alone, but for commercial development it means that Scala is already a serious Enterprise language. Learning Scala will therefore give you more job opportunities in the future. I would definitely recommend Scala.

One of my large financial clients is using it as their server-side language and it works beautifully. There are a few interesting clashes between eg: Scala and Java lists, Scala and Java booleans, all well-documented, but otherwise it's smooth.

Good luck!

like image 73
Lunivore Avatar answered Oct 12 '22 23:10

Lunivore