たびたびすみません。

ソースが見えるというのは、たとえば、
共通のphpとしてinclude("./common.inc");とした場合に、
エラー表示が、common.incの何行目にエラーが出てしまうと、
悪意のユーザーがcommon.incを直接指定すると見えてしまうからです。

もちろん、Javaでもエラー画面でstacktraceで表示されますが、
それをたどってどこのクラスでNullPointerExceptionが出ているとわかっていても、
直接ソースをみる方法はありません。それはコンパイルされているからです。

あと、Javaはwebサーバーで実行されるという発言されている方がいましたが、
Javaのコードは通常アプリケーションサーバーです。

ソースが見える見えないという点で言えば、やはりJavaであり、
クリティカルミッションに使われる理由なのではないかと思った次第です。

色々とご意見を頂きましてありがとうございます。