Newsgroup: it.comp.lang.delphi
Titolo: Delphi e Java: loro differenze

Salve a tutti!
Quali sono le differenze principali tra Java e Delphi?
Sono due linguaggi paragonabili e quindi in un certo senso "concorrenti"
oppure sono destinati a compiti diversi?
Lo chiedo perché vorrei imparare uno dei due, anche a scopi professionali,
ma non so quale scegliere (magari tutti e due, ma per i primi tempi
preferirei dedicare le energie verso uno solo).
Magari Java serve per le applicazioni Internet mentre Delphi per creare
programmi al di fuori di Internet (scusate i termini un po' imprecisi) ?
Sono richiesti di piů i programmatori Java o quelli Delphi?
Qual'č piů difficile da imparare?

Qual'č piů difficile da imparare?
Delphi ingloba come linguaggio di programmazione una
evoluzione del Pascal, ispirata all'Object Pascal di Apple.
Pascal e' sempre stato un linguaggio con fini didattici,
molto facile da imparare.
Java e' un parente stretto di C++, totalmente orientato agli
oggetti, e quindi piu' difficile da utilizzare.
In ogni caso, torno a ribadire che confrontare linguaggi e
ambienti di programmazione ha poco senso.
Bisognerebbe confrontare un particolare ambiente di
programmazione Java e Delphi, per ottenere un confronto
giusto.
--
CyberWalkie - walkietalkie(at)
libero.it

 Java, decisamente.
Scusa per l'imprecazione, ma non ne indovino una!
Io mi sono messo un po' a studiare il Pascal diversi mesi fa in previsione
di passare a Delphi, cosa che poi ho fatto da un paio di mesi (Delphi4 e
manuale del Reisdorph, "guida completa").
L'ho fatto perché sentivo parlare molto bene di Delphi e poi anche in
prospettiva lavoro (il Visual Basic non mi piaceva, mentre il C++ è forse
troppo ostico come primo linguaggio; magari tra un po', se servirà).
Ora vengo a sapere che forse ho sbagliato perché dovevo puntare su Java!
Anche se non sono decisamente un esperto di Delphi (forse sarebbe meglio
dire OP?) mi secca doverlo abbandonare in favore di Java, proprio ora che
cominciavo a fare le mie prime applicazioni (anche se non sono ancora
arrivato a fare quella che nel libro viene definita Programmazine Avanzata:
uso di Com e ActiveX, Database, DLL e Componenti), e poi anche perché mi
piace veramente.
A questo punto mi sento un po' disorientato. Che fare? Puntare decisamente
su Java e lasciar perdere Delphi (se il suo futuro è segnato, meglio non
perderci tempo più di tanto)?
Oppure cercare di portarli avanti entrambi contemporaneamente?
Non correrei il rischio di fare confusione e non capirci più un tubo?
Vuoi vedere che se punto su Java poi succede che il C# della M$ prende piede
e soppianta entrambi??
Mi sembra di capire che decidere quale linguaggio imparare (non solo a scopi
professionali, ma anche per non sentirsi un po' emarginato dalla comunità,
una volta che il "tuo" linguaggio non fa più parte di quello che va per la
maggiore) sia sempre più un azzardo.
Ciao
PJ

maggiore) sia sempre più un azzardo.
Difficile capire bene che cosa va imparato e cosa no, quando
non lo si fa a livello professionale.  
Chi con i linguaggi di programmazione ci lavora, spesso, e'
obbligato a delle scelte che lo portano, inevitabilmente, a
confrontarsi con cio' che va per la maggiore.
Java e' una di queste cose.
--
CyberWalkie - walkietalkie(at)
libero.it

 Java e' una di queste cose.
Da inesperto mi viene da pensare che forse è bene magari conoscere diversi
linguaggi e approfondirne solo qualcuno (un po' come un interprete
traduttore che magari sa inglese francese,  tedesco ecc. ma ne usa solo 2 o
3). O mi sbaglio?
PJ

 maggiore) sia sempre più un azzardo.
Ci sono i consulenti informatici per questo! :-)
--
- Carlo -
c.b...@libero.it

una sua gestione particolare ed č sempre soggetta a cambiamenti ...
Ciao, interessante discussione!
Premessa: sto' sviluppando un software che deve comunicare con un
dispositivo intelligente collegato alla seriale del pc. E'
un'applicazione che deve lavorare anche con files di testo, database
access, collegamenti a fogli di Excel ed altre cose molto "desktop".
Delphi si sta' rivelando ottimo per fare tutto questo. Unica
particolarita': ho una modalita' in cui e' possibile comporre
manualmente il messaggio da inviare a questo dispositivo, in base a
scelte successive. Progredendo con le scelte, si forma una certa "base
di conoscenza" del messaggio (e nello stesso tempo la conoscenza
acquisita man mano, serve per poter conosce quali parti del messaggio
ancora devono essere richieste), che termina con il messaggio
compilato completamente e spedito. Avendo diverse entita' che possono
formare il messaggio, ho cominciato ad affrontare questo problema con
un po' di OOP. 
Senonche' un mio collega (che sta' studiando per la seconda laura) ha
cominciato a tampellarmi di frasi del tipo: "Ho parlato con un mio
guru dell'informatica all'universita' e mia ha chiesto come mai ti
ostini a usare Delphi, ha detto che dovresti usare Java". Ora, io
capisco che Java sia una manna per creare applicazioni OOP, ma non
conoscendolo, ed avendolo visto girare solo su web, vorrei sapere se
e' possibile creare un'applicazione stand-alone che si installi e giri
su PC. Nel mio caso cosa potrei fare? Scrivere tutto in Java?
(possibile?). Scrivere il codice OOP in Java e il resto in Delphi? (e
come li interfaccio i due???).
Need info.... thanks! :)
Chris

rischierebbe di farti confusione.
Secondo me no, anzi, imparare Java contemporaneamente puo'
rendere migliore la programmazione a oggetti in Delphi.
--
CyberWalkie - walkietalkie(at)
libero.it

su PC. Nel mio caso cosa potrei fare? Scrivere tutto in Java?
Certo che puoi farlo e il bello e' che puoi farlo gratis,
visto che l'SDK di Java lo scarichi gratuitamente dal sito
della Sun.
--
CyberWalkie - walkietalkie(at)
libero.it

 rendere migliore la programmazione a oggetti in Delphi.
Ho dato una prima occhiata a Java e per quanto mi riguarda l'impressione è
che sia molto simile a Delphi, direi quasi che conoscere un po' di delphi mi
sembra che faciliti l'apprendimento di JAva (non vorrei dire cavolate, ma
questa è la mia personalissima impressione da principiante).
Sono rimasto allibito nel vedere che le differenze sembrino - almeno "a
prima vista" - così sottili!
Forse mi sbaglierò, ma non credo sia molto difficoltoso scrivere string
prima invece che dopo, oppure fare le parentesi graffe invece di begin end,
ecc.
(so anche un pochettino di C++ (anzi, di C, visto che mi sono fermato poco
prima di fare le Classi) e forse mi tornerà utile anche quello)
Certo, è necessario avere chiaro in mente che si tratta di due linguaggi, ma
mi verrebbe quasi da dire che Delphi è in un certo qual modo "propedeutico"
a Java, per chi non è molto esperto (correggetemi se sbaglio), soprattutto
se chi - come me - ha cercato sempre di apprendere il Delphi sforzandosi di
pensare in termini di OOP.
Ciao

 rendere migliore la programmazione a oggetti in Delphi.
Ovviamente è una questione di opinioni, io rimango della mia idea.
Sono troppe le differenze tra Delphi e Java nell'OO per poterle apprendere
contemporaneamente: già per un beginner la OO è un bel mattone.
Differenze nel tipo di creazione, nella distruzione (GC contro distruzione
manuale), tipi di ereditarietà e molto altro.


 pensare in termini di OOP.
E' giusto, devi sforzarti di apprendere le features di ciascun ambiente. Se
non analizzi le caratteristiche che distinguono i vari ambienti allora
tenderai sempre a fare generalizzazioni come quelle di cui sopra.
Potresti dirmi (ad esempio) che per te Delphi è uguale a VB, ma per evitare
flame ti risparmio i particolari (se non quello che Delphi è OO mentre VB
no!) che distinguono i due ambienti.
Ciao


 no!) che distinguono i due ambienti.
Ho capito. In pratica diciamo che lo studio in parallelo di questi 2
linguaggi può essere ancora più produttivo dell'apprendimento di uno solo a
patto di non generalizzare troppo e dare le cose un po' scontate con troppa
fretta, altrimenti si ottiene l'effetto opposto.
Cercare di confrontare le differenze più che adagiarsi su comode e
affrettate conclusioni del tipo "toh, questo è uguale a Delphi".
Sicuramente, come dici giustamente tu, richiederà uno sforzo maggiore, ma
magari si comprendono meglio entrambi.
Ciao

 no!) che distinguono i due ambienti.
Ho capito. In pratica diciamo che lo studio in parallelo di questi 2


manuale), tipi di ereditarietà e molto altro.
Tutti questi aspetti non rappresentano, a mio parere, dei
grossi vincoli.
--
CyberWalkie - walkietalkie(at)
libero.it

questa č la mia personalissima impressione da principiante).
In parte e' cosi'.
I linguaggi ad alto livello si somigliano un po' tutti.
I concetti di base sono fondamentalmente gli stessi.
Con Java la cosa piu' difficile e' il tipo di approccio alla
soluzione dei problemi (programmare in modo totalmente OO e'
abbastanza complicato, se non si vuol pasticciare).
--
CyberWalkie - walkietalkie(at)
libero.it

 CyberWalkie - walkietalkie(at)
libero.it

veniamo alla vera domanda, cosa vuol dire programmare completamente in OO?
Vuol dire non appoggiarsi al modello procedurale.
Java, imponendoti solo oggetti, ti pone un limite fisico
invalicabile.  
Molti dei linguaggi OO oggi esistenti propongono, invece, un
approccio multi-paradigma (C++, Object Pascal, per esempio).  
Questo significa che le classi e gli oggetti vengono utilizzati
come strato di base per la programmazione (vedi le VCL), ma il
modo di programmare rimane, nella maggior parte dei casi,
procedurale.  
Sono pochi i programmatori che, all'idea di iniziare un nuovo
progetto, pensano a progettare delle classi adeguate a risolvere
i loro problemi.
In realta' aziendali medio-grandi questo puo' anche succedere, ma
dipende dal ruolo che svolgi.
Voglio dire : chi progetta gerarchie di classi, lo fa per
mestiere, chi usa le classi, lo fa per mestiere.
E' raro che ci sia una persona che, a livello professionale,
possa fare l'uno e l'altro (principalmente manca il tempo).
--
CyberWalkie - walkietalkie(at)
libero.it

 procedurale.
Ma questo secondo te rappresenta un limite, un vantaggio, un modo superato
di programmare?
In futuro quasi tutti i linguaggi saranno OO? E' questa la vera evoluzione
dei linguaggi?

 a programmare bene.
Personalmente posso dire che quello che ho imparato sulle classi in Object
Pascal - dopo un breve periodo di "rodaggio" - l'ho trovato molto intuitivo
e naturale oltre che molto stimolante. Ad es.concetti di ereditarietà,
polimorfismo ecc., lì per lì incutono timore, poi ci si rende conto che sono
molto corrispondenti con la vita reale e molto meno ostici di quanto
sembrino ad un principiante.
Certo, il passo dalla teoria alla pratica è il momento critico, specie per
un
neofita, quando sei costretto a tradurre il problema in termini di classi.
Quello che mi chiedo io è se sia giusto cercare di risolvere TUTTI i
problemi con strategie OO. Cioè, non è che magari i linguaggi multipradigma
sono più elastici (e qoindi in un certo senso più completi) di quelli
esclusivamente OO come Java?
Se così fosse, allora l'OP, il C++ , ecc. dovranno avere ancora un discreto
futuro, altrimenti dovremo assistere ad un loro progressivo aggiornamento in
quella direzione?
In poche parole, il linguaggio ideale è quello esclusivamente OO o quello
multiparadigma?
E perché tutto questo entusiasmo verso Java? Perché è esclusivamente OO?

multiparadigma?
Il linguaggio ideale non esiste.
Dipende da cio' che ti serve.
--
CyberWalkie - walkietalkie(at)
libero.it

E' questa la vera evoluzione dei linguaggi?
Nessuno puo' dire quale sia la vera evoluzione dei linguaggi.
Ad oggi, la programmazione orientata agli oggetti si e'
dimostrata vincente.  
In futuro si vedra', puo' darsi che allora saranno i computer a
progettare/compilare/testare/debbuggare gli uomini...
--
CyberWalkie - walkietalkie(at)
libero.it

futuro (persino il COBOL sta migrando verso l'object-oriented).
Giura! Ho lavorato a lungo con RMCOBOL tra la fine degli '80 e inizio
'90... Object Oriented non riesco proprio a immaginarmelo eheheheh.
Massimo.

'90... Object Oriented non riesco proprio a immaginarmelo eheheheh.
Gia' e credo anche che sia stato ratificato come standard (col
nome di OOCOBOL, o qualcosa del genere).  Sapevo, comunque, che
il CODASYL si stesse affannando in questa direzione gia' da
diversi anni.
Ti dico solo che la pagina :
http://home.swbell.net/mck9/cobol/ooc/ooc.html
Inizia con :
"When I first heard about Object Oriented COBOL, it sounded like
an oxymoron."
:-)
--
CyberWalkie - walkietalkie(at)
libero.it

Leggete questa (Java verrà starngolata da Microsoft?):
ANSA) - New York, 18 Lug - Niente Java su Windows Xp. Un portavoce di
Microsoft ha dichiarato che il nuovo sistema operativo, in vendita da
ottobre, non supportera' Java, il linguaggio di programmazione utilizzato
per l'animazione Web. Lo riporta il Wall Street Journal. La societa' di
Bill Gates avrebbe motivato la mossa come una 'decisione d'affari', che
segue la disputa legale dell'anno scorso tra Microsoft e Sun Microsystems,
il gigante informatico creatore di Java. Al termine del processo Microsoft
ebbe il via libera per l'utilizzo di versioni datate delle applicazioni
Java nei suoi prodotti, per sette anni. Java ha esercitato un ruolo
centrale all'interno del processo antitrust contro Microsoft. Lo scorso 29
giugno una corte d'appello federale ha riconosciuto il gigante di Seattle
colpevole di aver agito illegalmente nel tentativo di contrastare la
diffusione di Java. Microsoft ha sempre visto Java come un pericolo, data
la capacita' di questo linguaggio di programmazione di operare su diversi
tipi di sistemi operativi. In seguito alla decisione annunciata oggi,
chiunque navighera' su Internet con un computer che utilizzi Windows Xp non
sara' in grado di visualizzare pagine Web che contengano codici Java.
Microsoft ha affermato che ?molti utenti non hanno bisogno dei codici Java,
e comunque tali codici saranno facilmente reperibili presso i produttori di
Pc e su Internet?. Diverso il parere di Jan Vitek, professore di scienze
informatiche all'universita' di Purdue: ?questa strategia favorisce i
linguaggi di programmazione di Microsoft, e causera' inconvenienti ai
consumatori?. ?Le societa' Internet che vogliono le proprie pagine Web
accessibili al maggior numero possibili di utenti- ha aggiunto Vitek -
potrebbe rinunciare all'utilizzo di Java?. (ANSA).

Leggete questa (Java verrà starngolata da Microsoft?):
ROTFL !
--
CyberWalkie - walkietalkie(at)
libero.it

elettrodomestici?
Hai ragione su tutto, la differenza tra i 2 linguaggi e' piu'
concettuale che pratica, pero' Java e' nato come linguaggio di
supporto per il modello di rete Jini, che Sun ha pubblicizzato come
"attacca la caffettiera alla rete e vai". Quindi non direi che Java
serva per gli elettrodomestici, ma per tutto quello che potrebbe fare
parte di Jini (e quindi anche gli elettrodomestici)
Ciao
--
Piero Bonanno
bop...@libero.it
pie...@tiscalinet.it
bpie...@hotmail.com
______________________________________________
"Madame, lei ha tra le gambe uno strumento
che puo' offrire piacere a migliaia di persone,
e tutto quello che sa fare e' grattarlo"
- Sir Thomas Beechan a una violoncellista

dei linguaggi?
Il fatto e' che scoprire un nuovo paradigma spesso aiuta a pensarne
uno migliore. Puo' darsi che la OOP duri per decenni (perche' si
adatta molto bene ai problemi reali, dove la progr. proc. ad un certo
punto non ce la fa +) ma non e' detto che sia il punto di arrivo.
L'importante e' annusare sempre le novita' e capire quando una
tecnologia sta tramontando.
La progr. proc. si usa ancora, ma e' sempre + marginale e limitata ad
ambiti specifici.
Poi ti direi di non imparare un linguaggio per lavorare, ma di
imparare l'informatica, e quindi muoverti nella direzione +
conveniente per te. Magari imparerai 3, 4, 5 linguaggi, piu' o meno
bene in base a cio' che ti viene richiesto.
Mi rendo conto che non e' la risposta + rassicurante, ma purtroppo
l'informatica non e' un settore assestato. O la tieni sotto controllo,
o ti sommerge.


 o ti sommerge.
Grazie del consiglio  ;-)
Ciao