👍 For news and articles from Skills Matter, subscribe to our newsletter here.
ScalaX London 2018 Recap
Scala eXchange London kicked off again this year at London’s Business Design Centre, hosting Scala developers from around the globe over two days of talks, keynotes and workshops.
Cutting the ribbon for Scala eXchange London 2018, the language’s creator Martin Odersky delivered the opening keynote address. He wasted no time in diving straight into Scala 3, essentially the next major iteration of Scala, which is intended for release in 2020 following the iterations of Scala 2.13 and 2.14 (the latter being a prelude to this transfer to Scala 3).
“We want to avoid puzzlers, make the language simple to use and make people jump through less hoops to arrive at where they want,” Martin began.
“One particularly big hoop is data generic programming…programming generically, with a single version of the code, that works for types of many different shapes in interesting ways. In Scala 2 this is possible but requires a heavy combination of some fancy white box macros, lots of implicits, which are viral (once you start using implicits for the basics you can never get out, much like monads).”
He then explored two examples of data generic programming: Tuples and Typeclass Derivation. To start learning about these, watch Martin’s talk from 05:00, where he starts with Tuples.
Asked about the reality of the transition from Scala 2 to 3 in light of the prolonged transition from Python 2 to 3, Martin noted that they would fundamentally be the same language but the transition would be smoother than it was for Python because of static typing and binary compatibility.
Knowing when to break the rules in programming
Experienced Scala and Java developer Rory Graves delivered Back to Basics aka ‘When to Break Rules — in which he stripped back some of the common phrases and concepts associated with Scala developing, focusing on the idea of breaking rules in programming.
“The key takeaway is that if you choose to break a rule, do it actively. Know what the rule is, know why the rule is there, and then choose to break it if appropriate.”
Rory looked at the role of the developer in the race towards performance, efficiency and speed.
“In modern software development, the limitation in the system is certainly me. My laptop is now four years old. Making my laptop faster won’t make me write software faster. The limitation of writing software is my ability to reason about it.”
“Computers are stupidly fast. Use the abstractions you have, use the power of modern languages, use modern libraries to allow you to write code that is relevant to your problem. Forget about performance, because most of the time it doesn’t matter.”
Behind the scenes of the words: ‘Here are some other books you might enjoy’
Anna Bladzich and Adam Davidson from Elsevier gave a fascinating insight into the use of Apache Spark to build recommendation systems for academics.
With 15 million academic articles on its site, ScienceDirect is their baby. Their recommendation system, which takes so much sweat and tears, results in just three recommendations on the side of the screen for users.
They do this in three ways, through Collaborative Filtering, then through a Learning to Rank algorithm before evaluating the quality of what the team is about to put into production so that it won’t break anything.
“If you’ve been in the field of recommendation systems you’ve definitely heard of the Netflix prize. There were two winning algorithms. One was Spark but they both used collaborative filtering at the heart of their recommendations.
“You feed it the stuff you know about your system, letting collaborative filtering do some brute force crunching of numbers and what it displays is the sort of implied wisdom of the crowds or the people who are using your system.”
Maths has nothing to do with numbers
There were long lines for those waiting to have their copy of The Art of Logic: How to Make Sense in a World that Doesn’t, signed by the book’s author Dr Eugenia Cheng.
Delivering a keynote midway through the first day of ScalaX, the concert pianist and renowned mathematician spoke about how she came to a realisation about the applicability of abstract mathematics throughout our world and its integration with various systems rather than as an isolated field of research.
“Now I teach abstract maths to art students…I have taken it as an opportunity to study why some people get put off maths and how they might be put back on it. I have developed more and more ways to talk about abstract mathematics to people who thought maths was not for them.”
“At the root of what I think about is how to motivate students…I think that when you're teaching anybody, it's important to figure out what motivates them and tap into that.”
“I have a slightly allergic reaction to the word ‘useful’…I think we go on about it too much and put too much emphasis on the fact that maths is supposed to be useful. That’s like introducing a friend and saying they’re very useful….it’s not the entire point.”
“Pure maths is a framework for agreeing on things….pure mathematics is about how to think and therefore it is relevant to the entire human world and that is a completely different direction to its applications through science.”
Check out the free SkillsCast recording of Dr Eugenia Cheng’s keynote here.
Scala consultant at Underscore, Noel Welsh spoke in the afternoon on Day 1 on the basic ideas behind deep learning and deep learning frameworks like Tensorflow.
“I want to show that deep learning is basically functional programming. It’s all about the composition of functions and their derivatives.”
“What we need to do more of in the future is to treat differentiable programming just as we treat normal programming. We need to talk about ergonomics — what’s it like to write programs in this system? How do we guarantee they’re correct? Are we getting the correct values out? And how do we get performance?”
Fighting that burned out feeling
Founder of the Open Code meetup series and co-founder of Trans*Code, Jessica Rose began Day 2 of ScalaX with her keynote: Burnout.
“In a perfect world, you’re helping build beautiful, useful things — whether or not that's physically making them yourselves, building the teams, building the processes or in research — if you’re building the knowledge to let us do things in the future, that’s beautiful. But if you’re burned out, you just don’t have the tools. You’re not going to be able to build beautiful and useful things just because you don’t have the brainpower to do it right now.”
It’s actually fairly easy to break your brain, said Jessica.
“If you consistently max out your working memory, this is where burnout is going to come from. Occupational burnout has been around way longer than Scala…occupational burnout is just exhaustion…it’s mental, physical and emotional exhaustion…it comes from long-term stress that feels like it is unavoidable…it can mirror the symptoms of mental depression and even trigger the symptoms of mental depression. Yay!”
“Recovering from burnout is going to take a really long time. It could take you months or years and some people never fully bounce back, the best thing you can do is take care of yourself early and often…invest in the stuff that’s going to save you longer term and go ahead and save the energy where you can.”
“As technologists, we generally have…a lot of power with our labor and having people pick companies that aren’t going to hurt them is a really interesting opportunity for companies that are savvy.”
To see the full list of recommendations Jessica makes for battling burnout, watch her entertaining talk here.
A functional programming fireside chat
It’s not every day you get two of the leading figures in functional programming sitting down in front of a projected fireplace to chat about the future of programming.
Simon Peyton Jones, one of the original designers of Haskell, and Scala’s Martin Odersky sat down in a panel discussion of the issues that are important to the Haskell and Scala communities.
Asked about working on functional programming together, the two responded to how things have changed over the past twenty years.
“Functional programming is on a long slow burn,” said Simon. “I think it has deep and foundational importance on the entire enterprise of writing programs…the way I like to think of it is: when the limestone of imperative programming has worn away, the granite of functional programming will be revealed. I do think the process has been quite slow, but I think people are recognizing that functional programming is a better way to do most of what we do.”
Martin warned of the need to keep things relatively simple in an environment that is so passionate.
“When we started with Scala, essentially the standard was really object-oriented and we had to do a lot of explaining for even the most basic functional things. I think it has switched in public discourse….Functional is almost the new industry standard...
“I think we shouldn’t take it for granted and be very careful not to over promise or over abstract. That was essentially the death of object-oriented programming, where people invented all these fancy frameworks…I think that the same forces are at work in functional programming, where the community is by and large always at danger of over-abstracting….we have to be careful there and look at the beauty of the underlying abstractions.”
Gazing at the stars
Finishing up Scala eXchange London 2018, Rob Norris from the Gemini Observatory dove into the work of the observatory and of the mind of a functional programmer.
Starting with a nebula gas cloud 5,500 light years away from Earth, Rob explored angles first.
“Working in science, there is an aspect to it that is like copying holy texts, you want to be faithful to the original…”
If you have doubles in your data model, you can’t define a useful equal instance in a lot of cases, said Rob. His team has an ‘almost equal’ typeclass in their old codebase to deal with things that “always have this imprecision in them.”
Rob then explored their new model for more exact modeling within the observatory.
Thank you to everyone who was involved in creating the most diverse and engaging ScalaX conference yet — volunteers, speakers, sponsors and attendees were all vital in the success of the conference. Until next year!
This only scratches the air that runs above the very tip of the iceberg that was Scala eXchange London 2018. Thankfully, it was all recorded and is available for free! Head to the ScalaX 2018 programme page to browse through the various topics explored across the two days.
Loved this year’s conference or bummed out that you couldn’t make it? Early bird tickets are still available for Scala eXchange London 2019 here.