I understand the reasoning provided here: "By default, all classes in Kotlin are final, which corresponds to http://www.oracle.com/technetwork/java/effectivejava-136174.html">Effective Java, Item 17: Design and document for inheritance or else prohibit it."
In practice, I find that this introduces an annoying level of friction with frameworks like Spring. I wind up with a patchwork of manually opened classes and methods and forgetting to open a particular class is a regular source of error discovered at startup. The language is fantastic in general, and I just don’t want little things like this to aggravate people away from it before giving it a good college try.
Is this decision still open for discussion? At the very least – what are your thoughts about a compiler option to invert this behavior?