Minutes of the 12th meeting of the Scala Center, Q1 2019

Minutes are archived on the Scala Center website.

Summary

The following agenda was distributed to attendees: agenda.

Rob Norris is the new community representative, replacing Lars Hupel. (Bill Venners continues as the other community representative.)

Scala Center activities for the past quarter focused on Coursier, Bloop, MOOCs, documentation, Metals, mdoc, Scala.js, SIP meetings for Scala 3, and Scala Days 2019.

Full details on these activities are in Sébastien’s report.

The main additional topic discussed at the meeting was the question of allowing board members to contribute engineering effort directly instead of funds. Sentiment on the board is generally positive; the change in still in process with EPFL legal and with a prospective new member.

No new proposals were made this quarter.

Date, Time and Location

The meeting took place virtually on Wednesday, March 6, 2019 at 4:30pm (UTC).

Minutes were taken by Seth Tisue (secretary).

Attendees

Board members present:

  • James Belsey, Morgan Stanley
  • Stu Hood, Twitter
  • Rob Norris, community/Typelevel
  • Olga Makhasoeva, 47 Degrees
  • Adriaan Moors, Lightbend
  • Jonathan Perry, Goldman Sachs
  • Frederick Reiss, IBM
  • Julien Tournay, Spotify
  • Bill Venners, community/Artima

Apologies:

  • Thomas Gawlitza, SAP

Officers:

  • Sébastien Doeraene (director), EPFL
  • Jon Pretty (chairperson), Propensive
  • Martin Odersky (technical advisor), EPFL
  • Seth Tisue (secretary), Lightbend

Proceedings

As chairperson, Jon Pretty conducted the meeting.

Community representative

The meeting began with a vote to approve the Rob Norris as the new community representative.

Seb explained that the nomination arose as the outcome of discussions among “the whole Scala Center”, as well as discussion at the December meeting. Then, Rob was voted in by the board. (Jon stopped the vote once the necessary number of votes were in.)

After the vote, Rob joined the meeting and introduced himself. “I’ve been using Scala for about ten years, and I’ve been involved in the community and speaking at conferences for the last five or six years. […] I spend a lot of time talking to [Scala] beginners, as well as advanced users.” See separate blog post for further information on Rob’s background and professional affiliations.

Activities

As the Center’s Executive Director, Sébastien Doeraene summarized Scala Center activities since the last meeting.

Most of Seb’s remarks were based on his detailed report on the Center’s recent activities. The following notes are a supplement to Sébastien’s report.

He began by saying that the report has be redesigned to be more integrated, an group effort. He invites feedback on the new format.

The Coursier work (on SCP-020) is progressing well, but isn’t complete yet.

The main Bloop highlight is faster incremental and no-op compiles, especially for complex builds.

The trial of EdX as a MOOC platform began in January with the new Programming Reactive Systems course. Results are still preliminary, but “it looks like it’s gaining as much traction as the other courses”. Firmer conclusions will be possible in a few more months.

Metals is “not shipped yet, but almost” (but has users already, regardless). Code completion support will be in soon, at which point it will be “a viable alternative” IDE experience, in Seb’s view.

For Scala Days 2019, platinum sponsorships are all signed and a number of gold sponsorships are lined up, with more coming. The conference schedule has now been announced. 15% of tickets sold in less than two weeks, which is very promising.

Financial report

(Note that the USD/CHF exchange rate is currently very nearly 1-to-1.)

“We got the rough results from the fourth quarter of our MOOCs for 2018… We took in CHF 96K total,” but it isn’t known yet exactly how much of that money will actually come to the Scala Center. This is “slightly lower than our usual income for the MOOCs, we’re not really sure why, but we hope that the new course will of course change the direction.”

The board continues with eight full members, for CHF 400K/year total income. Payroll outlay is currently only around CHF 300K, so the Center is hiring and is actively interviewing candidates. “If you know people who would like to work at the Scala Center, send them my way,” said Seb.

Community feedback

Bill said, “I’ve always had a hard time getting people to tell me what their pain points are. I’m supposed to represent the community, but people don’t complain [to me] very much. So I came up with an idea that is actually working, which is that I give free lunch-and-learns, where I have slides to talk about what’s in Dotty and so on, and ask about pain points.” These are usually “the usual suspects”. “Upgrade is always mentioned as a pain point. Upgrading to new versions of Scala can be hard. Upgrading is something very practical that everyone faces. Not just from Scala 2 to Scala 3, but in general.”

Seb broadened the topic a bit to include library upgrades as well as Scala upgrades. He mentioned that the Scala website does offer advice for library authors on this. Rob says that library compatibility is a frequent subject of discussion within Typelevel; Cats, for example, has a guide on this. Could standards around this be more standardized and publicized? The advent of TASTy may change the picture, though broadly, Seb said, “just replace binary compatibility with TASTy compatibility”.

On another subject, Rob emphasized “how excited everyone is about Metals and how pleased everybody is about how it’s coming along. I ran into a lot of people who are using it and very excited about it” and the technologies it’s based on, such as Scalameta and Bloop. Seb promised to pass that on to the team, especially Olaf and Jorge.

Proposals

No proposals were received this quarter.

Other business

Contributor members

As already mentioned at the previous meeting, there is an open possibility of allowing prospective board members to participate by contributing engineering effort directly, instead of primarily contributing funds. Seb has been in discussions with one prospective board member interested in this arrangement. But Seb emphasized that this won’t go forward unless the board approves.

Seb also observed that “affiliate members” (at the lower CHF 15K funding level, but without voting rights) have so far been rare. So the idea is to introduce a “contributor” membership, where the member would provide a full-time engineer or equivalent. This would be known as a “contributor” membership. Initially this would be without voting rights, but if the right legal arrangement can be drafted and cleared, this could eventually lead to full membership with voting rights.

Jon explains: “Initially, the anticipation was that we would be getting sponsors who had sufficient financial resources to spare 50K CHF/year to be on the board. But for some companies, it’s easier to provide a full time engineer, say a company in Poland for example, versus a bank in London or a Silicon Valley company. So I would frame this as accommodating forms of payment that work better for differently sized and differently located companies.”

James asked for clarification on the timetable of eventually granting voting rights. Seb said “right now no, the regulations don’t allow it”, but the hope is to change that, it’s “obvious” for “fairness”. But making the change requires clearing it first with EPFL’s lawyers, then presumably also with board members’ own legal departments.

James also asked about control: “Do they get to choose what they work on, or are going to dictate to them what they work on?” Seb said it would be a “common agreement”.

Of course, as Jon observes, the agreement for existing members doesn’t involve either the board dictating, or the Center dictating. The board makes recommendations; the Center then chooses what to work on, but can’t disregard recommendations too much, if they want to keep the board satisfied.

Seb said that they’re still drafting wording around this question. He expects there will be “a provision that we evaluate their work, and we if we aren’t satisfied with it for two months in a row, or something like like that, then their contributor membership is in jeopardy.”

Seb said the Center has so far identified two projects that would be good choices for this kind of effort sharing: the Dotty IDE, and TASTy support in Scala 2 (SCP-018).

Stu suggested delaying granting voting rights until after “a minimum level of [engineer] contribution” has already been reached. Fred suggested building in some structure around how contributor members get invited, before the trial period begins.

Jon asked Seb if the draft agreement could be shared with the board. Seb said yes, but not quite yet, after it’s run past EPFL legal.

Stu also raised this question: how many contributor members does the Center want? Two, three? Twenty, thirty? Ideal terms might depend on this. James said a large number seems like a “management headache”. Seb agreed, and said he had been thinking perhaps five or so as a reasonable upper limit, or perhaps even lower, such as three. James observed, “There’s no harm in capping it initially,” then revisiting.

Rob asked what “equivalent” means in the phrase “full-time engineer or equivalent”. Must it be a single person full time, or could it be “40 hours gathered from consultants who don’t have anything else to do that week”? Because “it’s much more expensive” to actually hire someone, but also he didn’t think that a patchwork of consultants would be nearly as useful as a dedicated person. Seb: “We want to have some flexibility” for engineers to be reassigned, but said he’d think about how much flexibility would be too much, as he completes drafting the terms.

Seth asked about contributing less than a full-time engineer, is that possible? Jon asked a different form of this question: could it still qualify as a full-time equivalent, if the enginner in question was considered especially valuable? Seb was skeptical this could be “formalized”.

Scala at Twitter

Stu said that Eugene Burmako’s departure from Twitter has some people wondering about the status of Scala at Twitter. Internal discussion about this included questions about Scala 3, JDK 11, Scalameta, and rsc (the “Reasonable Scala Compiler” project Eugene led).

Some excerpts of Stu’s remarks on this:

  • “We are continuing approximately as already planned in the absence of Eugene.”
  • “Rsc is unlikely to remain a full compiler. We have another use case for the Rsc work, and we’ll be talking more publicly about those plans soon. I hope to bring a proposal to the next meeting to attempt to get some Scala Center involvement there.”
  • “We don’t think we are drastically behind on moving to Scala 3, or on any Scala version upgrade. Upgrading can take a long time (several years) in ‘wall clock time’, but for example the person-time total for moving to 2.12 has only been about 6 months of one person’s time . Many other companies are still moving from 2.11 to 2.12.”

To put this in context, Stu confirmed that Twitter has about 10 million lines of Scala code. He also said that the biggest delays in Scala version upgrades have been caused by Spark and other third party dependencies. So, backwards compatibility for Scala continues to be a major concern for Twitter.

Since Spark was mentioned, Martin spoke up to say that “Spark is already running on Dotty, since Dotty is more forgiving than the Scala 2 series about binary compatibility. Hopefully the problem with external dependencies will be a lot less [on Scala 3] than it is currently.”

Conclusion

Jon said that the next meeting will be held in-person at Scala Days in Lausanne, Switzerland in June. Members not able to attend in-person may still attend virtually.

The tentative date and time is June 11, in the afternoon, before Martin’s keynote. Timing this to be workable for US west coast members may not be possible.