So there seems to be quite an emphasis at the moment on simplifying Scala, getting rid of unnecessary complication. What about reducing the number of access categories to 2 and reducing the number of access modifiers to 1? So there would just be public and private[this]. But private[this] would be renamed private. So “private” would be the only access modifier, but it would have the same meaning as private[this] under the present schema.
I very occasionally use protected, but at least for my code, I don’t really feel the feature carries its weight and I would be willing to sacrifice it in the cause of simplicity. A less radical proposal would be to keep 3 categories:
Unmodified default => public
protected => protected[this]
private => private[this]