While Java gets the blame, the concept was already present in CLU, Modula-3 and C++ before Java was even an idea.
I also find a certain irony that forced checked results are exactly the same idea from CS type theory point of view, even if the implementation path is a different one.