Ho sentito molte persone parlare male di Java, specialmente quelle provenienti da C / C ++. C'è una ragione storica per cui? Perché le macchine erano troppo lente per eseguire la JVM senza ritardi?
Per ogni lingua troverai persone che ne parlano male. È proprio così.
Java non fa eccezione.
I programmatori del clan dei "veri programmatori in codice binario" probabilmente odieranno Java fino alla fine dei tempi. Ma per il resto di noi, Java aiuta a portare a termine il lavoro velocemente e con una curva di apprendimento (leggermente più breve).
Le ore C / C ++ davano ai bravi programmatori il divertimento di poter giocare con la memoria nel modo desiderato. Java ha reso automatica la raccolta dei rifiuti, quindi è stato perso il divertimento. Anche quelle lingue compilate per codice macchina, e quindi è statisticamente più veloce a causa dell'assenza del processo JVM. Ma i tempi sono cambiati e con l'hardware di oggi questo è quasi impercettibile (a meno che tu non stia cercando di codificare video o qualcosa del genere). Inoltre, devo dire, c'è una certa soddisfazione aggiuntiva quando si tira fuori qualcosa (non banale) in C / C ++ dove-in si doveva fare tutta la gestione della memoria ecc. Nel modo più duro.
In generale, Java ha un brutto colpo perché è essenzialmente relativamente debole in entrambi i suoi punti di forza:
Non vi è alcun difetto fatale con Java tranne che non è molto meglio in qualsiasi altra lingua rispetto ad altri linguaggi.
Tuttavia, ha una collezione impressionante di librerie disponibili su tutte le piattaforme, ed è ingenuo considerare la lingua solo senza le librerie. Come strumento per "portare a termine il lavoro" è MOLTO scopo generale "pronto all'uso" per coprire molte basi più che sufficienti per l'utilizzo nel mondo reale. È un coltellino svizzero avanzato, se vuoi (uno con un sacco di funzioni di sicurezza per evitare di ferirti).
Gli sviluppatori C ++ in particolare potrebbero non piacere a Java per altri motivi:
Dal punto di vista dell'utente finale, molti programmi Java precedenti (in realtà la JVM) utilizzavano quantità enormi di memoria per i programmi più semplici. Spesso ben oltre i 100 MB per un semplice client FTP o simili. Soprattutto nei momenti in cui la maggior parte dei sistemi aveva da 256 a 512 MB di RAM, era semplicemente inaccettabile. E poiché i programmi Java erano abbastanza comuni nell'area desktop, molte persone arrivavano alla stessa conclusione sull'uso della memoria.
Inoltre, Java Runtime Environment ha una lunga storia di gravi problemi di sicurezza (anche adesso), quindi la reputazione è diminuita drasticamente con l'uso crescente di Java in pubblico.
Avvisi di sicurezza Java:
link (2009 - 2012) link (2006 - 2009) link (pre-2006)
Security Alerts
Oracle will issue Security Alerts for vulnerability fixes deemed too critical to wait for distribution in the next Critical Patch Update.
Per me, la dimensione di queste liste è semplicemente orrenda.