Discussione:Java (linguaggio di programmazione)

message: Ho aggiunto 2 righe per l'eredità, più avanti inserirò anche le interfacce e le classi astratte se non lo avrà già fatto qualcun'altro per allora  
Silyus 19:02, 20 gen 2006 (CET)
thread_title:  Aggiunte 

message: Ho modificato la sezione contenente le date di rilascio di Java in quanto non riportava la data completa (era presente solamente l'anno). Ho comunque tenuto come commento alla pagina la vecchia lista in quanto vi erano le informazioni relative alle piattaforme per cui furono rilasciate
--Henryx 22:08, 14 giu 2007 (CEST)
thread_title:  Modifiche 

message: Diversi utenti insistono nell'inserire una frase secondo cui il bytecode Java è eseguito o da una macchina virtuale o da apposite schede acceleratrici (o acceleratori). Vorrei spiegazioni perché:
* il bytecode è eseguito in ogni caso da una macchina virtuale java (per definizione); la JVM può essere implementata in software o hardware, ma resta una JVM. Faccio notare che la JVM tecnicamente è una specifica di un processore. Il fatto di confondere la JVM con uno specifico "interprete" Java (per esempio il comando "java" della SDK) è un errore concettuale;
* sinceramente non conosco l'espressione "schede acceleratrici" ma decisamente non mi suggerisce l'idea che una scheda acceleratrice sia un concetto paragonabile alla JVM (per cui si possa usare la frase di cui sopra, "il bytecode è eseguito da X o da Y"). La mia impressione è che una scheda acceleratrice sia un particolare "pezzo" di alcune "specifiche implementazioni hardware" della JVM. In questo caso, la frase incriminata suonerebbe come: "una automobile viene spinta avanti da un motore o da un iniettore multijet". Nella migliore delle ipotesi (ma non credo) una scheda acceleratrice è una implementazione hardware della JVM (ma la frase di cui sopra resta sbagliata).
Il link fornito da uno degli utenti interessati () conferma la mia impressione: una scheda acceleratrice (come dice il nome peraltro) sarebbe un pezzo di hardware progettato per aumentare le prestazioni di Java. 
Moongateclimber 04:55, 22 ott 2007 (CEST)
replies: text: La prima obiezione può essere vera (quindi la precisazione può essere migliorata), ma questo non toglie il fatto che la disponibilità di schede acceleratrici hardware sia reale e quindi la sostanza della precisazione è di fatto corretta. Quella che viene un po' superficialmente definita da Moongateclimber come "pezzo di hardware progettato per aumentare le prestazioni di Java", deve funzionare in un determinato modo: il modo è che il java bytecode viene intepretato da questo apposito componente hardware, come si può dedurre dallo stesso articolo o da altre pagine reperibili in rete. Se non ci sono ulteriori obiezioni, entro un paio di giorni rimodificherò quindi la frase nel seguente modo: "Il bytecode verrà quindi interpretato da una macchina virtuale implementata come software o come apposito acceleratore hardware". ekerazha 11:48, 22 ott 2007 (CEST)
replies: text: Se il codice sorgente java è interpretato, il derivato bytecode è un codice compilato a tutti gli effetti e non si può quindi dire bytecode verrà quindi interpretato da una macchina virtuale bensì bytecode verrà quindi eseguito da una macchina virtuale. La possibilità di avere hardware specifico che implementi una JVM sarà senz'altro vera, ma non mi risulta particolarmente diffusa ed inoltre è l'esatto contrario della filosofia di Java (l'hardware dev'essere ovviamente specifico per la particolare configurazione utilizzata, mentre Java nasce proprio per essere indipendente da hardware e sistema operativo). Noto che l'articolo citato è del 2001, non proprio recentissimo vista la materia :-) ; mi sembra che i (relativi) problemi di velocità esecutiva che Java aveva sofferta nella sua fase inziale siano stati successivamente superati dalla tecnologia JIT e dall'incremento delle prestazioni della JVM piuttosto che dalla diffusione di hardware specifici. Gac 12:18, 22 ott 2007 (CEST)
replies: text:  Il codice viene eseguito da una macchina virtuale che lo intepreta traducendo just-in-time il java bytecode in "codice nativo". Il fatto che non sia diffusissimo è abbastanza irrilevante, il dato di fatto è che esistono e che vengono utilizzati laddove si necessiti di particolare velocità nell'esecuzione/intepretazione di java bytecode. Anche il fatto che quel particolare articolo sia del 2001 è abbastanza irrilevante: quel tipo di scheda è tutt'ora in produzione e vendita. ekerazha 23:21, 29 ott 2007 (CET)

text: Io penso (ma è bene essere qui a discuterne) che anche "Il bytecode verrà quindi interpretato da una macchina virtuale implementata come software o come apposito acceleratore hardware" sia una frase scorretta; infatti non ritengo che un acceleratore sia una implementazione della JVM. A quanto ho capito, si tratta di un componente hardware che velocizza il funzionamento di una JVM (non so se con riferimento alle sole JVM hw o anche a quelle sw); in ogni caso non mi sembra che un acceleratore sia una implementazione della JVM (così come il sistema per il turbo non è un motore). Se si possono avere riferimenti in merito, sono pronto a cambiare idea. Moongateclimber 13:01, 22 ott 2007 (CEST)
replies: text:  Il funzionamento è quello che ho illustrato. Cercando rapidamente su Google ho trovato questa pagina http://www.freepatentsonline.com/20060200801.html "A hardware Java accelerator is provided to implement portions of the Java virtual machine in hardware in order to accelerate the operation of the system on Java bytecodes. The Java hardware accelerator preferably includes Java bytecode translation into native CPU instructions." Quindi di fatto è una JVM implementata in "hardware". ekerazha 23:21, 29 ott 2007 (CET)
replies: text:  Esattamente quanto intendevo: A hardware Java accelerator is provided to implement portions of the Java virtual machine. L'acceleratore è parte dell'implementazione della JVM, quindi non si può dire che esegue il bytecode. Moongateclimber 05:33, 30 ott 2007 (CET)
replies: text:  Leggi tutto, "The Java hardware accelerator preferably includes Java bytecode translation into native CPU instructions". Il concetto è che non necessariamente la scheda acceleratrice provvede a tradurre tutte le istruzioni, ma potrebbe anche accelerarne solo alcune... o anche tutte: dipende dalla scheda. Di fatto, come è anche riportato, la scheda esegue/interpreta bytecode traducendolo in codice nativo per la CPU, proprio come fa la Sun JVM ad esempio. ekerazha 11:36, 31 ott 2007 (CET)
replies: text: Non capisco proprio la tua obiezione. Se la scheda è parte dell'implementazione della JVM (su questo siamo d'accordo si o no?) non puoi citarla come alternativa alla JVM. E comunque, non è vero che la JVM "traduce" il bytecode in istruzioni native della CPU; come ha giustamente osservato qualcun altro, la JVM esegue le istruzioni (vedi differenza fra compilatore e interprete). La scheda acceleratrice sembra facilitare il compito della JVM nello stesso modo in cui questo viene facilitato dalla compilazione JIT. Non penso che tu vorresti considerare corretta la frase "il bytecode viene eseguito dalla JVM o da un compilatore JIT", che mette a confronto mele con arance; ed esattamente lo stesso "miscuglio" improprio nasce dal mettere sullo stesso piano la JVM con una scheda hardware che la implementa parzialmente (o anche totalmente, tra l'altro). Moongateclimber 13:42, 31 ott 2007 (CET)
replies: text: No non siamo d'accordo :-D Da quanto si legge, la scheda acceleratrice non è "parte" della JVM, ma la *rimpiazza* nell'esecuzione/intepretazione del Java bytecode. Per il secondo discorso ti consiglio la lettura di questo: http://it.wikipedia.org/wiki/Compilatore_just-in-time (la compilazione JIT che ho già citato): "compilatore just-in-time o JIT permette un tipo di compilazione, conosciuta anche come traduzione dinamica, con la quale è possibile aumentare le performance dei sistemi di programmazione che utilizzano il bytecode, traducendo il bytecode nel codice macchina nativo in fase di run-time". Se una scheda acceleratrice hardware rimpiazza la Sun JVM nell'esecuzione/intepretazione delle istruzioni, per l'appunto la rimpiazza e funge da JVM. ekerazha 14:59, 1 nov 2007 (CET)
replies: text: Se non siamo d'accordo su quel punto è inutile continuare. Per definizione, il bytecode Java è eseguito dalla JVM (). Punto e basta. Qualsiasi cosa esegua il bytecode è una JVM. Non esistono alternative. Moongateclimber 16:57, 1 nov 2007 (CET)
replies: text: Nessuno ha detto il contrario, ho solo detto che è precisabile che questo compito può essere svolto sia via software che da schede acceleratrici hardware... e questo mi sembra assodato, quindi in mancanza di altre obiezioni di rilievo provvederò all'inserimento della precisazione nei prossimi giorni. ekerazha 12:52, 3 nov 2007 (CET)
replies: text: Tieni presente che se quel paragrafo deve entrare nel merito di come è implementata la JVM, allora ci sono numerose alternative (e "schede acceleratrici" non può essere indicata come l'unica alternativa al software). Restano poi tutte le obiezioni di rilievo già fatte (es. una scheda acceleratrice non solo non è una JVM (assodato) ma non è neanche una implementazione di una JVM. Quindi io ti consiglierei di proporre qui il testo e discuterne prima di inserirlo, perché al di là delle apparenze ho seri dubbi che ci sia consenso su una specifica frase. Moongateclimber 10:29, 4 nov 2007 (CET)
replies: text: Le uniche alternative sono "via software" o "via hardware" (con le apposite schede acceleratrici), non ci sono altre alternative relativamente a questa distinzione. Tutte le obiezioni sollevate in merito sono state chiarite con link a pagine che parlano dell'argomento, compresa quella che una scheda acceleratrice funga da JVM eseguendo/interpretando Java bytecode e "traducendolo" in codice nativo (JIT compilation) ;-) la frase che ho intenzione di inserire e che è già stata discussa è quella che avevo riportato sopra... la ripropongo: "Il bytecode verrà quindi interpretato da una macchina virtuale implementata come software o come apposito acceleratore hardware". ekerazha 14:09, 4 nov 2007 (CET)

text: Concordando con quanto accennato da Gac, inoltre, devo dire che l'implementazione hardware della JVM non mi sembra né una soluzione predominante né una linea di tendenza particolarmente enfatizzata da Sun. Implementazioni hw della JVM sono sempre state previste in teoria e sperimentate in pratica, ma non largamente diffuse, con la possibile eccezione del mondo embedded/micro (ma anche qui, vedi i cellulari per esempio, la JVM a quanto ne so tende a essere comunque principalmente o esclusivamente sw). Questo non toglie né complementa la mia obiezione di cui sopra, che è legata alla volontà di usare il rigor di termini in una voce enciclopedica, e che quindi resta valida a prescindere da queste considerazioni. Moongateclimber 13:05, 22 ott 2007 (CEST)
replies: text:  Risposto ;-) ekerazha 23:21, 29 ott 2007 (CET)
thread_title: Schede acceleratrici, acceleratori

message: Riporto qui la discussione perché l'indentazione cominciava a essere un po' ingestibile. E' stato convenuto che la JVM può essere implementata via software o via hardware. Ekerazha vorrebbe introdurre questo concetto nella voce dicendo 
Io ancora mi oppongo, perché sostengo che dire che la JVM può essere implementata via hardware non è equivalente a dire che può essere implementata con schede acceleratrici. Primo, per il solito motivo: non vedo una dimostrazione che una scheda acceleratrice sia una implementazione della JVM (e non solo parte di una implementazione). Secondo, non vedo da nessuna parte una dimostrazione del fatto che una implementazione hardware debba per forza essere basata su schede acceleratrici. La Sun ha da sempre ipotizzato la realizzazione di processori Java (JVM "fisiche") e questo concetto mi sembra molto più generale di quello di scheda acceleratrice. Facendo una ricerca su Google trovo, per esempio, questo link () in cui si citano (per il settore specifico dell'embedded, che secondo me è quello che Ekerazha ha in mente) tre alternative all'implementazione della JVM: software, hardware dedicato, schede acceleratrici. Anche in questo corso online si parla dell'esecuzione di Java da parte di un "processore Java", senza menzione alle schede acceleratrici.
Ora, se ci sono (come sono certo che ci siano) N approcci architetturali all'implementazione hardware delle JVM, o si citano tutti o non se ne cita nessuno e si rimane sul vago. Meglio ancora, si rimane sul vago a livello generale e poi si sviscera (in modo accurato e completo) in una sezione dedicata. Altrimenti, è come se uno dicesse "i dati persistenti sono memorizzati su disco o in una tabella di database relazionale", frase sbilenca perché anche i database sono su disco, e non ci sono solo quelli relazionali. Moongateclimber 18:47, 4 nov 2007 (CET)
replies: text: Tra l'altro, i "Java accelerator" (vedi per esempio Jazelle) possono essere di due tipi: uno esegue bytecode (il che non vuol dire che sia una implementazione completa della JVM, come al solito), uno invece fornisce servizi per migliorare le prestazioni dei compilatori JIT. . La questione continua a sembrarmi più complessa, e da trattare più organicamente, di quanto suggerirebbe un riferimento "buttato lì" agli acceleratori. Moongateclimber 18:59, 4 nov 2007 (CET)
replies: text:  Infatti io *nella modifica proposta non ho parlato di "schede acceleratrici"* (anche se probabilmente sono la tiplogia di implementazione più "accessibile"), ma di "acceleratori", che è la definizione che si ritrova comunemente ad indicare implementazioni in hardware della JVM. Il comune funzionamento di questi acceleratori è già stato ripetutamente riportato anche attraverso link a pagine esterne. L'acceleratore Jazelle qui linkato, *oltre a svolgere questa funzione* implementa anche alcune istruzioni aggiuntive in grado di migliorare ulteriormente le prestazioni. Non so se sia veramente il caso di creare una sezione dedicata per una precisazione di 1 riga. ekerazha 13:54, 13 nov 2007 (CET)
replies: text: Sostituisci pure "acceleratore" al posto di "scheda acceleratrice" nelle mie osservazioni di sopra. Nessuno dei link che hai citato mi ha convinto del fatto che una parola che deriva da "accelerare" possa essere sinonimo di "processore" (perché una implementazione hardware di una JVM deve essere un processore). Moongateclimber 16:23, 14 nov 2007 (CET)
replies: text: Mah... mi sembra un'obiezione alquanto futile. Anche gli "acceleratori grafici" erano processori (solitamente montati su schede dedicate... come pure alcuni acceleratori Java qui menzionati). Non vedo alcuna motivazione sensata per la quale un processore che "accelera" non possa essere definito "acceleratore" (come d'altronde è definito *nei fatti*, vedi le pagine linkate). Se poi a te non convincono amen... ma rimane una terminologia usata *di fatto*. ekerazha 15:59, 25 nov 2007 (CET)
replies: text: Continuiamo a parlare di due cose diverse. Una scheda acceleratrice può benissimo essere un processore, quello che non ho ancora visto dimostrato è che sia un processore Java (una implementazione completa delle specifiche della JVM). Moongateclimber 17:44, 25 nov 2007 (CET)
replies: text: Era riportato in uno dei siti che avevo linkato sopra tempo fa (e l'avevo pure esplicitato). Comunque anche "ipotizzando" che non sia *completa*, questo non toglie che svolga la mansione di convertire in hardware tutte/alcune istruzioni Java bytecode in codice nativo, come nuovamente riportato nelle suddette pagine linkate. ekerazha 12:32, 21 gen 2008 (CET)
thread_title: Schede acceleratrici, punto e a capo

message: Ehilà!
Ho messo i link a java.awt (che ho tradotto dall'inglese) e a Swing...
Conte91 (msg) 23:19, 20 mar 2008 (CET)
thread_title: Interfaccie Grafiche

message: Perché nella pagina c'è il template del linguaggio C? Non sarebbe opportuno un template sul linguaggio Java? LoStrangolatore (msg) 12:50, 5 nov 2009 (CET)
replies: text: Hai ragione. Ho proposto una modifica. --Outer root >echo 17:18, 5 nov 2009 (CET)
thread_title: Linguaggio C

message: Ciao a tutti scusate ho visto che la parola "sicuro" è un link che però porta alla stessa pagina, non è neanche un link interno.
E' da cancellare o magari è un link in attesa della voce "sicurezza" come si può vedere dal codice?
:Grazie della segnalazione, nell'incertezza ho provveduto a rimuoverlo.--B3t (msg) 11:43, 27 set 2011 (CEST)
thread_title:  Link inesistente 

message: Nella sezione "Versioni" alcune sono commentate dall'utente Henryx con questa motivazione
"Eliminati in quanto non viene riportata la data di rilascio (Henryx)"
Per quelle viene riportato solo l'anno, ma non mi pare una buona ragione per depennarle dalla voce. Commenti?  --Raffaele.castagno (msg) 00:49, 23 ott 2011 (CEST)
thread_title:  Versioni nascoste nel capitolo "Versioni" 

message: Ho aggiunto un esempio di programma per la stampa della stringa Hello World! che sfrutti i concetti della OOP. Ho anche provveduto a spiegare un minimo il codice degli esempi precedenti! Hellslord (msg) 12:20, 23 giu 2012 (CEST)
thread_title:  Aggiunto un nuovo esempio di HelloWorld 

message: Questa voce ha bisogno di diverse modifiche. La sezione relativa alla curiosità potrebbe essere rimossa per intero. Quella sulle versioni dovrebbe contenere le modifiche che il linguaggio ha avuto nel tempo, così come è adesso ha una utilità molto limitata. La sezione Hello World è troppo grande e va ripensata. --Vitalij zad (msg) 16:35, 1 lug 2014 (CEST)
thread_title:  Ri-organizzazione della voce 

message: Non mi sembra enciclopedico presentare un linguaggio attraverso una serie di programmi di esempio, siamo su Wikipedia non su stackoverflow. --Andreabont (MSG) 23:35, 12 lug 2016 (CEST)
thread_title:  Paragrafo "Linguaggio" 

message: Gentili utenti,
ho appena modificato 2 collegamento/i esterno/i sulla pagina Java (linguaggio di programmazione). Per cortesia controllate la mia modifica. Se avete qualche domanda o se fosse necessario far sì che il bot ignori i link o l'intera pagina, date un'occhiata a queste FAQ. Ho effettuato le seguenti modifiche:
*Aggiunta del link all'archivio https://www.webcitation.org/67yahbjPg?url=http://www.langpop.com/ per http://www.langpop.com/
*Aggiunta del link all'archivio https://web.archive.org/web/20090321180726/http://electronicdesign.com/Articles/Index.cfm?ArticleID=2255&pg=3 per http://electronicdesign.com/Articles/Index.cfm?ArticleID=2255&pg=3
Fate riferimento alle FAQ per informazioni su come correggere gli errori del bot
Saluti.—InternetArchiveBot (Segnala un errore) 05:54, 3 ott 2017 (CEST)
thread_title:  Collegamenti esterni modificati 

message: Gentili utenti,
ho appena modificato 1 collegamento/i esterno/i sulla pagina Java (linguaggio di programmazione). Per cortesia controllate la mia modifica. Se avete qualche domanda o se fosse necessario far sì che il bot ignori i link o l'intera pagina, date un'occhiata a queste FAQ. Ho effettuato le seguenti modifiche:
*Aggiunta del link all'archivio https://web.archive.org/web/20070611104244/https://openjdk.dev.java.net/ per https://openjdk.dev.java.net/
Fate riferimento alle FAQ per informazioni su come correggere gli errori del bot
Saluti.—InternetArchiveBot (Segnala un errore) 16:25, 14 mar 2018 (CET)
thread_title:  Collegamenti esterni modificati 

message: Gentili utenti,
ho appena modificato 2 collegamento/i esterno/i sulla pagina Java (linguaggio di programmazione). Per cortesia controllate la mia modifica. Se avete qualche domanda o se fosse necessario far sì che il bot ignori i link o l'intera pagina, date un'occhiata a queste FAQ. Ho effettuato le seguenti modifiche:
*Aggiunta del link all'archivio https://web.archive.org/web/20090523111129/http://radio.weblogs.com/0100490/2003/01/28.html per http://radio.weblogs.com/0100490/2003/01/28.html
*Aggiunta del link all'archivio https://web.archive.org/web/20151103174045/https://home.java.net/ per https://home.java.net/
Fate riferimento alle FAQ per informazioni su come correggere gli errori del bot
Saluti.—InternetArchiveBot (Segnala un errore) 00:18, 11 set 2018 (CEST)
thread_title:  Collegamenti esterni modificati 

message: Gentili utenti,
ho appena modificato 1  sulla pagina Java (linguaggio di programmazione). Per cortesia controllate la mia modifica. Se avete qualche domanda o se fosse necessario far sì che il bot ignori i link o l'intera pagina, date un'occhiata a queste FAQ. Ho effettuato le seguenti modifiche:
*Aggiunta del link all'archivio https://web.archive.org/web/20061115064813/http://today.java.net/pub/a//today/2006/11/13/open-source-java-editorial.html per http://today.java.net/pub/a//today/2006/11/13/open-source-java-editorial.html
Fate riferimento alle FAQ per informazioni su come correggere gli errori del bot.
Saluti.—InternetArchiveBot (Segnala un errore) 11:49, 6 giu 2019 (CEST)
thread_title:  Collegamenti esterni modificati 

message: Una procedura automatica ha modificato uno o più collegamenti esterni ritenuti interrotti:
*Aggiunta del link all'archivio https://web.archive.org/web/20090803031758/http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.html per http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.html
*Aggiunta del link all'archivio https://www.webcitation.org/65tawvVM4?url=http://www.oracle.com/us/sun/index.htm per http://www.sun.com/software/opensource/java/faq.jsp
In caso di problemi vedere le FAQ.—InternetArchiveBot (Segnala un errore) 17:44, 23 apr 2021 (CEST)
thread_title:  Collegamenti esterni interrotti 

message: Una procedura automatica ha modificato uno o più collegamenti esterni ritenuti interrotti:
*Sostituzione del link all'archivio https://www.webcitation.org/65tawvVM4?url=http://www.oracle.com/us/sun/index.htm con https://web.archive.org/web/20120303230525/http://www.oracle.com/us/sun/index.htm su http://www.sun.com/software/opensource/java/faq.jsp
In caso di problemi vedere le FAQ.—InternetArchiveBot (Segnala un errore) 15:19, 15 nov 2022 (CET)
thread_title:  Collegamenti esterni interrotti