¿Cómo podría un diseño idiomático de Serializable / Cloneable / ... como en Scala?
Me pregunto qué tan diferentes serían estas funcionalidades (y cuán diferente sería la implementación), si Scala no (tuviera que) seguir las @ de Jajava.io.Serializable
/java.lang.Cloneable
(principalmente para mantenerse compatible con Java y las herramientas / ecosistemas que lo rodean).
Porque Scala es más simple en diseño de lenguaje, pero permite posibilidades de implementación y abstracción más potentes, es posible que Scala tome un camino diferente en comparación con Java, si no tuviera que asumir la carga de compatibilidad de Java.
Me imagino que una implementación idiomática usaría clases de tipo o rasgos con (posiblemente) campos / métodos privados (¿no es posible en las interfaces Java?), ¿Tal vez con alguna implementación estándar?
O las interfaces de marcadores siguen siendo la opción correcta en Scala?