Outro aspecto:
Java é uma linguagem estática com recursos bastante rígidos. Isso significa que muitas coisas que seriam bastante abertas ou dinâmicas em outros idiomas (c / f Ruby, Lisp etc.) são estritamente determinadas.
Esta é uma decisão geral de design. O "porquê" é difícil de responder (bem, porque os designers da linguagem pensaram que seria bom!). O "para quê" é bastante claro: permite que o compilador detecte muitos erros, o que geralmente é um recurso muito bom para qualquer idioma. Em segundo lugar, torna relativamente fácil raciocinar sobre o idioma. Por exemplo, é relativamente fácil criar provas formais de correção na (subconjuntos) da linguagem Java; como comparação, isso seria praticamente impossível em uma linguagem dinâmica como Ruby et al.
Esse pensamento permeia a linguagem, por exemplo, a declaração forçada de possíveis exceções que um método pode lançar, o tipo separado de interface
vs. class
para evitar herança múltipla ambígua e assim por diante. Para o que é (uma linguagem imperativa estática do mundo real OOP, com forte foco no tratamento de erros em tempo de compilação), essas coisas são realmente bastante elegantes e poderosas. Eles se aproximam das linguagens teóricas (científicas) que são propositalmente criadas apenas para explorar alguns desses problemas do que qualquer outra linguagem do mundo real antes (naquele momento, lembre-se).
Assim. Ter um void
tipo estrito é uma mensagem clara: esse método não retorna nada, ponto final. É o que é. Substituí-lo pela aplicação para sempre retornar algo levaria a um comportamento muito mais dinâmico (como em Ruby, onde cada def tem sempre um valor de retorno explícito ou implícito), o que seria ruim para a provabilidade e o raciocínio; ou inchaço maciço usando algum outro mecanismo aqui.
(E, no entanto, Ruby (por exemplo) lida com isso de maneira diferente, e sua solução ainda é exatamente tão aceitável quanto a de Java, porque possui uma filosofia completamente diferente. Por exemplo, lança a provabilidade e a razoabilidade completamente fora da janela enquanto coloca um grande foco em expressividade extremamente alta do idioma.)