SIP Meeting January 27th 2020

HAPPY NEW YEAR, I hope it is off on a great start, dear Scala Community - it is good to be back!

Next SIP Meeting is on the 27th Jan 2020, 5 PM CET.

Join us live and comment, ask, get your opinion heard at Scala Center YouTube Channel .

Agenda:
TBD closer to the date, mostly speaking about the newest topics opened in the Contributors channel.

Check out December 2019 minutes here.

Cheers,
Darja

9 Likes

I have to say that the December 2019 minutes are perfect! Thanks for providing that degree of detail.

Kudos to @dwijnand - https://github.com/scala/docs.scala-lang/pull/1614

4 Likes

Definitely Kodus to @dwijnand This was a very detailed yet easy to read summary. It really helps with transparency.

I have one question that relates to the contents of one of the topics discussed there, that doesn’t seem to deserve its own thread for the moment:

SĂ©bastien shares that there are only a few minutes left in the meeting but the gist is that DelayedInit is gone (so far) and the obvious question is: what do you do for a simple main method?

I think there is another obvious question that hasn’t been adressed regarding DelayedInit: what about the use-cases that need this feature?

2 Likes

So far the answer is the same as for the drop of existential types: there’s no replacement, so they are not supported as is.

Why? What is the reasoning behind dropping this feature? I have failed to find any conclusive explanation to this. I’ve looked in the following locations:

  1. https://dotty.epfl.ch/docs/reference/dropped-features/delayed-init.html
  2. https://github.com/scala/scala/pull/3563
  3. https://github.com/scala/scala/releases/tag/v2.11.0-RC1
  4. https://github.com/scala/bug/issues/4330
  5. https://github.com/scala/bug/issues/5479

All that I could gather is that the opposition to this feature is that it is “surprising” (can be improved with better design and documentation) and serves only niche use-cases (debatable). Also, @adriaanm mentions that:

The primary goal of the deprecation is to warn people. We won’t actually remove it until we’ve provided an alternative that covers usages like these.

But that alternative (onCreate) was dropped without any explanation.

2 Likes