How would you justify the aditional layer (JVM) in application server?
Do server-side code really need platform-independence at the cost of
performance degradation?
This reminds me of the thing about the first people to write
assemblers[1] meeting great resistance from management because it would
just be 'a waste of time'. Likewise for writing the first generation
language compilers. Yes, these things took up time to do, but in the end
the benefits made it worth it[2].
In the same way, running web applications in a JVM provides benefits.
And the performance degradation might not be as big as you think. Gone
are the days of running only cgi bins, which required a new process to
be launched for each request. Now you can have a web server, with a JVM
already loaded and read, and even a servlet pre-loaded and ready to do
business.
(Yeah, I do know about mod_perl etc. for apache, I'm not saying things
outside Java are still quite as clunky as old style cgi bins.)
[1] i.e. for turning assembly instructions like 'LDA#65' into machine
code instructions
[2] Unless you're Steve Gibson, who seems very pleased with himself (see
his website) that he writes windows apps in assembly. (No, not kidding.)