Bootstrapping a Scala Mindset

8th December 2014 in London at Business Design Centre

There are 54 other SkillsCasts available from Scala eXchange 2014

Please log in to watch this conference skillscast.

499544178 640

The aim of this session is to map out the key stages involved in moving productively from a Java to a Scala mindset.

As Scala gains increasing traction in OO developer communities, more and more Java developers are in the progress of making the move from being Imperative-comfortable to FP-fluent. Many are lured by the terser syntax, others by the promise of powerful high-level constructs, and more still by the thrill of challenging themselves and learning something almost entirely new to them. The problem however, is that for many their initial enthusiasm soon wears off and the realization of how much a mind-shift this really is sinks in.

In this session I will discuss in detail the key steps along a path which via much trial-and-error has proved for me to be effective in undertaking this transition. We'll begin at the base-camp of understanding (Java-concepts to let go of, the initially-unfamiliar syntax, the equally-unfamiliar maths idiom) and from there up into the lower foothills (the basics of the type system, infix notation, ""everything is an expression"" and referential transparency) before progressing on to the lower peaks of the language (Pattern-matching with case classes and partial functions) and ending at one significant Monadic taster (Option, map/flatMap and the for-comprehension).

For maximum benefit I'll also point out the pain points I encountered, techniques and resources I used to overcome these, and we'll end by mentioning next steps and further inroads into the language.


Thanks to our sponsors

Bootstrapping a Scala Mindset

Andrew Harmel-Law

A highly enthusiastic, self-starting and responsible software engineer/architect; Andrew specialises in Java / Java EE technologies, agile delivery, build tools and automation, and domain driven design. Experienced across the software development lifecycle and in many sectors including government, banking, and eCommerce, what motivates him is the production of a large-scale software solution, fulfilling complex client requirements. He understands that people, tooling, architecture and process all have key roles to play in achieving this. He greatly enjoys working in all these areas.