The Great Module Adventure Continues

I think we can distinguish four cases:

  • Older syntax is still the right syntax.
  • Older syntax still works as it ever did, but is deprecated (you get a warning).
  • Older syntax errors out, but you get some good advice on how to fix it.
  • Older syntax has been repurposed, and hence now does something different.

All other things being equal (which of course they are not), these are in order of preference. The second one is what "co-existence" gives us -- it still seems like a useful distinction.

I definitely think we should not "jump" to permitting use foo::bar as a 'relative path', even if we lay the steps that permit us to do so later. But laying those steps would mean that -- for such syntax -- we would expect an error, but hopefully with clear directions for how to fix. So we'd be at the 3rd rung.

(There is even a slower path, of course, where we don't make anything an error, but we reserve right to do so in the next epoch, if we so choose. This may be wise, and moves everything up to the second rung.)

3 Likes