Data classes are nice, but they are not a general substitution for Properties, which address the greater getter/setter boilerplate concern. That said, you can use project
Lombok for that pretty straightforwardly. You can also use project
Manifold[1] to add useful features many of which Scala lacks:
* Type-safe metaprogramming (like F# type providers)
* Structural Typing
* Extension methods
* String interpolation
* Templates
* Type-safe reflection
* [Un]Checked exceptions
[1]: https://github.com/manifold-systems/manifold