Aspek lain:
Java adalah bahasa statis dengan fitur yang cukup ketat. Ini berarti bahwa banyak hal yang cukup terbuka atau dinamis dalam bahasa lain (c / f Ruby, Lisp dll.) Sangat ditentukan.
Ini adalah keputusan desain umum. "Mengapa" sulit untuk dijawab (baik, karena perancang bahasa berpikir itu akan baik!). "Untuk apa" cukup jelas: memungkinkan kompiler mendeteksi banyak kesalahan, yang umumnya merupakan fitur yang cukup baik untuk bahasa apa pun. Kedua, itu membuatnya relatif mudah untuk berpikir tentang bahasa. Misalnya, relatif mudah untuk membuat pembenaran formal dalam (himpunan bagian) bahasa Jawa; sebagai perbandingan, itu akan menjadi hampir mustahil dalam bahasa yang dinamis seperti Ruby et al.
Pemikiran ini meresapi bahasa, misalnya, deklarasi paksa tentang kemungkinan pengecualian yang dapat dilemparkan oleh suatu metode, tipe interface
vs yang terpisah class
untuk menghindari pewarisan berganda yang ambigu, dan sebagainya. Untuk apa itu (OOP imperatif statis bahasa dunia nyata dengan fokus yang kuat pada penanganan kesalahan waktu kompilasi) hal-hal itu sebenarnya cukup elegan dan kuat. Mereka datang lebih dekat ke bahasa teoretis (sains) yang sengaja dibuat hanya untuk mengeksplorasi beberapa masalah ini daripada bahasa dunia nyata lainnya sebelumnya (pada waktu itu, ingatlah).
Begitu. Memiliki void
tipe yang ketat adalah pesan yang jelas: metode ini tidak mengembalikan apa pun, titik. Itu adalah apa adanya. Menggantinya dengan penegakan untuk selalu mengembalikan sesuatu akan mengarah pada perilaku yang jauh lebih dinamis (seperti di Ruby di mana setiap def memiliki nilai pengembalian yang eksplisit atau implisit, selalu), yang akan berdampak buruk bagi provabilitas dan alasan; atau untuk mengasapi dengan menggunakan mekanisme lain di sini.
(Dan NB, Ruby (misalnya) menangani hal ini secara berbeda, dan solusinya masih dapat diterima seperti halnya Java, karena ia memiliki filosofi yang sama sekali berbeda. Misalnya ia melempar provabilitas dan kewajaran sepenuhnya dari jendela sambil menempatkan fokus besar pada ekspresi bahasa yang sangat tinggi.)