Recently, I've stumbled upon an old interview with Dennis Ritchie, Bjarne Stroustrup and James Gosling, published back in 2000. Each of them talked about the language they were most involved with, namely C (Ritchie), C++ (Stroustrup) and Java (Gosling).
It's a very interesting article in itself, but what caught my attention in particular was the following quote from Gosling (emphasis mine):
Q: If you could go back in time, knowing what you know now, what might you do differently in designing Java? Why?
A: There are a bunch of things that I'd do differently. There are a number of things that I'm not entirely happy with and it's not clear what the right answer is. I'm not really happy with the schism between interfaces and classes; in many ways it feels like the right solution wouldn't get in the way. [...]
He hasn't elaborated on this "schism", but it's quite obvious (at least to me) that his answer related to the design of the Java language itself in some way.
So what did Gosling mean with the quote above, and has that situation changed during the last 18 years since the interview was published?