Newsgroup: it.comp.java
Titolo: Java...

sempre piu' potente e sempre piu' polpettone...
ora mancano solo i puntatori e altro ed ecco a voi il C++

 ora mancano solo i puntatori e altro ed ecco a voi il C++
intendevo dire "poco altro"

 ora mancano solo i puntatori e altro ed ecco a voi il C++
Dovresti avere più pudore della tua ignoranza (in senso di ignorare)

Vincent Vega ha scritto:

che vuoi dire ?

 ora mancano solo i puntatori e altro ed ecco a voi il C++
mai visto nessuno piu' troll di te
-- 
{2Nd+BeSt}

{2Nd+BeSt} ha scritto:


probabilmente è vero (che è un troll), però l'affermazione ha degli spunti
interessanti.
In ogni release c'è un sacco di roba in più: nuove API, nuovi modi di fare
le cose, stavolta anche 
estensioni del linguaggio (peraltro volute dalla comunità)
La complessità di Java è sicuramente cresciuta. Tutti i giorni mi imbatto
in sw scritto male per 
mancanza di conoscenze sul linguaggio, sulle specifiche, sulle librerie,
sul design. E 
padroneggiare tutto non è semplice, niente affatto
Voi che ne pensate?
uL
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Voi che ne pensate?
Personalmente trovo che le principali aggiunte al linguaggio siano quasi
completamente inutili e che, anzi, peggiorino di molto la
comprensibilita' del linguaggio Java, rendendo i programmi molto piu'
difficili da leggere e quindi da manutenere (e probabilmente anche da
scrivere).
La maggior parte delle aggiunte servono semplicemente a scrivere del
codice in maniera piu' compatta risparmiando un po' di battitura,
sacrificando pero' la chiarezza semantica, cosa assurda visto che la
maggior parte degli IDE e' in grado di sollevarci da cio'.
Ad esempio, credo che sia da evitare come la peste l'import static.
Altra cosa assolutamente inutile, e anzi dannosa, e il boxing/unboxing.
Anche della nuova sintassi per il for, c'era veramente bisogno? Sono cosi'
difficili da usare gli iteratori?  ...viaggiamo verso il Visual Basic. :-)
E se proprio lo si voleva introdurre, non si poteva trovare una nuova
keyword, chesso' foreach (originale, eh? :)), invece di confondere la
sintassi del for esistente?
Che dire poi dei varargs? ...un bel passo indietro verso la programmazione
procedurale, e ancora una volta un'inutile complicazione dato che il tutto
si puo' tranquillamente ottenere, e meglio, con array o collection.
I generics in teoria sono una cosa utile, dato che potenzialmente rendono
possibile spostare la maggior parte dei controlli di tipo da run-time a
compile-time. E' pero' vero che complicano molto la scrittura e, a mio
avviso, anche la lettura del codice. Inoltre io credo che verranno usati
solo per risparmiarsi (ancora una volta) un po' di battitura di cast
espliciti estraendo oggetti da collection.
...ma allora non c'e' niente di buono? No, c'e' molto, ma soprattutto a
livello di libreria. Ad esempio, quella per la gestione della
concorrenza mancava proprio nella Java API. Secondo me il linguaggio in
se' andava gia' molto bene: semplice, chiaro e coerente. Ora e'
decisamente piu' confuso e difficile, con aggiunte che non fanno altro che
scimmiottare quelle presenti in linguaggi concorrenti, credo spesso
solo con l'intenzione di attrarre gli sviluppatori di tali linguaggi
(mentre lo spirito iniziale dell'introduzione del linguaggio Java era
quello di migliorare i linguaggi esistenti).
Ciao
  Lucio
-- 
Lucio Benfante
Java User Group Padova: 
http://www.jugpadova.it
Brainbench MVP for Java 1: 
http://www.brainbench.com
MyTranscript: 
http://www.brainbench.com/transcript.jsp?pid=167064

{2Nd+BeSt} ha scritto:

evidentemente sei un pivello dei NG... vedi i msg seguenti il tuo.
e per rispondere a Vincent Vega... credo proprio che l'ignorante sia 
tu... visto che se conosci Java come credo che tu abbia inteso con la 
frase poco felice che hai scritto.
La mia affermazione era solo un modo per dire di due parole le cose che 
uL e Benfante anche se poi definire troll dopo un solo post mi sembra 
eccessivo...
Ad ogni modo se questo e' il vostro modo di accogliere un potenziale 
"amico" credo che forse ho sbagliato ng!!!

...
evidentemente sei un pivello dei NG... vedi i msg seguenti il tuo.
e per rispondere a Vincent Vega... credo proprio che l'ignorante sia
tu... se conosci Java come credo che tu voluto far intendere con la
frase poco felice che hai scritto.
La mia affermazione era solo un modo per dire di due parole le cose che
uL e Benfante hanno scritto; inoltre definire troll dopo un solo post mi 
sembra eccessivo...
Ad ogni modo se questo e' il vostro modo di accogliere un potenziale
"amico" credo che forse ho sbagliato ng!!!
pinturicchio ha scritto:


 Voi che ne pensate?
Perfettamente d'accordo.Soprattutto trovo *devastante* il proliferare di
frameworks di varia natura... hibernate, struts, jsf,jdo... valutarli e
padroneggiarli tutti con consapevolezza credo sia impossibile.
Scorpio.


 padroneggiarli tutti con consapevolezza credo sia impossibile.
Scusa, ma non si stava parlando del Java JDK?
Cosa c'entra l'inevitabile complessita' delle moderne applicazioni con
l'accresciuta complessita' del linguaggio Java della versione 5.0?


infatti
proprio cercando un framework per lo svuluppo di un prodotto che ho 
iniziato a riflettere su quanto sia piu' complesso sviluppare oggi in 
java rispetto a quanto lo era nel "lontano" 1999. E pensare che si 
diceva che Java era il C++-- ovvero il C++ senza le difficolta' del C++ 
e da qui l'affermazione con la quale ho iniziato il thread.
...


ora mancano solo i puntatori [...]
VV ti ha dato dell'ignorante? Per forza. In Java non esiste altro che
puntatori... puoi dirmi che non esiste l'ARITMETICA dei puntatori (ammesso e
non concesso che tu sappia chiaramente cos'e') ma i puntatori in Java ci
sono. Da quel di'.
Happy trolling :)
---
Francesco Galli / Cinghiale Mannaro
Personal: 
http://cinghialemannaro.splinder.com
TMS project: 
http://tms.inera.it

Dimmi una cosa:
conosci il c ?
Francesco Galli ha scritto:


Piccola precisazione: ci sono quattro-cinque tipi primitivi, oltre che i
puntatori.

 l'accresciuta complessita' del linguaggio Java della versione 5.0?
Hai ragione, in effetti il mio post è un po' off-topic...
Scorpio.

 
Stai scherzando vero? Le applicazioni e la "facilita'" con cui puoi
svilupparle oggi grazie a molti dei framework esistenti te le scordavi nel
1999.
Quella di cui parli tu non e' complessita' del linguaggio, ma complessita'
dell'applicazione. Il linguaggio, se ci dimentichiamo delle (tutto sommato
poche) recentissime modifiche e' praticamente lo stesso del 1999.
Anche la J2SE API non e' cambiata poi moltissimo, e di solito non e' stato
fatto altro che inserirci librerie che gia' venivano usate praticamente da
tutti aggiungendole esternamente.


 conosci il c ?
Si.

Ancora insisti con questi puntatori!!!!
Toglimi una curiosita' in java come lo dichiari un puntatore ?
E non dirmi che per te un puntatore e' una dichiarazione del tipo
Objecy o = new Object();
Francesco Galli ha scritto:


 
Ecco... allora vedi bene che in Java i puntatori nel senso classico non 
ci sono!!!

> Objecy o = new Object();
   o e' un puntatore all'oggetto che viene creato e se ne sta buono buono
nello heap.
   Tanto e' vero che
public void makePluto (Objecy myAss) { myAss.setValue("pluto");}
[...]
Object o = new Object();
o.setValue("Pippo");
System.out.println(o.getValue()); //Stampa pippo
makePluto(o);
System.out.println(o.getValue()); //Indovina?
In java esistono solo puntatori. Il fatto che tu li dichiari utilizzando una
sintassi piuttosto che un'altra non cambia. Il fatto che tu non ci faccia
aritmetica sopra e' un altro conto, pero' se ti vai a guardare le specifiche
del linguaggio scopri che ci sono solo puntatori, e quattro-cinque tipi
primitivi.

Definiscimi "puntatori nel senso classico". Un puntatore e' un puntatore, e'
un concetto. Non esiste "senso classico".
Poi se vuoi dirmi che non puoi fare qualcosa come (perdona se ho fatto
errori di sintassi)
int* pippo;
pippo++;:
su quello concordiamo. Ma questo non vuol dire che in Java non esistano i
puntatori. Vuol dire che non puoi farci aritmetica sopra il che, converrai,
sono concetti un po' diversi :-)


 
Su questo sono d'accordo.

Ecco!!!
Per me questo e' un puntatore... e come vedi per il resto concordiamo. 
In letteratura "Java" nelle prefazioni e nelle introduzioni viene sempre 
ribadito il concetto che Java e' semplice perche' non ha i puntatori e 
l'astrusa aritmetica, ecc.. ecc..
A questo punto se ti fermi un attimo e analizzi cosa non ha Java che ha 
il C++ vedrai che queste cose sono veramente poche. Anzi... la libreria 
di classi del JDK che ti porti dietro e che cresce sempre piu' versione 
dopo versione diventa sempre piu' complessa da padroneggiare.
Francesco Galli ha scritto:


Ok ok...
hai studiato :-)
Francesco Galli ha scritto:


 scrivere).
 >[CUT]
Se mi è consentito dissentire :) sono di parere totalmente opposto. 
Utilizzo il JDK5 fin dalle prime versioni beta e ne sono letteralmente 
innamorato. Una volta appreso (come si deve, io sono al terzo libro e 
ancora non mi considero "a regime") è un linguaggio incredibilmente più 
potente ed espressivo rispetto a prima.
E mi riferisco a tutte le modifiche fatte, anche quelle forse meno 
conosciute, come ad esempio il package java.util.concurrent grazie al 
quale praticamente ho smesso di utilizzare la keyword "synchronized".
Ragionando a braccio direi che ora scrivo intorno al 30/40% in meno di 
codice, ma decisamente più espressivo e sicuro di prima.
In sostanza secondo me un salto di qualità che posiziona Java, oggi, 
parecchie spanne in più rispetto a linguaggi concorrenti.
pole
-- 
ammentos - a lightweight persistence framework for JDK5
http://www.sourceforge.net/projects/ammentos
http://ammentos.biobytes.it

 codice, ma decisamente più espressivo e sicuro di prima.
Faresti un esempio pratico di utilizzo delle nuove feature del
linguaggio che possa convincermi dell'espressivita' e della sicurezza?
(non sul java.util.concurrent o altri package, ne' sulle enumeration, su
quelli sono d'accordo anch'io che sono novita' utili)


"pinturicchio" <pintur...@nonesiste.loo> ha scritto nel messaggio
news:qPlce.70474$IN.12...@twister2.libero.it...
[CUT]
please 
http://wiki.news.nic.it/QuotarBene

 
Prendiamo ad esempio la revisione dell'interfaccia Comparator, il cui 
metodo compare era prima così definito:
public int compare( Object obj1, Object obj2 );
Un comparatore di tal tipo era quanto di meno espressivo si potesse 
immaginare, visto che poteva accettare oggetti di qualunque tipo e 
poteva comparare anche tipi diversi nella stessa chiamata, ad esempio 
era possibile chiamare il metodo così:
compare( new Integer(2), "hello" );
Questo ovviamente esponeva il tuo codice a problemi di ogni tipo e non 
ti dava informazioni su cosa il Comparator fosse in grado di comparare.
Ora lo stesso metodo è definito così:
public int compare( T obj1, T obj2),
dove <T> è nella definizione di Comparable.
Come vedi ora hai questi vantaggi:
1) Non può accettare oggetti di qualunque tipo ma solo di tipo <T> 
(sicurezza)
2) Mostra nella sua dichiarazione come deve essere utilizzato 
(espressività).
Grazie inoltre al boxing automatico puoi fare anche cose tipo
int x = ...;
int y = ...;
...
compare( x, y );
Ovvero risparmi un sacco di codice (ancora espressività), ed è anche 
parecchio più leggibile rispetto al vecchio
compare ( new Integer(x), new Integer(y) );
Spero sia abbastanza pratico come esempio :-)


 amenita'.
...e cosa c'entrerebbero i generics (sono amenita'?) con la
complessita' e varieta' dei framework esistenti, di cui ti
lamentavi?
Lucio
PS: con simili discorsi in questo NG rafforzi sempre piu' la convizione
che tu sia un troll. Ti prego non rafforzarla ulteriormente con altre
affermazioni campate in aria...sai tendo ad ignorare i troll. Cerchiamo di
portare delle argomentazioni sensate di cio' che affermi.


 please 
http://wiki.news.nic.it/QuotarBene
Grazie, ci voleva proprio questo tuo "contributo" alla discussione.


e come sei serio... e prendi la vita con un po piu' di spirito e ironia...


cari miei... mi avete fatto ricordare perche' avevo abbandonato i ng
tanti saputelli
tanti che non aspettano altro che bacchettare se uno sbaglia il quoting 
o una virgola
tante vipere assatanate anzi... zitelle acide!!!! e qui devo dire che 
abbondano
purtroppo a parte alcuni veramente preparati che "sprecano" il loro 
tempo in discussioni piu' o meno interessanti gli altri sono i soliti 
finti esperti.
Lucio Benfante ha scritto:


 Spero sia abbastanza pratico come esempio :-) pole
...mi spiace, ma non mi hai convinto :-)
Lucio


 si puo' tranquillamente ottenere, e meglio, con array o collection.
non ho capito, perché i varargs siano un passo indietro verso la 
programmazione procedurale, potresti espandere il concetto?

 ...mi spiace, ma non mi hai convinto :-)
Peccato, magari se non avessi messo quella postilla sull'autoboxing 
avrei rischiato di farcela :-P


 tempo in discussioni piu' o meno interessanti 
tipo questa. e' proprio sprecare, senza virgolette, caro il mio troll
-- 
{2Nd+BESt}

 programmazione procedurale, potresti espandere il concetto?
Per me sono la negazione dell'overloading. E spesso la necessita' di avere
metodi con numero di parametri indefinito nasconde solo una cattiva
progettazione delle classi. Infine, anche in questo caso, i varargs non
fanno altro che nascondere che quel parametro e' un'array, con l'ulteriore
limitazione che all'interno di un metodo posso avere solo un unico
parametro varargs...mentre usando gli array ne potrei avere quanti ne
voglio (non e' comunque una buon esempio di programmazione ad oggetti).


 avrei rischiato di farcela :-P
No. :)


 pippo++;:
Ecco!!!
Per me questo e' un puntatore...
[/CITO]
cioè un puntatore è un puntatore se lo puoi incrementare???? definiscimi
allora "aritmetica dei puntatori".
forse a te manca il concetto (cito f.galli) di puntatore.
Prova a fare una "translazione" dal supporto a runtime di un eseguibile
scritto in c/c++ al supporto a runtime di java,  e dimmi la differenza che
c'e' tra pippo e java.lang.Object@108786b .
mi sono preso la briga di trovare un link abbastanza interessante
http://www.ugolandini.net/JavaCPP.html
Forse a te manca anche il concetto di VM e supporto runtime.
Ma soprattutto nn intavolare discussioni per terminarle con un "ecco, per me
......." perche' il "per me...." nn fa testo.....

 No. :)
Scommetto duecento kbytes del mio HD che prima o poi cambierai idea ;)


 Meglio PHP ASP et similia.
[MEGACUT]
Non hai capito nulla di webapp, probabilmente nn sai neanche che sia un
browser e l' HTTP, perchč mi devi spiegare il browser che passa parametri in
post o get cosa vuoi che ne sappia di chi e cosa ci sia dietro, se hai visto
url kmetriche č perchč:
1) nn poteva fare altrimenti
2) chi a scritto la webapp č un polepttone come te
poi che php e asp siano meglio "potrebbe" anche esserlo, ma quando sostieni
una tesi (tipo quella di apertura di questo thred-trollata)
motivala.......se puoi.....con valide motivazioni......

> che vuoi dire ?
ora ti spiego:
se hai pudore della tua ignoranza ti vergogni a manifestarla apertamente e
certe cose non le dici...
:)))))))))))))
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
appunto!!!!
avresti fatto meglio ad evitare il tuo inutile commento....
per concludere e poi non rispondero' piu' alle tue stupide provocazioni
questo Thread da me iniziato e da te definito troll ha seguito due strade.
la prima in cui ci sono contribuiti interessanti di persone sveglie
la seconda fatta di commenti inuti e stupidi come il tuo
Considerati nella mia black list!

 
complimenti!!!
spero che almeno per te siano chiare le poche parole sensa senso che hai 
scritto.

 Considerati nella mia black list!
ROTFL!

 la seconda fatta di commenti inuti e stupidi come il tuo
   No, la seconda in cui ne hai buscate da un punto di vista tecnico perche'
hai detto castronerie e sei stato zittito :)

 Considerati nella mia black list!
eccitante
-- 
{2Nd+BESt}

 2) chi a scritto la webapp è un polepttone come te


ma zittito da chi1!!!
da un saputello che a domanda precisa inizia a fare il saputello ????
cari miei... siete tutti uguali...
spero ti ecciti anche tu come il tuo compare al pensiero che ora vi 
metto in BL!
Francesco Galli ha scritto:


> complimenti!!!
grazie grazie
complimenti accettati e sempre molto graditi


si sii..
bravo
Xamul ha scritto:


 metto in BL!
   sono eccitato come una scimmia-ragno che programma una applicazione web
in PHP ad url corte.
---
Francesco Galli / Cinghiale Mannaro
Personal: 
http://cinghialemannaro.splinder.com
TMS project: 
http://tms.inera.it

mi hai fatto ridere!!!!
e per questo sei uscito dalla BL per un istante!!!
Francesco Galli ha scritto:


per avermi allietato la mattinata
...
esperimento riuscito :-)))))))))))

 metto in BL!
e no eh! ora per la parcondicio plonki pure {2Nd+BESt}, perchè noi si e lui
no? eh???? :D:D:D:D:D:D:D

 sono concetti un po' diversi :-)
Eh no sono troppe le cose che non puoi farci, per definirli puntatori.

 esperimento riuscito :-)))))))))))
fa sempre piacere vedere gente che nn gode mai, godere con poco.

 e per questo sei uscito dalla BL per un istante!!!
URKA! la black list dinamica a intelligenza artificiale che sa quando
qualcosa puo' farti ridere o meno! MINKIA!!!

esatto!!!
e' lo stesso che ho pensato quando ho letto il messaggio dei tuoi compari!
Reny ha scritto:


 delle letterine, ad esempio).


gia!!!!
Reny ha scritto:


 e' lo stesso che ho pensato quando ho letto il messaggio dei tuoi compari!


> Eh no sono troppe le cose che non puoi farci, per definirli puntatori.
Scusami, ma un puntatore si definisce in quanto puntatore oppure su base di


Sentimento iperreciproco, credimi. :-D
-- 


 gia!!!!
sei troppo avanti!!!!
ora basta giocare con questi msgs ot...... rimetto la mia nuova scimmietta
nel ripostiglio e torno a faccende + serie, tipo andare a pranzo.
biez ;)

ok
andiamo a mangiare :-)
continuamo dopo ? :-)
Reny ha scritto:



Direi che é meglio definirlo in base alle operazioni che si possono fare, 
quando si parla di linguaggi ad alto livello.
Altrimenti un puntatore puň essere tutto, poiché un puntatore lo si vede a 
livello macchina solo quando si ha una dereferenziazione della memoria. 

 Scommetto duecento kbytes del mio HD che prima o poi cambierai idea ;)
...ok, fra 10-15 anni vengo a reclamarli con gli interessi (arriveremo
almeno a 1MB?) :)
Lucio
-- 
Lucio Benfante
Java User Group Padova: 
http://www.jugpadova.it
Brainbench MVP for Java 1: 
http://www.brainbench.com
MyTranscript: 
http://www.brainbench.com/transcript.jsp?pid=167064


continuo a non vedere la relazione con un cattivo design ad oggetti 
dall'avere i varargs.
Comunque credo di aver capito che la tua critica fondamentale a java5 è 
che "explicit is better than implicit".
Direi che possiamo concordare di non essere d'accordo.

 livello macchina solo quando si ha una dereferenziazione della memoria.
Un puntatore in Java te ne accorgi al volo che e' un puntatore... se ti sei
preso la briga di studiare come funziona la macchina astratta.
-- 


 almeno a 1MB?) :)
Rimango dell'idea che cambierai idea... prima o poi le JVM vengono 
aggiornate :-D
pole
PS: finalmente una discussione interessante :)
-- 
ammentos - a lightweight persistence framework for JDK5
http://www.sourceforge.net/projects/ammentos
http://ammentos.biobytes.it

 Direi che possiamo concordare di non essere d'accordo.
Esatto, non potevi fare miglior sintesi.
...concordo. :-)


 ...concordo. :-)
...aggiungo anche, e non sarai ugualmente d'accordo, che a me piacerebbe
che ci fosse un solo modo corretto, consigliabile ed il piu' possibile
generale di svolgere un compito. Le modifiche al linguaggio solo per
comodita' di scrittura proprio non mi convincono.


grazie
l'ho iniziata io :-)


 
Non mi dire che ti sei messo a studiare le specifiche della JVM

> Non mi dire che ti sei messo a studiare le specifiche della JVM
Sono argomento d'esame a Pisa.
Cia'
   F

 definizione.
Si é vero.

 cari miei... mi avete fatto ricordare perche' avevo abbandonato i ng
Ora che te lo sei ricordato possiamo sperare che tu sparisca di nuovo ?
-- 
Giambo - Occhio al filtro antispam _e_ alla whitelist !

 definizione.
Beh comunque non puoi affermate che "Quello che puoi o non puoi farci non 
inficia la sua definizione".
Definizioni operazionali esistono e sono molto comuni...come dire che un 
insieme A é un gruppo Abeliano, e le operazioni definite sui suoi elementi 
non contano alla fine della classificazione (cosa ovviamente non vera in 
questo caso).
Dipende insomma da come é definito la cosa...secondo me si può fare una 
distinzione tra la tua definizione e puntatore come costrutto esplicito e 
una serie di operazioni definite su di esso. 

Se hai bisogno posso aiutarti a capire anche gli altri insulti ..ehm
..messaggi... che ti hanno scritto :D
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it