Newsgroup: it.comp.java
Titolo: PARLIAMONE...

Ciao "cari" smanettatori e spalatori di bit.
Sono "il santo" (vedi nick) e da qualche giorno mi sono messo in testa
di imparare a programmare in Java.
Mi sono detto: "uno come me, che da ormai cinque anni smanetta con
Mathlab, simulink, C, C++, Pascal, Visual Basic, Optnet, Omnet,
Assembler Risc, Cisc, OpenGL, WRML, ecce ecce...no dico, UNO COME ME!!!
DEVE imparare il Java"...
...così, con la mia aria da superiore che mi contraddistingue, mi avvicino
al Java, saltando a "piè pari" tutti quei capitoli relativi alle definizioni
delle variabili, ai cicli, Loop While If For ecce ecce...le so le so!!! ( mi
dicevo!)
Finchè...cazzarola! ma sto java...a che cosa serve?!?!?...sì sì il WEB
la Computer Grafica ho capito...ma cazzarola! con il C++ era tutto
MOOLTO piu' facile...classi, moduli, polimorfismo, ereditarietà,
implementazione di tutti i tipi di dato che era una meraviglia ( code, pile.
alberi binari e n-ari, grafi...)
...ma Java...alla fine...a cosa serve?
Insomma "cari amici", c'è qualcuno di "buona volonta'" in grado di spiegare
a me (e a qualcun altro) le DIEFFERENZE TUTTE che ci
sono tro JAVA e il C++ (a parte le ovvietà)
..perchè mi sono accorto che non è poi così facile imparare "sto" JAVA,
almeno non così scontato, anche se provieni dal "meraviglioso"
C++!!!
                           IL SANTO
p.s.
ditemi ditemi!!!
(a me i puntatori piacevano! la "garbage collection" mi faceva impazzire di
goduria!)

Questa è l'opinione di un non esperto.
Io arrivavo dal C (fatto a scuola) prima di incominciare a studiare java un
anno fa.
Ho avuto non pochi problemi i primi tempi per il passaggio da una
programmazione strutturata ad una programmazione fortemente orientata agli
oggetti come in Java (in Java quasi tutto è un oggetto).
Una volta abituato, mi sono accorto che era molto più semplice programmare
in Java.
Precisamente la cosa che mi ha stupito di più è la semplicità e
l'intuitività nell'utilizzo dei metodi esistenti, grazie all'elevato livello
di astrazione del linguaggio, astrazione che avvicinandosi molto di più alla
realtà semplifica la risoluzione dei vari problemi.
Inoltre ti semplifica molto la vita, così puoi concentrarti quasi
esclusivamente sulla logica delle tue applicazioni.
Con questo non stò dicendo che è facile, anzi per programmare bene in java e
soprattutto bene ad oggetti bisogna essere veramente ingamba. In questo NG
ne troverai un bel pò di persone veramente brave vedrai.
Poi Java ti prende, almeno, a me ha preso, ma anche molti miei amici si sono
appassionati molto a  questo linguaggio.
Ciao

 goduria!)
Fausto.

 goduria!)
IMHO usare i puntatori è solo una pericolosa e inutile complicazione. Ho
cominciato in Java dopo avere studiato Pascal e C, e quindi ora ho problemi
ad apprendere il C++.
Probabilmente a te viene difficile passare a Java dal C++, un linguaggio che
ti permette di "mettere le mani sulla macchina", ma a me che vengo da Java e
vorrei apprendere il C++ sembrano evidenti molte cose
- Java si porta appresso una libreria di package e classi ENORME (puoi fare
quasi tutto usando codice già esistente), sulla GUI, sul networking,
sull'i/o, connettività DB, ecc. ecc. mentre per il C++ le librerie te le
devi andare a cercare e spesso sono proprietarie ($)
- Posso fare girare un'applicazione GUI su Win, Mac e Linux, con le stesse
righe di codice
- L'ereditarietà multipla mi sembra superflua. Java ricorre alle interfacce
per aggiungere ulteriori funzionalità e mi sembra molto più chiaro
Tuttavia riconosco che a volte la GC non è proprio il massimo :)
~~
artemis.alpeia

Ma scusa super santo, se sei tanto in gamba come dici guarda che non
dovresti avere alcun problema ad imparare java. Vuoi le liste, pile, code?
In java esistono LinkedList, Vector, Stack e quant'altro ti serva per
colmare quelle tipologie di gestioni dinamiche. Java è portabile...scrivi
una volta esegui ovunque. Questo non è poco. Ovvio che non puoi accedere
alla memoria in maniera così brillante come potevi fare in c++, ma in realtà
esistono in java molti modi per ovviare a questo inconveniente (vedi le
liste ad esempio...beh, esistono anche in java), quindi a parte alcuni casi
in cui i puntatori ti servono per accedere in maniera molto profonda alla
macchina, in tutti gli altri non ti servono perchè java è stato creato in
modo tale che non fossero necessari. Certo, c++ ha di norma prestazioni più
elevate (metti grafica3d o altre cosette un pò particolari), ma per il resto
la differenza non si nota molto. Java è il linguaggio che meglio implementa
la filosofia OOP. Forse anzichè saltare le "cavolate" come cicli e menate
varie, beh, forse hai saltato anche tutto il resto di java! Onestamente
anche a me non dai per niente l'impressione di essere un programmatore
esperto. Se tu lo fossi, allora avresti un approccio molto diverso verso un
nuovo linguaggio. Ricorda, Assembler è il padre di tutto, C++ è la madre e
Java il figlio, ovvero la nuova generazione.

 Java il figlio, ovvero la nuova generazione.
Quali altre parole potevo aspettarci da Padreterno!!! Giustamente, dato che
c'è qualcuno che si è autobeatificato "IL SANTO".
Adesso vado a finire di scrivere la bibbia apocrifa "Thinking *about* JAVA".
Saluti,
    Fausto.

 goduria!)
Quale garbage collection ? un'implementazione C++ non ha, 
generalmente, supporto per la garbage collection... 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 generalmente, supporto per la garbage collection...
Credo che il Santo abbia fatto confusione :)
Esistono implementazioni di GC per C++ (forse anche per C),
mentre in Java e' una caratteristica di base, mentre i puntatori
li puoi gestire solo in C++. Chissa' che ci voleva dire! ;)
Domanda per i guru: quanto vi mancano i template di C++ quando
programmate in Java? (vedi Container, e differenze etc. etc.)
Andrea

 API del sistema operativo su cui ti trovi a dover sviluppare.
Esatto o, in altri casi (vedi il Borland C++ Builder), utilizzare
i costrutti messi a disposizione dal framework di sviluppo (la VCL
mette a disposizione la classe TThread, sia sotto Delphi, che sotto
C++ Builder, che incapsula le API di Windows ed e' banalissima da 
usare).


A cosa serve Java...
Inizia a dare uno sguardo a quali sono le società che stanno investendo su
Java e quali no. Questo può essere un buon motivo per scegliere di investire
il tuo tempo su Java.
Se dai uno sguarda a come e dove viene impiegato Java, dalle smartcard ai
supercalcolatori, dal web al "client-server" all'integrazione con sistemi
legacy, dai telefonini alle automobili, dalle applicazioni bancarie ai
videogames... Java rischia di finirci anche nelle mutande. Serve a tutto, è
tanto portabile (e non è uno slogan) per quanto riguarda le piattaforme
hardware, quanto è pervasiva in tutto ciò che ci circonda o che ci
circonderà nel prossimo futuro.
Inoltre, per quanto riguarda l'aspetto tecnico, se eviti di soffermarti alle
apparenti carenze (puntatori, gestione della memoria etc) potresti
constatare che effettivamente la presenza di certe cose (che come te ho
apprezzato lavorando più a basso livello) possono divenire inutili e
controproducenti in vari aspetti della programmazione, permettendo di
concentrarti su design ad un livello più alto e maggiormente object
oriented. Converrai che "puntatori" e accesso diretto all'hardware hanno ben
poco a che fare con modellazione OO o modellazione di un'applicazione; cioè
non tutte le volte che scrivi un gestionale o un videogame dovrai per forza
preoccuparti di come funziona questa o quella scheda video o di rete, o di
scrivere gli algoritmi di rendering 3D utilizzando pesantemente puntatori
etc. Spero che nn si pensi in giro che ogni gioco moderno si sviluppi in
casa il proprio motore 3d etc... basta vedere le realizzazioni per capire
che oggi la scrittura di un gioco assomiglia di più alla creazione di un
film che ad un programma per computer. Ad ogni modo corrono voci che il
multipiattaforma Java potrà prender piede anche su console, visto le
potenzialità di queste macchine, e potrebbe essere un argomento interessante
poter rilasciare lo stesso CD/DVD che funziona su ogni hardware
(Sony/MS/Nintendo).
Questo solo per dire che l'aspetto "logico" sta prendendo sempre più piede
nella scrittura di software di un certo livello, mentre per l'aspetto
tecnico ci sono società che si specializzando e che usano linguaggi
appropriati supportando gli standard che poi permetteranno l'integrazione
con qualsiasi piattaforma.
La semplicità è una qualità sempre. Java è nato con lo scopo di prendere ciò
che di buono c'è negli altri linguaggi esistenti, rimuovendo i difetti e le
inconsistenze.
Ovvio che se ti occupi della programmazione di driver per periferiche, puoi
anche reputare Java un linguaggio limitato; è una cosa che non sopporto però
che chi, dopo una lunga esperienza di C/C++, dopo un mese di smanettamenti
su Java, cominci a sputar sentenze; quindi ti consiglio di passarci almeno 6
mesi full-time prima di discutere dei "contro" con un programmatore Java, se
no il flame  è assicurato. Se dopo un ragionevole periodo sarai ancora
dell'opinione che Java è un linguaggio per lobotomizzati (espressione che
purtroppo mi è arrivata alle orecchie), beh allora consiglio sempre di
ritornare al C.
Ciao
Luigi.

... Java rischia di finirci anche nelle mutande. 
Come disse un mio docente universitario:
"La J di Java vi ossessionerà per tutta la vostra vita
lavorativa :p".
Accidenti! Immagina di parlare come Eta Beta, solo che al
posto delle P ci vanno le J:)
Addeso Jvado a Jvedere la Jpartita! JForza Italia (NON il
Jpartito pero';))) )!!!!!!!!!!!!!
--
..perché avevamo un cannone nel cortile.
De Andrade

IL SANTO wrote:
[SNIP]
Vista l'ora del post e il tono, a me sembra che il Java ti serva semplicemente
per comportarti da perfetto troll. A noialtri per lavoro.
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

 oggetti come in Java (in Java quasi tutto è un oggetto).[...]
Grazie per il tuo punto di vista. :-)
Visto che conosci il C, vatti a fare "un giro" in C++.
Ti piacera'.
                    IL SANTO

 Tuttavia riconosco che a volte la GC non è proprio il massimo :)
Grazie del tuo punto di vista.
                   IL SANTO

 Fausto.
Grazie per il tuo punto di vista :)
                    IL SANTO.

 Java il figlio, ovvero la nuova generazione.
Lo sto imparando e ho anche sottoscritto un NG (questo)
Ora mi "servono" un po' di "consigli e anche il tuo, in fondo, puo' andar
bene.
Grazie  :-)
                                  IL SANTO

 generalmente, supporto per la garbage collection...
Intendevo tutti quei "problemini" che si hanno quando si implementano
le strutture dati dinamiche, si fa overload di operatori, si ridefiniscono
i costruttori e bisogna fare attenzione a rilasciare la "memoria", a
"chi condivide con chi e cosa" ecce ecce...  :)
                       IL SANTO
p.s.
Grazie per la tua risposta (un po' di ironia non guasta ma aiuta
a vivere!) :-)

  Stefano
Ciao
                         IL SANTO


Meno male. Allora benvenuto tra noi.


 WRML : consente di creare applicazioni grafiche per il WEB di notevole
Sei sicuro che non sia VRML?

 ha scritto nel messaggio
news:adg0u2$8h2$1...@newsreader.mailgate.org...

Hai risposto alla persona sbagliata. Io sono il "mago" di VRML (c'ho fatto
la tesi).


E' un piacere ma, da come mi hai risposto, posso dedurre che non hai capito
il mio punto di vista. Mi spiace.
Sempre a disposizione,
    Fausto.