View Full Version : Sfida java vs c++ !
Secondo me c++ e' stato un errore crearlo. Java e' molto piu' pulito.
Inoltre il web ha scelto java come tecnologia portante x l'interattivita'.
Poi il c++ si basa troppo su c che e' un linguaggio che ha mooooolte limitazioni (data la sua eta').
Originariamente inviato da Mazza2
[B]Secondo me c++ e' stato un errore crearlo. Java e' molto piu' pulito.
Inoltre il web ha scelto java come tecnologia portante x l'interattivita'.
Sono d'accordo che sia molto + pulito...ma è più pulito perchè non ha bisogno di fare lavori che il C fa da decenni...ad esempio scrivere parti di sistemi operativi o roba simile...
Volendo si scrivono programmi C++ pulitissimi usando la STL...
Non so se parli di Applet o di Servlet... Le Applet ormai non le usa quasi + nessuno, hanno visto la loro inutilità e lentezza e in molti casi sono state soppiantate da Flash solo per un fatto estetico che, personalmente, reputo secondario rispetto all'usabilità...
Sulle Servlet...che dire...sembra (dico sembra perchè probabilmente potrebbero essere sostituite senza problemi, o con dei vantaggi, da altre tecnologie) che sia l'unico motivo per cui vale la pena di imparare Java...
Un altro utilizzo valido di Java è nei sistemi embedded...telefoniini e simili...soprattutto con processori compatibili in hardware con Java...
Originariamente inviato da Mazza2
[B]Poi il c++ si basa troppo su c che e' un linguaggio che ha mooooolte limitazioni (data la sua eta').
C e C++ non hanno limitazioni, tant'è vero che probabilmente la JVM su cui fai girare le tue applicazioni Java è stata scritta usando questi linguaggi...così come il sistema operativo su cui fai girare la JVM...
Quindi non parlerei di limitazioni bensì di problemi legati alla troppa libertà lasciata al programmatore (dovuta come già detto all'uso che si può fare di C e C++)...
In C++ comunque si possono utilizzare le STL che limitano molto questi problemi (basti pensare alle stringhe...anche se con un po' di esperienza di problemi non se ne incontrano più)...
Se si parla di portabilità...bene...un sorgente C o C++ sicuramente non è portabile come un'applicazione Java...ma ad esempio un sorgente scritto bene lo puoi compilare sotto qualsiasi sistema Unix o Linux...e volendo anche sotto Windows (ad esempio con i vari porting del GCC)...
Purtroppo in questo campo Microsoft e Borland hanno voluto fare troppo di testa loro (come al solito) ed hanno cambiato molti header di libreria...comunque si tratta soltanto di fare una ricerca nell'help per vedere quale libreria includere per le funzioni non riconosciute in fase di compilazione (chiaramente se si rimane su un programma classico di imput/output) oltre bisogna ricorrere ai vari porting per Windows di GCC...
in molte cose ke hai detto ti do pienamente ragione. Infatti quando io dicevo che "il c ha molte limitazioni dovute alla sua eta'" intendevo proprio dire che con il c un programmatore nn bravissimo puo' causare dei macelli indescivibili con puntatori, array senza fine,eccc... mentre con java questi errori sono stati troncati alla radice.
ilsensine
07-03-2002, 09:52
IMHO state confrontando due linguaggi dedicati ad applicazioni profondamente differenti
Infatti quando io dicevo che "il c ha molte limitazioni dovute alla sua eta'" intendevo proprio dire che con il c un programmatore nn bravissimo puo' causare dei macelli indescivibili con puntatori, array senza fine,ecc
ancora peggio paragonare il c al java. nb anche con il c++ il programmatore "non bravissimo" può scordarsi cosa sono i puntatori
Secondo me c++ e' stato un errore crearlo. Java e' molto piu' pulito.
e il c++ molto più efficiente, se usato a dovere. Come ti dicevo, hanno campi di applicazione profondamente differenti.
Inoltre il web ha scelto java come tecnologia portante x l'interattivita'.
Come sopra
Originariamente inviato da Mazza2
[B]in molte cose ke hai detto ti do pienamente ragione. Infatti quando io dicevo che "il c ha molte limitazioni dovute alla sua eta'" intendevo proprio dire che con il c un programmatore nn bravissimo puo' causare dei macelli indescivibili con puntatori, array senza fine,eccc... mentre con java questi errori sono stati troncati alla radice.
1° 'sta disputa java vs c++ ha un po' rotto le OO ...
tra l'altro non li vedo molto spesso "in competizione", nel senso che difficilmente per un progetto si stia a discutere se e' meglio adottare un linguaggio piuttosto che un altro. E' gia' chiaro dal tipo di progetto che si affronta.
2° ottenere buone performance in java e' piu' difficile di quanto si creda perche' occorre soprattutto fare un buon design. Il c++ anche codice scritto a ca**o e' veloce.
theClimber
07-03-2002, 11:23
Avendo utilizzato entrambi direi che ha ragione Kingv sul buon design fondamentale in Java.
Ho lavorato su progetti e prototipi di SW di analisi e simulazione di reti telefoniche e dati, e le prestazioni ottenute con un accurata pianificazione (e ristrutturazione del codice, non si nasce imparati :) ) dell'architettura SW non erano dispezzabili.
Sicuramente in C++ si sarebbe potuto guadagnare in velocità (o forse avremmo ottenuto le stesse prestazioni con meno attenzione all'architettura), ma i progetti avrebbero richiesto una fase di sviluppo (e debugging) sicuramente più lunga. Infatti questo non è stato un utilizzo di Java molto canonico....
Come ha detto cionci le Servlet sono un aspetto molto interessante di Java, ma insieme a tutta la tecnologia J2EE (Enterprise Java Beans, Java Server Pages, JDBC, etc.. ).
Linea guida di J2EE è l'indipendenza delle applicazioni dalla piattaforma HW/SW, di fondamentale importanza per evitare alle aziende di rimanere legati a un singolo produttore di HW, sistemi operativi, database....
(Discorso analogo per J2ME, tesa a standardizzare profili di JVM standard per cellulari e palmari, in modo che lo stesso programma possa essere utilizzato su ogni HW)
Qui la concorrenza con il C++ quindi non la vedo proprio, come viceversa non vedo assolutamente l'utilizzo di Java per occuparsi di aspetti si Sistema operativo e driver.
theClimber
07-03-2002, 11:28
Per quanto detto sopra mi rifiuto di votare...... ;):D
un'osservazione su quello che ha detto theClimber:
in un mondo perfetto probabilmente tutti programmerebbero da dio in assembler (se non direttamente in linguaggio macchina) e coi 486 ci faremmo girare oracle....
dato che non siamo in un mondo perfetto e che fare progetti grandi e' un casino, l'importanza di strumenti che permettano di contenere a limiti decenti i tempi di sviluppo e' vitale.
Che uno studente sia affascinato dalla potenza del c++ e non veda altro che quello e' comprensibile, ma chi ci lavora dopo un po' (molto poco) inizia ad apprezzare soluzioni piu' pragmatiche ai problemi.
Se rifate il sistema informativo del salumiere sotto casa ( :rolleyes: ) vi sara' grato che col vecchio pc gira ancora tutto perche' l'avete fatto in c++, ma se rifate quello di un'organizzazione importante non vi dira' nulla nessuno se il comprare un paio di server sun in piu' perche' java richiede piu' risorse ed e' lento vorra' dire che voi e la vostra ciurma di costosissimi consulenti ve ne andate fuori dalle OO 6 mesi prima... ;)
Originariamente inviato da ilsensine
[B]IMHO state confrontando due linguaggi dedicati ad applicazioni profondamente differenti
ancora peggio paragonare il c al java. nb anche con il c++ il programmatore "non bravissimo" può scordarsi cosa sono i puntatori
e il c++ molto più efficiente, se usato a dovere. Come ti dicevo, hanno campi di applicazione profondamente differenti.
Come sopra
infatti il c col java nn ha nulla a che fare,.,. sono due universi lontanissimi.,,.,. era x dire che c++ supporta il c e quindi molti errori che si possono fare in c si fanno anke in c++
Originariamente inviato da Mazza2
[B]infatti il c col java nn ha nulla a che fare,.,. sono due universi lontanissimi.,,.,. era x dire che c++ supporta il c e quindi molti errori che si possono fare in c si fanno anke in c++
Si può fare tutto facilmente senza richiamare alcuna funzione caratteristica del C...tuttavia, volendo, si può ricorrere a queste funzioni che, in alcuni casi, possono risutare molto utili...
java è nato dopo......
Mi ricorda in un certo senso Unix->AmigaDos.....
Non ho capito xchè ci si ostina a mettere in evidenza gli errori nel C/C++......
Qualsiasi programma scritto in qualsiasi linguaggio si voglia quando viene interpretato e mandato in esecuzione viene eseguito da qualcosa: chi mi dice che quel qualcosa sia esente da problemi?
A mio parere il C++ dà la possibilità=libertà di sbagliare a volontà;)
theClimber
07-03-2002, 22:28
Kingv, hai interpretato e chiarificato perfettamente il mio intervento sul perchè è stao utilizzato Java nei progetti su cui ho lavorato. :cool:
Originariamente inviato da kingv
[B]...
Che uno studente sia affascinato dalla potenza del c++ e non veda altro che quello e' comprensibile, ma chi ci lavora dopo un po' (molto poco) inizia ad apprezzare soluzioni piu' pragmatiche ai problemi.
E infatti per la tesi di Laurea ho sviluppato un simulatore in C++. Potevo permettermi il tempo necessario allo sviluppo ed al Debugging, e inoltre avevo delle macchine scarsissime (dei 486 e delle vecchissime sun) su cui farlo girare ;)
[B]
...
un'organizzazione importante non vi dira' nulla nessuno se il comprare un paio di server sun in piu' perche' java richiede piu' risorse ed e' lento vorra' dire che voi e la vostra ciurma di costosissimi consulenti ve ne andate fuori dalle OO 6 mesi prima... ;)
Nessuno dei clienti che abbiamo avuto si è mai fatto problemi sul comprare nuove macchine con processori al top e quantità smodata di RAM.
Gemini77
07-03-2002, 22:52
Originariamente inviato da theClimber
[B]
Nessuno dei clienti che abbiamo avuto si è mai fatto problemi sul comprare nuove macchine con processori al top e quantità smodata di RAM.
Sembra di sentir parlare il mio capo :) ... cosa che ho verificato di persona ... ed è vero :) (purchè il tutto rientri nell'ammortamento della ditta :))
theClimber
07-03-2002, 22:58
Chiaro che deve rientrare nell'ammortamento, ma quello che il cliente investe sulle macchine lo risparmia sui costi e sui tempi di sviluppo (In particolare se richiede customizzazioni particolari) ;) .
Gemini77
07-03-2002, 23:17
Originariamente inviato da theClimber
Chiaro che deve rientrare nell'ammortamento, ma quello che il cliente investe sulle macchine lo risparmia sui costi e sui [b]tempi di sviluppo (In particolare se richiede customizzazioni particolari) ;) .
Come darti torto :) :) :)
In sostanza:
Il cliente ha costi "contenuti" e anche per noi sviluppatori le cose si semplificano (a parte l'ultimo problema che mi sta facendo uscire pazzo :D)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.