Angular shitstorm: What's your opinion on the controversial plans for Angular 2.0?
Is Scala for you? How do you know?

Defending Scala’s honour – why you should give it a go

JohnStevenson
Microsoft-Fund-Scala-for-NET-Project1

After last week’s slight furore over the benefits of Scala and its community, John Stevenson tells us why he uses the language.

How do you know when a language is for you?  It usually is not something you can decide in 5 minutes!

The Scala language has grown in popularity over the last few years and inevitably you have the followers and deriders publishing their opinions.  Why not spend an hour or two and create something in Scala, gaining insight as to how the language works and forming your own opinion?  

Scala is really easy to start with, especially if you are from a Java background.  Their language is supported in IDE’s (Netbeans, Eclipse, IntelliJ, Emacs, etc) and with the typical Java build tools.  You are creating byte code after all!

There are great tools such as Simple Build Tool (SBT) and the built-in run-time environment (the REPL) which give you that fast feedback loop that is invaluable when you are learning something new.  This fast feedback loop is something I greatly miss when its not there.

If you want to see if Scala has value for your company, get some people together at work and see what you can learn over a few lunchtimes.  In a few sessions you will be surprised what you can find out about the language and have a real basis to decide if you want to know more.  Many people have started with Scala to enhance their testing approach, or tackling a problem that is challenging to do in their current language.  There is also a lot of interest in Scala with web frameworks such as Play.

If you want to understand who else is using Scala and the benefits they have gained, attending a Scala community event gives you opportunity to learn from the experience of others.  There’s a highly active community around Scala across the world, so you should be able to find a Scala or functional programming group near you.  If not, why not create one yourself?  Being in a group is a fun and effective way to learn, running a group is a useful aspect to talk about when developing your career. 

Some Scala and functional programming grous in the UK include:
London Scala user group     Functional Brighton     Dublin Scala user group     London Clojurians

I play a small part in the London Scala community and have been amazed at the huge uptake in interest over the last two years and we now have around 500 members.  Each month we organise talks and run coding workshops to giving anyone an opportunity to understand the benefits and challenges when using the Scala language.

Learning something new always helps challenge assumptions that we let ourselves make, so its good to try something new so we don’t become inflexible in our thinking.

Once I started looking at Scala it helped me add a different dimension to the way I was thinking about my Java code and the overall design.  I am much more expressive when coding and take that extra time to think about the consequences, especially when it comes to state management.  Whether I am using Scala or Java as my language, I am having a lot more fun and writing better code.

Should you learn Scala ? – that decision should be up to you.  Don’t be swayed by other people and miss out on learning something new.  Whether or not you use Scala, it should be your choice and you should know why.

Why learn any language?

The last few years in software development have seen an amazing amount of openness and opportunities to learn.  Both Java and .Net platforms have seen a diversity of language and the popularity of Ruby, Python and JavaScript allows for a rich source of innovation.  There are obviously going to be comparisons between languages and disagreements as to “the best option”.  As context is often the first thing to be lost, most of these comparisons are meaningless.  So why compare one language with another?  Ask yourself what is the motive of anyone who blogs on this topic?

As commented on by Uncle Bob and others, there is no “final” language that suits all and I hope there never will – it may signal the end of innovation and stagnation in an important part of our industry.  

Author
JohnStevenson
John is the UK ambassador for Atlassian and active organiser of several communities in London. He runs workshops and speaks on technical topics including open source projects, developer tools, continuous delivery, TDD & BDD practices and declarative (functional) programming (Clojure). John also presents on kanban as a way to help individuals, teams and organisations become more effective. He is a strong advocate of group learning and encourages others to get involved with the community for their own personal growth.
Comments
comments powered by Disqus