Editor’s note: One of the unpaid interns is making ends meet in food delivery. Since everyone is curious whether the global pandemic will delay the Scala releases planned for 2020, we decided to ask during a lunch run.
SS - Hi, Professor. I brought you the take-out you ordered. Even though we’re in Europe, a friendly reminder that it’s OK to tip. I think you agreed to answer a few brief questions about the future of Scala? or did I misunderstand over the phone? You were kind of breaking up.
MO - No, no, please, come in. We can chat while the single-use plastic take-out container is disinfecting. Would you mind just staying behind the yellow tape?
SS - Everyone is excited about the accelerated transition to Scala 3 and frequent Dotty releases. Is there any new news?
MO - Yes, the Scala Team decided at the Scala Team Meeting and Weekend Ski Retreat that instead of cancelling 2.14, we will re-number 2.13 as Scala 3, 2.14 as Scala 4, and so on, with Dotty coming in at Scala X.
SS - Ten?
MO - But stylized as X. Not to be confused with various other projects called Scala X over the years. We asked ourselves, What would Java do (WWJD), a strategy that has worked so far, except that they seem to be gaining on us. With Scala 10, we’ll be only four releases behind them.
SS - Are you concerned that Scala has a developer base that skews older, over 25 and perhaps close to 30?
MO - Programmers attracted by Scala tend to be wiser.
SS - But if they don’t get the pandemic under control, there may not be many of you left to carry on.
MO - That’s why I’ve taken on a young undergraduate, she’s a student in one of the Coursera offerings, she really stepped up to improve my latest book, which we used last semester.
SS - Right, I have a copy: Dr Odersky’s Guide to Contributing While Corona-bound.
MO - The public health situation really changed the way we ran the course.
SS - Wasn’t Coursera already an online course?
MO - Yes, but now I can’t pretend I’m in my office during office hours. I don’t even bother with a background, it’s clear I’m sitting on the couch in my pajamas. No matter, I feel that European academics has been far too stuffy for far too long and is due for a change.
SS - So you are finishing the book at home?
MO - Yes, all the techniques presented in the book have been tested by me and others on the team.
SS - And you’re hoping the book will introduce Scala to a young and diverse demographic? Is that why all the exercises are posted on Instagram?
MO - In part. It also generates ad revenue, and we expect the Patreon to fund a part-time engineer at Scala Center.
SS - How much funding is required for a Scala Center engineer?
MO - About what we can get through Patreon.
SS - Is contributing to Open Source different during a pandemic?
MO - Absolutely. Previously, we relied mostly on pizza to get anything done.
SS - Some of the videos for the exercises are literally exercise videos. How did that come about?
MO - The pizza and beer was beginning to weigh on me. So we start each session with some warm-ups, jumping jacks, that sort of thing, stretching, and yoga before we do any coding at all.
SS - As a compiler writer –
MO - I’m the compiler author – [here MO showed a github page on his phone]
/** This class ... * * @author Martin Odersky */
SS - – well, as someone who does this sort of work, you must have a special interest in naming.
MO - Yes, assigning names to things is the first step toward assigning meaning. Today, during my morning walk after breakfast, which I still allow myself, a bit of fruit or pastry and a coffee, followed by a stroll to a small park on the corner, I noticed an elder crossing from his Tesla car on one side of the street to his Acura on the other, transferring a bouquet of flowers from one to the other, I couldn’t tell from the colors if they were funerary, because of course the decorations, speeches, foods at a funeral are all as celebratory as a birthday party, and I thought how those nameplates are reminiscent of Scala, and suddenly I could think of no other automobile than Tesla or Acura, and five letters ending in ‘a’ seemed sufficient to denote anything. The opera, Tosca, popped into my head, the heroine who one may say stuck it to the man, who escapes over the edge of the Castel Sant’Angelo, much like Thelma and Louise, or should I say Telma e Luisa? I feel that Scala is like Tosca now.
SS - You think Scala is leaping to its death?
MO - No, no, it is leaping into the unknown. It has thrown off the shackles of personal and political oppression that were holding it back, including Cavaradossi, the exciting, dashing figure you think Tosca will settle down with forever: those are implicits. How boring! After just a week of quarantine, all their imperfections grow unbearable! The way he never cleans up after himself and says the same things in bed night after night. The word implicit also lost its charm for us. Implicit this, implicit that, missing implicits, implicits never responsive to our needs. We were already close to jumping out the window, not because of plague but because every new Jira ticket was a duplicate of another marked: will never be fixed.
SS - I kind of followed the discussions about keywords like given, using, extension. How do you know when you’ve done something simple enough but also rich enough to address actual needs people have?
MO - There are only four rules governing names, for example, and a clever young fellow realized we weren’t obeying the fourth rule. Then we noticed recently that we hadn’t even defined the fourth rule correctly, or that is how that young man sees it, I, of course, take a more conservative view.
SS - What is the gist of that, in a nutshell?
MO - Simply that if I
import X.toString, then
toString should mean
SS - That seems straightforward.
MO - Yes, it does, in hindsight, with the benefit of experience. But looking forward, the road is always twisting, doubling back and disappearing into thickets. We have a fantasy that the world is closed, the way people who live on islands think they can close their little world off from the virus sweeping the mainland. It happened in America, locals barricading islands in the Atlantic, and also in France, on islands which are also in the same Atlantic. But our world, like our software, is more radically open than we can know.
SS - There was a long argument about whether classes should be open or closed, sealed, or final. What was the conclusion?
MO - I would need to consult the docs. But first I would need to wash my hands and re-sanitize the keyboard, which I prefer not to do, since my sterile field is already set up to receive the food you kindly delivered. Also, it is a question you can look up yourself, as an exercise.
SS - I noticed the Scaladoc header you showed me has no documentation except for your name. Just the three dots of an ellipsis. Is that how you came up with the name, Dotty?
MO - That is a likely explanation. I always start coding without any idea where it will take me, so I always begin with an ellipsis, to be filled in later by a PhD student. Sometimes it is never filled in: some compiler phases, you attempt to stake down one aspect and then another part escapes, virtually three sheets to the wind.
SS - That procedure can’t end well.
MO - In fact it does not end. We notice a hole, and we start a new project, called Dotty, from which we fill in the hole, but we dig the material from under our feet, without noticing that is where we stand.
SS - How do you cope with the prospect of doing that forever?
MO - I don’t look down.
SS - Speaking of which, I noticed there is no dog at your feet. Don’t you think a dog in an office is cute?
MO - Herzog was right to assign it a different word.
SS - I don’t see any board games to pass the time. What do you do for diversion, das Kreuzworträtsel perhaps?
MO - There’s a joke about the physicist, Phil Anderson, who recently passed. It was an obituary I especially relished because there was no mention of the coronavirus; in any event, he lived to an enviable age. He claimed to play a bit of Go, the board game, then admitted modestly that there were four people in Japan who could beat him. “But they meditate.” I write a bit of Scala.
SS - You don’t practice meditation?
MO - I am not a meditator, I am a mediator. Scala is a great act of mediation between programming styles, object-oriented and functional. You know programming styles are a lot like the coronavirus.
SS - Um?
MO - They both spread through the air on droplets of spit, and when a programming idea is presented enthusiastically, the spittle flies and the idea spreads.
SS - Do you keep in contact with the Scala team? Is there a team, or is that an urban legend?
MO - Naturally, there is daily contact on github, because there is always work to do. Our SIP meetings have been conducted remotely for some time, since it had become too dispiriting to meet face-to-face.
SS - Are there any Scalistas you regret losing to Haskell?
MO - I would say those folks who started Unison. All of their ideas of course are straight out of Dotty’s play book. The Unison binary is just Tasty by a less delicious name. With its effects system, Scala 3 will also allow caching computed values. No more waiting for Jenkins to fail your PR.
SS - Do you keep in touch?
MO - I have some hope for Scallison, which may be incubated by Typelevel. Allison Z was my first great love at Gymnasium, or my second great love, after Pascal, which I learned on an Apple II. If I had named my project Allison instead of Scala, as an homage, then instead of ScalaZ, we would have AllisonZ.
SS - For a second, I thought you meant Pascal the chameleon from Tangled. I loved that character.
MO - I also receive strange emails from that fellow who seems to think everything is an occasion for humor, for puns of some kind.
SS - Shakespeare wrote King Lear during quarantine, but John Keats, confined to a boat off Naples, invented puns.
MO - He pointed out that covid is nearly divorce spelled backward, and the corvids, the crows, are the birds of death.
SS - That’s not very funny.
MO - No. Obviously, some people find that sort of thing upsetting, but I understand how a joke can get out of hand. For example, they say I prefer string concatenation to interpolation. But when I proposed writing, for example,
"Hello, "+ name, with a space on only one side of the plus operator, why, that was just a prank I pulled on Paul Phillips, who, unbeknownst to me, took it seriously and changed all the string constructions in the code base to look like that, I think he had an awk script that he worked on for a week. And then it was all explained, after the fact, by the layout of the Swiss keyboard. On the theory that my coding style is determined by my lazy fingers!
SS - Dealing with punsters in the community must be very distracting for you.
MO - It would have been better for that fellow to pun about the dual of covid, but I hesitate to deter him, even though he doesn’t contribute much to the project and has really become a nuisance, because there are newcomers who actually arrive with interesting ideas from whatever field they’re working in. We want them to speak freely and not be afraid of saying something ridiculous. So we allow this one ridiculous figure, who is more or less harmless, and others can think that nothing they say will sound as stupid as that guy. Also, expressing himself in these writings, or ravings, seems to grant him solace.
SS - I guess things are a little weird these days.
MO - Obviously, these times we now live in have suddenly revealed themselves, the curtain or veil has been torn away. Just a few weeks ago, it was a world where, if you inhabited a certain corner of it, death could rain from the sky, the government could institute martial law and control everyone’s movements, there might not be bread or toilet paper on the grocery shelves, your savings from one week to the next could be reduced to pennies, in short, a world in which first luxuries disappear, chocolate and coffee, then conveniences, the trains stop running and shops close, then livelihoods evaporate, and finally life itself vanishes. Not in the usual way, where you wake up one morning and realize that a lifetime has slipped though your fingers, which you contemplate with a greater or lesser sense of satisfaction. Instead, you find yourself at the end of the day, evening has fallen, you are tired, deciding whether to fix supper or stretch the pantry a bit further, when it strikes you that this day was no longer life as you had recognized it, that this decision you now faced, whether to prepare some food, was no exercise of volition, no choice for a future, because time itself had withdrawn.
As I say, a month ago or two, this was a local phenomenon, local to war zones, certain countries weighed down by corrupt autocracies or a wild scheme to leave the European Union, or marginal cities or regions at the underbelly of the great powers. Now we understand this to be a global occurrence. Time neither stands still, as when we look forward to a holiday or the hour of liberation, five o’clock, nor does it rush ahead, as when we forget ourselves. It has vanished. Time got fed up with us and left. I don’t know how it is for you, as a young person, but I cannot look back with any nostalgia, and I also cannot look forward to when all this is over, as people have been saying. For what? To restore that Golden Age we call February when the virus was still someone else’s problem, when most problems were someone else’s problem?
SS - There’s always Dotty 1.0!
MO - It’s so refreshing to chat with an enthusiastic student. It’s what I miss most during lockdown. Young people seem to be interested in everything, open to everything, they don’t feel settled in one profession and one way of thinking, they don’t know what they’ll be doing in 3, 5, or 10 years, indeed, they don’t know if they’ll even have a regular job or if the world as we know it now will exist at all. It’s a perspective on life that is quite invigorating.
SS - Kind of sink or swim.
MO - Exactly, everything is at risk but also everything is possible.
SS - You have said that Scala was not about safety but about achieving impossible things.
MO - Yes, not merely type-safe, but type-enabled…
SS - Like Scala is not an N95 respirator, it’s a ventilator that keeps you alive after you attend a concert with all your friends…
MO - More like hand sanitizer, it helps if you use it, it helps more if you use lots of it and often, but in the end, if you live with dirty code, then eventually you must make difficult choices, who are your friends and who do you really want to spend the next 8-10 weeks with.
SS - It’s April 1, and much of the world is in the middle of a raging pandemic. Do you suppose anyone will read this interview?
MO - Let’s hope not.
SS - Thank-you for your time, Dr Odersky.
MO - Thanks for bringing my lunch.