All variables should be private final by default. Making the defaults different from good design practices is a gateway to troubles. Coders (and especially students) have a job that is hard enough. Make the defaults support them doing their job right. final should be the default, and mutable should be a keyword for variables that need to change over time. Don’t even get me started on the fact that putting no declaration in front of a method makes it package protected, a status which it is impossible to give a function in any other way.
Java’s got 99 problems, but segfault ain’t one. final is, though.









