Newsgroup: it.comp.java
Titolo: Portabilità

Ieri sera, mentre ero in rete per collaudare un programmino
insignificante che ho fatto studiando i flussi, ho riflettuto sulla
portabilità del Java.
Secondo me è un'armo a doppio taglio , perchè se da un lato permette a
più piattaforme di fruire dello stesso programma, dall'altro non da a
tutti la possibilità di utilizzare un prg .class.
Se io ieri sera avessi voluto spedire via Icq il mio prg a una mia
amica alla quale tanto decantavo le mie doti di novello programmatore,
non l'avrei potuto fare perchè avrei dovuto dirle di scaricarsi il jdk
e di installarlo, che per chi non smanetta giorno e notte sul pc non è
proprio cosa facile.
Dunque, chi non programma in java non può usare le applicazioni java.
Per gli Applet la cosa è sicuramente diversa, ovviamente, ma per le
applicazioni direi che si dovrebbe parlare di NON portabilità.
Insomma anche i più gnucchi e i meno navigati hanno il diritto di
poter usare un'applicazione con un semplice doppio-click.
"I want to know God's thoughts....
....the rest are details"

poter usare un'applicazione con un semplice doppio-click.
Il che e', una volta che hai installato (una volta per tutte) il runtime. E' 
come per il sistema operativo, no? Lo installi una volta e (a meno che non sia 
un windows :^) non ci pensi piu' ;-)
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

 wrote in message
8E7F5C9BDc...@news1.c2i.net...


 che non lo è neppure sullo stesso sistema!
Bum! Addirittura? :-)
Facci degli esempi!
Ciao,
      Bruno.
Sent via Deja.com 
http://www.deja.com/
Before you buy.


--
Bruno Bossola, a Java Developer


 ....the rest are details"
-- 
Cristian Veronesi - CRPA SpA - Reggio Emilia, Italy
"Now, here is a little peninsula, and here is a viaduct leading over to the mainland."
"Why a duck?" [The Marx Brothers, from the film "The Cocoanuts", 1929]

 proprio cosa facile.
Chi deve solo eseguire i programmi non deve scaricare il jdk ma solo il
run-time environement. Sotto Windows, con Java 2, l'installazione del JRE
crea automaticamente l'associazione dei .jar con javaw.exe e quindi basta
proprio fare un doppio click per eseguire il programma.
Inoltre, non dimentichiamoci che se il mercato dei sistemi operativi non
fosse nelle mani di un monopolista, tutte le parti in gioco vedrebbero in
Java un opportunita' in piu' e non una minaccia, e molto probabilmente
avremmo le VM preinstallate su tutti i sistemi. Mai sottovalutare quanto
sia il male che MS ha fatto ai consumatori.

 non lo è neppure sullo stesso sistema!
Cerca di non mescolare due problemi, cioe' le applicazioni e le applet.
Le applicazioni Java sono portabili senza particolari problemi tra
architetture anche molto diverse. Esistono VM per Windows, Mac, AS400,
Unix... mi irrita soltanto la posizione "tiepida" di Apple, ma al di la'
della facciata e degli slogan, questa azienda da' l'impressione di essere
al guinzaglio di MS da tempo.
Le applet, invece, hanno pesantemente risentito della "guerra dei browser"
che, come sappiamo, e' finita con lo strapotere di un browser (Explorer) il
cui supporto a Java ha avuto tutto "l'entusiasmo" che ci si poteva
aspettare da MS. Peraltro, Sun e' parte in causa contro MS proprio per
queste questioni.
Netscape nel frattempo ha attraversato pesanti difficolta', tutto il
progetto Mozilla e' in ritardo rispetto a Explorer e questo ha causato
delle ripercussioni e ritardi anche sul fronte Java.
Alla fine, dato che in questi ultimi anni chi produce i browser non ha
voluto, o non ha potuto, supportare adeguatamente Java, Sun si e' vista
costretta a realizzare i famosi Java Plugin per poter mandare avanti la
baracca, soluzione che purtroppo ha il sapore della pezza e non
contribuisce certo a semplificare le cose.
Se oggi avessimo una Netscape ancora in forze, con un browser che supporta
come si deve Java 2 con swing, allora sarebbe stata MS a doversi adeguare e
il progetto Java su browser procederebbe come si deve.
Sinceramente, non trovo nulla di sbagliato nell'idea delle applet.
Questo e' stato un caso esemplare di una buona nuova tecnologia che e'
stata volutamente danneggiata da un'azienda che ha potuto sfruttare la
propria posizione di monopolio per cercare di imporre delle tecnologie
alternative peggiori e mirate a consolidare ulteriormente la dipendenza da
MS. E hanno anche il coraggio di dire che loro hanno sempre fatto il bene
dei consumatori.

non lo è neppure sullo stesso sistema!
LOL naturalmente hai ragione, ma cio' non significa che non sia
portabile... :) Il linguaggio ha una specifica astratta, indipendente
dalla piattaforma. Le librerie hanno una specifica altrettanto
indipendente.. quando sono basate sul linguaggio. 
Le incompatibilita' a livello di browser che esistono, esistono in quanto
le implementazioni di AWT sono fatte in C/C++ - e le specifiche
probabilmente non sono chiarissime. Oppure, piu' semplicemente,
l'implementazione e' sbagliata. 
Il punto ovviamente e' che se anche l'implementazione di alcune parti
delle libreria in IE (per dire) e' errata... IE te lo devi tenere lo
stesso, dato che il 60% e rotti degli utenti lo usano. 
In altre parole: giusto dire che la portabilita' assoluta sia ancora non
raggiunta. Ma la *fatica* che fai per portare codice java e' di qualche
ordine di grandezza inferiore a quanto fai per altri tipi di codice - e
questo e' un fatto. 
Il resto, ovviamente, e' marketing. :)



Forse mi sono espresso male.
Mi spiego meglio con un esempio molto più semplice.
Vado su un sito, vedo una utility interessante, la scarico, la
installo (se è necessario), la faccio girare con un doppio click.
Ora, forse non hai mai avuto a che fare con gente che ha difficoltà ad
usare il PC e quando dico difficoltà dico che è difficile spiegargli
via icq cos'è un drag-and-drop....
A gente di questo calibro, ma anche a chi è leggermente più smaliziato
con il pc, non mi azzarderei mai a dare un'applicazione fatta da me
con Java, perchè saprei che la loro prima reazione sarebbe quella di
venirmi a dire che hanno provato a cliccare sul file .class ma non si
è aperto. C'è da ridere, ma purtroppo c'è ancora gente ridotta così
che magari  ha sulla scrivania un PIII con 128Mega di Ram, Vodoo 3,
lettore DVD e macchinetta per i toast e le pizzette annessa.
Se sviluppo un prg in VBasic, lo zippo e allego il .txt dove dico di
scompattare i dll nella cartella System e di lanciare l'exe con un
doppio click....il nostro amico imbranato avrà sempre dei grossi
problemi, ma la maggior parte della gente potrà usufruire dei miei prg
senza installare il JRE.
Ora, io sono neofita, e francamente non conoscevo il JRE, quindi non
devi prendere il mio post come protesta contro Java, perchè ho appena
finito il manuale e sto continuando a studiare con quello che c'è su
questo ng e sui siti java. Era solo una pura riflessione sul
concetto...bhe forse non di portabilità,
ma...chiamiamola....distribuibilità.
Spero di aver chiarito.
P.S. Grazie per tutte le volte che mi hai aiutato quando postavo i
miei primi piccolo grandi problemi.
Se ti va prova a lanciare il prg che ho postato qualche giorno fa e
guarda come anche tu mi abbia aiutato ad entrare nel mondo Java ;)
Ciao.


Vorrei anche sottolineare il fatto che, prendendo spunto dall'esempio
che ho fatto io, non č molto agevole doversi scaricare 5 e passa Mega
di Jre per poter vedere una schifezza di applicazione  :) sviluppata
dal sottoscritto.
Quindi l'ipotetico amico/a al quale vorresti far vedere il tuo
l'ultimo parto in Java...bhe penso che sarebbe molto molto riluttante
a scaricarsi il Jre e quindi il tuo .class rimane sul tuo hd e tu
rimani sconsolato con la lacrimuccia :) per non poter mostrare a tutti
quanto sei bravo :)))



--


Spero di aver chiarito.
Prima cosa: nessun problema per le 'proteste contro Java' - per fortuna non 
sono un venditore Sun :) Anzi, trovo che discutere queste cose sia essenziale 
proprio perche' chiarisce punti magari oscuri (e anche piu' divertente di 
rispondere al solito 'come si esegue un'applicazione da Java' e simili.. :).
Quindi ben vengano - per me - questi interventi.
Secondo, il caso specifico. Ho capito bene cosa intendi, e intendevo fornire la 
definizione 'tecnica' di "portabile" - che non coincide totalmente (come spesso 
accade con le definizioni tecniche) con quella intuitiva. 
L'equivoco naturalmente e' sfruttato ampiamente dal marketing Sun :), quindi 
non ci trovo nulla di male ad avere inteso per 'portabile' qualcosa che la 
parola - tecnicamente - non implica.
Ora, guarda il tuo stesso esempio. Il tuo utente e' in grado di andare su un 
sito e scaricare la tua applicazione. L'idea e' che se sa scaricare e 
installare la tua applicazione, sa scaricare e installare anche il JRE! 
(ovviamente devi dirglielo ;-) Installato il JRE, il sistema e' gia' 
configurato per funzionare con un click.. ovviamente, la tua procedura di 
installazione deve avere installato bene il tuo programma. :)
Il punto e': il tuo utente ha voglia di scaricarsi i 9Mb di JRE? Per la tua 
applicazione, tu dici, no. Bene, ma perche'? Perche' la tua applicazione in 
effetti (parole tue) non 'serve', no? :)
In altre parole il problema di Java - se problema lo si vuole chiamare :) - e' 
che se uno non ha gia' installato il JRE, magari non lo fa per vedere l'ultimo 
gadget uscito.
Ora, concorderai con me che questo, per applicazioni che 'servono' e' un 
problema che non si pone granche'.. cosi' come, se voglio usare Apache (perche' 
magari ritengo sia il miglior server http esistente) mi devo montare linux, o 
per usare Word devo avere Windows, per usare un'applicazione Java che ritengo 
utile devo installare il JRE.
Che poi sia una solenne scocciatura il fatto che non sia gia' pre-installato su 
Windows, siamo assolutamente d'accordo. Purtroppo, questo e' un problema su cui 
solo un certo signor Gates ha voce in capitolo. :)


OK, ho esagerato... intendevo sollevare un vespaio e credo di esserci
riuscito :-)
In realtà volevo semplicemente mettere in risalto la soluzione che tu chiami
"pezza". Credo che sia ora che i browser "inglobino" di default la VM
sviluppata dalla Sun, proponendo come alternative quelle proprietarie. Java
è in così continuo sviluppo che soltanto la Sun può essere costantemente (o
quasi...) aggiornata: se il famigerato Java plug-in fosse in dotazione con
"ogni" browser i problemucci che hanno fatto penare anche te semplicemente
scomparirebbero...
Le attenuanti che hai portato per Netscape sono valide e rinforzano la mia
proposta; riguardo ad Apple non mi sbilancio perchè ne sono completamente
all'oscuro.
Le applicazioni sono portabilissime però, cosa che si evince dal NG stesso,
creano grossi problemi per quanto riguarda la distribuzione su larga scala:
ora come ora chi programma applicazioni Java public domain lo fa per chi ha
già Java sulla propria macchina, ovvero un altro sviluppatore Java (opinione
opinabile, concordo :) .
Ciao,
MindFlavor.

 tutti la possibilità di utilizzare un prg .class.
I programmi Windows (o altre piattaforme) hanno pgm di installazione.
Esistono di questi anche per Java. Inoltre non è necessario il jdk ma
solo il jre. Che poi sia lungo da scaricare tutto dalla rete, sono
d'accordo con te.
La speranza è che ogni computer sia dotato di JVM di default.
Ciao,
-- 
Massimiliano Bigatti
Java Consulting (Open Consulting)
http://members.xoom.com/bigmax74

 sia il male che MS ha fatto ai consumatori.
BRAVO!


 è aperto.
Forse c'e' qualcosa che ti sfugge :)
Basta che spieghi loro che prima devono installare il JRE - cosa che
avviene con il solito installer e non e' un'operazione piu' complicata
dell'installazione di qualsiasi altro programma nativo, se non ricordo male
chiede solo la directory di destinazione - e poi basta che facciano doppio
click sul file .jar per avviare l'applicazione java.
PRIMA di Java 2, la distribuzione di applicazioni java prevedeva il
settaggio del classpath con relativi inconvenienti, non si poteva
doppio-cliccare il jar ma bisognava usare la shell o un batch, il tutto in
effetti era poco affrontabile dall'utente poco smaliziato.
ORA basta installare il JRE una tantum (beh, fino al prossimo aggiornamento
:) e poi a fare un doppio click sul file jar. PIU' FACILE DI COSI'.. c'era
solo il Mac di dieci anni fa :)

 applicazioni direi che si dovrebbe parlare di NON portabilità.
Ieri ho installato NetBeans sotto Winzozz e sotto Linux, usando lo stesso
file .class... se non è portabilità questa... aspettiamo che tutti i SO
abbiano una JVM embedded e poi potrà esserci la pace nel mondo, la
fratellanza universale, e finalmente la M$ dichiarerà bancarotta. (Mi
basterebbe l'ultima)
Ciao,
    Stefano


Ammetto che hai ragione se le cose si guardano da questo punto di
vista.
Java può essere per molti versi affiancato a Linux.
Entrambi sono Free, entrambi sono "emarginati" , ma stanno tirando
fuori le palle e stanno facendo tremare le ginocchia allo zio Bill.
Il monopolio in questo settore è veramente sottovalutato, ma neanche
tutti si accorgono di essere incatenati a Win e quindi non se ne
accorgono....accorgiamo...io stesso sono schiavo.
Il giorno che ce ne accorgeremo sarà troppo tardi e ci resterà solo da
cantare Kumbayà :)
Il mio problema di mandare il programmino all'amico/a Icq per
tirarmela è banale rispetto alla vera efficacia della portabilità.
E' stata una discussione chiarificante.
Approfitto per chiedere delucidazioni sul JRE, che non conosco.
A quanto ho capito il JRE permette di lanciare un class con un click,
cosa che io chiedevo da tempo su questo ng, ma nessuno me lo ha mai
detto grrr.
Però il JRE fa anche parte del pacchetto SDK, sbaglio?
Allora perchè devo sempre appoggiarmi ad un ambiente di sviluppo
oppure scrivere il tedioso comando dal prompt dos per compilare ed
eseguire un'applicazione?
Quì si tratta solo di coodità.



Questo era quello che volevo dire nel mio primo post, ma visto che
sono mongoloide non sono riuscito ad esprimermi correttamente :))
Cmq l'unico problema rimane per me il dover scaricare il JRE.
Come ho discusso prima con Cristiano Sadun, chi vuole utilizzare delle
applicazioni java si sobbarca un download da 5 o 9 mega una volta per
tutte, ma chi ha solo il vezzo di "provare" delle utility (chiamo così
dei prg piccoli e amatoriali) non lo fa e ne cerca uno simile che sia
exe. Io stesso, prima di cominciare a studiare Java, l'ho fatto
diverse volte.
Se trovavo un prg con scritto "sorgente in Java" passavo avanti.
Non sono proprio una seppia riguardo ai pc, anzi posso vantare anche
un curriculum di "esperto" informatico, ma quando non avevo le basi
della progammazione (come molti "esperti") lasciavo perdere quei prg
scritti da privati cittadini del web che publicizzavano i loro sforzi
sulla loro pagina web.


eseguire un'applicazione?
Perche' il click e' associato all'estensione JAR - e uno di solito si mette ad 
impacchettare l'applicazione in un JAR solo quando ha finito lo sviluppo. :)
Del resto, se usi Ultraedit o editor simili, te li puoi configurare in modo che 
basti un pulsante per compilare il programma e/o lanciarlo.


 solo un certo signor Gates ha voce in capitolo. :)
Alla luce degli ultimi avvenimenti, _non e' detto_ .... <grin>

 wrote in message
38326CDF...@sdb.it...


ovaci e poi mi saprai dire... altro che doppio-click!
Non ho ancora imparato a scrivere un'applicazione VB valida, perň
quelle che ho scaricato personalmente e utilizzao non mi hanno mai
dato problemi.
Qualche volta mancava un ocx o un dll....bhe, usi altavista come una
raccolta di librerie e mettendo come parola chiave il nome del file
che ti manca ti trova siti dai quali scaricarlo.
Ti assicuro che con VB non ho mai avuto problemi.
Se un'applicazione VB non va č colpa dello sviluppatore e non certo
del os.


 del os.
Non sono assolutamente d'accordo. Se scrivi codice perfetto, lo beta-testi su cento computer diversi, poi lo distribuisci e sul computer dell'utente si inchioda perche` li` c'e` installata la versione 1.0.12.25.1432 di PINCOPALLA.DLL anziche` la versione 1.0.12.25.1433 che hai usato tu sarebbe colpa dello sviluppatore??? La colpa e` di un sistema idiota progettato da idioti. Quando ho saputo che in Java c'e` una cosa chiamata CLASSPATH la prima cosa che ho pensato e` stata "ma e` possibile che in Microsoft nessuno ci abbia pensato?".
Ciao, Cris
-- 
Cristian Veronesi - CRPA SpA - Reggio Emilia, Italy
If you want to know what God thinks about money, 
just look at the people He gives it to. (Old Irish Saying)

 runtime di Java sarą embedded... un buon passo avanti.
Se e' un fan di Apple, non bisognerebbe crederci troppo :-)
Comunque speriamo...