At least in the early days of Java, there was a strong keep-it-simple
principle operating. I suspect that static interface methods would have
added more complication than they saved.
Now, that principle seems to have disappeared. I'm far from convinced
that generics, as actually implemented with type erasure, added enough
to the language to justify their cost in increased complication.
How did that shift happen? It seems originally Java was Gosling's
creation, but now there is Java Community Process. Is that how the
shift happened?
My first take is I prefer Gosling's opinion to a broader sampling.
The positive of the shift is that each of the changes was requested and
will be used. More Java code will be written faster by those already
writing Java code.
The negative of the shift is that it makes it more difficult to
communicate with other developers. Makes it more difficult to use other
people's code.
I don't know whether it makes it easier to market Java (to new
developers and businesses) because on one hand Java has more features
now, but reliability and consistancy is diminished in pitch.
Perhaps more Java will be written for the next thirty to fifty years
then would be otherwise, but then about eighty years down the line Java
will be retired. If the changes had not happened perhaps it would be
more likely that Java would be used as a layer for some other
technolgoies way in the future.
Fortran, and FORTRAN1 was still being designed in 1956. I'm absolutely
immense increases in complexity over a series of changes.
about what will happen to programming languages in fifty years time.