in realtà java è una specie di ibrido, non è interamente interpretato e non è interamente compilato.
Partendo dai .java (che sono i sorgenti che tu scrivi) questi vengono compilati e fai conto che viene fuori un prodotto "intermedio", il bytecode. La jvm interpreta il bytecode in fase di runtime.
Passando al web, il web server vedilo come un contenitore di servizi, in fase di avvio riferisce (a volte carica proprio) una serie di riferimenti al jar, quindi una modifica richiede lo stop globale (ecco perché in fase di web deploy le modifiche si fanno in modo da avere un senso in quello che si scrive e si logga con una certa frequenza). La scomodità c'è, lo ammetto, ma ci sono strumenti (non gratuiti) come JRebel che permettono il deploy a caldo della tua applicazione (anche se ha dei limiti pazzeschi).
Lo scripting è un'altra cosa e non lo confondere con la stesura di un programma in un linguaggio di alto livello


Rispondi quotando