Newsgroup: it.comp.java
Titolo: Domanda

Sono in dubbio se studiare il linguaggio C o iniziare direttamente con il
Java, per questo vorrei sapere se è possibile affrontare Java senza una
precedente conoscenza del C: in effetti mi è stato detto che conoscere
quest'ultimo facilita l'apprendimento del primo.E' vero?
Grazie.

VINCENZO wrote:

Può darsi, ma secondo me basta la conoscenza di un linguaggio
procedurale decente. Se hai già questo prerequisito mi sembra una fatica
inutile studiare il C solo in funzione propedeutica a Java.
Ciao, Cristian
-- 
Cristian Veronesi ><((((º> 
http://www.crpa.it
General rule for life: avoid pain for as long as possible
unless doing so will ultimately cause more pain.


se lo scopo e` imparare Java, allora studia Java. Lascia stare il C che
e` un linguaggio (per molti versi) 1000 volte piu` complesso e che ti
porta ad avere uno stile di programmazione che non c'entra nulla con
quello adottato da Java. Certo, come diceva un mio prof di universita`,
"si studia un linguaggio di programmazione primariamente xche` cosi` e`
piu` facile poi impararne un altro", quindi se gia` sai programmare
sicuramente programmare in Java ti risultera` da subito piu` facile, ma
anche partire da zero, con Java come primo linguaggio, non credo sia poi
cosi` drammatico... direi tutt'altro.
-- 
Ciao,  |  I play Russian roulette everyday, a man's sport,
Matteo |  With a bullet called life, yeah called life, (SUGAR)


La sintassi di Java per quanto riguarda il controllo del flusso è rimasta
invariata dal C++ (che è la medesima del C).
Personalmente credo che il consiglio che ti è stato dato sia un po' ambiguo
perché non si può imparare a lavorare con un linguaggio che incorpora la
programmazione strutturata a comandi e poi pensare di passare ad un object
oriented. 
Non è che sia dannoso, però si rischia di portarsi dietro delle soluzioni
che per un linguaggio come può essere il C vanno bene ma non per Java.
Se proprio vuoi affrontare un altro linguaggio prima del gran passo verso
Java consiglierei il C++.

>>>>> "V" == VINCENZO  <enz...@TOGLIlibero.it> writes:
V> Sono in dubbio se studiare il linguaggio C o iniziare direttamente con il
V> Java, per questo vorrei sapere se è possibile affrontare Java senza una
V> precedente conoscenza del C: in effetti mi è stato detto che conoscere
V> quest'ultimo facilita l'apprendimento del primo.E' vero?
Conoscere  il  C ti  facilita  per la  _sintassi_  ma  può essere  una
_ostacolo_ per apprendere il paradigma ad oggetti.
Java  è ottimo  per  imparare.  E' stato  pensato  per consentire  una
stesura più  rapida e sicura  del codice rispetto  al C ed al  C++ del
quale elimina molte trappole.
Nota di colore :
Nel dipartimento da dove sono  uscito il primo corso di programmazione
ha  abbandonato Pascal  e  FORTRAN in  favore  del C,  poi  il C++  ha
rimpiazzato il C ed infine il C++ è stato rimpiazzato dal Java.
Nota personale :
Il C è  una brutta bestia ma quando lo impari  è divertentissimo ed ha
una sua bellezza, a volte maligna. Java è _bello_, è pensato con molta
intelligenza basandosi su 20 anni  di esperienza con vari linguaggi di
programmazione.  Mentre  il C++  è un tentativo  (per me  riuscito non
bene) di estendere  una cosa buona, Java è una  cosa nuova, coerente e
che, pur  non introducendo novità eclatanti (o  forse nessuna novità),
raccoglie in maniera intelligente molte buone idee.
\begin{echelon}
Ft. Bragg quiche cracking explosion KGB ammunition Peking NSA nuclear
plutonium Nazi class struggle DES World Trade Center Marxist
\end{echelon}
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+

raccoglie in maniera intelligente molte buone idee.
Su questo sono d'accordo.

 
no: questo proprio non e` vero.
-- 
Ciao,     |   And the devil in black dress watches over
 Matteo   |   My guardian angel walks away
          |   Life is short and love is always over in the morning
          |   Black wind come carry me far away

no: questo proprio non e` vero.
Lo so anch'io che template ed il supporto agli oggetti, rtti, overload
degli operatori o delle funzioni o quant'altro sono delle caratteristiche
innovative, ma io facevo riferimento ad un qualsiasi programma scritto in C
che viene riscritto in C++ - rimanendo sul metaparadigma strutturato,
ovviamente -.
Come potrai notare le differenze si riducono alla libreria o ad un migliore
supporto dei tipi, specialmente per il booleano o per quelli
personalizzati.
Ciao.

 Ciao.


compilatore C++. se intendi questo ok, ma poi, proprio per le
In parte mi riferivo a questo ma nello specifico in:
#include <stdio.h>
int main(void) {
     printf("Hello World");
     return 0;
}
#include <iostream>
using namespace std;
int main(void) {
     cout << "hello world" << endl;
     return 0;
} 

 
ok, forse e` meglio.


 rimpiazzato il C ed infine il C++ č stato rimpiazzato dal Java.
Mi hai convinto.
Thank you.

 writes:
FF> Se il C era buono allora i casi sono due: o sei troppo ottimista, o il tuo
FF> filtro è assai largo.
Forse mi sono recato in luoghi dove non hai mai messo piede :).
Il  C  è  bello  per  la  sua  coerenza  sintattica,  la  capacità  di
controllare il codice  (con alcune architetture è ancora  vero, con le
architetture  Intel... Ma  che si  aspetta  a buttarle  via ????),  la
velocità dello stesso.
FF> Basta guardare il supporto dei tipi di dato primitivi, la dichiarazione di
FF> tipi personalizzati o la libreria standard stessa -che mi fa cadere le
FF> braccia-. 
Il C non  si fa seghe mentali. "I dati li  rappresenti con stringhe di
byte,  quindi quello  ti do,  e ricordati  che sei  tu, programmatore,
quello col sale tra le orecchie, non il computer". 
Il C  è come la  Forza, non scorre  in tutti e  ci sono quelli  che si
lasciano tentare dal lato oscuro :)
FF> Inoltre nessuno ti vieta di fare la programmazione strutturata in C++ dove
FF> le differenze tra lo stesso ed il suo predecessore sono minime e si
FF> riducono alla sola libreria.
Non è il  caso di rischiare di buttare via cicli  macchina. Se li devo
buttare via allora passo a Java.
\begin{echelon}
terrorist security NORAD domestic disruption assassination Clinton
class struggle Serbian nuclear Waco, Texas counter-intelligence
Ft. Meade Saddam Hussein North Korea quiche


> 
M> ROFL
Beh, vediamo....  Anni  fa, circa nel '90, in  un Dipartimento Ribelle
dove i  sistemisti erano studenti ed i  sottodomini internet nascevano
prima  dei domini  di livello  superiore, uno  studente che  aveva dei
problemi  col software  Usenet chiese  in alcuni  gruppi adatti  se ci
fosse  qualcuno che usava  lo LSX3020  (Olivetti) utilizzato  per vari
scopi tra  cui server NNTP. Risposero solo dalla Namibia ...
\begin{echelon}
Panama Semtex cryptographic CIA Honduras assassination supercomputer
NORAD NSA Rule Psix ammunition Ft. Meade cracking explosion genetic


I primi Mac OS.
Beh, erano le librerie, non credo il kernel! E taaaanto tempo fa.

 quale elimina molte trappole.
Ma guarda un po' chi si vede!
Sempre sulle stesse posizioni riguardo Java e gli altri linguaggi?
Ultimamente anch'io ho cominciato a usare Java *seriamente* (tesi di laurea in
Ing. Informatica), e la conoscenza del C (e del C++) non mi ha aiutato
granche'. Ancora oggi sono riuscito a litigare con un Array, ho sentito la
mancanza delle union (ma forse non ho letto abbastanza il manuale), ho
maledetto gli ingegneri della Sun, e poi ho fatto piantare Forte. Come e'
possibile che se non ci sono puntatori ogni volta che cerco di fare qualcosa di
originale riesco a generare una NullPointerException? Non c'e' spazio per la
fantasia del programmatore.
In compenso devo ammettere che il linguaggio e' semplice ed elegante, e gli
strumenti di supporto (Forte, JBuilder e simili) sono molto validi. Se dovessi
fare lo stesso lavoro in C o C++ rischierei di accavallare puntatori doppi e
tripli e perdere il doppio del tempo in fase di debug.
Ora devo solo farci un po' l'abitudine... (niente int argv e char **argc...
aaaarrrrgggccchhh!!)
Insomma, se cominci da zero, e' piu' facile partire da Java ed eventualmente
passare al C/C++ se ti sembra che manchi qualcosa in
potenza/versatilita'/prestazioni.

 
G-R-A-N-D-E !!!
Ti prego: concedimi di includerla nella firma!!!!! :-))


 
mi fido sulla parola!
...mi sembra di ricordare un Think Pascal o qualcosa del genere...
xo` non ho mai avuto l'onore (o l'onere... non so`!) di lavorare con un
Mac!


buttare via allora passo a Java.
La velocità di C++ è la stessa di un programma C - almeno in teoria -.
Detto questo ti devo dare ragione perché i compilatori non eseguono ancora
alcune ottimizzazioni che per il C++ sono fondamentali.
PS: Non pretendo una risposta a questo messaggio, tanto ho capito che
abbiamo le idee completamente differenti sui due e continueremo a pensarla
così. Personalmente credo che ormai sia una guerra di religione.
Colgo l'occasione per salutare tutto il newsgroup e specialmente le persone
che mi hanno dato una mano (Gian Umberto Lauri, Christian Veronesi, Matteo,
Castagna, Tommaso Paba, Piero Cavina, Carlo Jelmini, Ugo Landini, Pasteur e
tutti quelli che al momento mi sfuggono) dato che questa è l'ultima volta
che ci sentiamo su tale gruppo di discussione. 
Distinti Saluti.
 

 writes:
GB> Ma guarda un po' chi si vede!
Piacere reciproco, trasmetti i miei auguri agli altri!
GB> Sempre sulle stesse posizioni riguardo Java e gli altri linguaggi?
Yessir!
GB> Non c'e' spazio per la
GB> fantasia del programmatore.
Un tipo diverso di fantasia, nonostante la similitudine sintattica sono
diversissimi.
Quanto alle union, (ovvero un qualcosa di mutevole a seconda di come
ti serve) forse la classe Object ti puņ aiutare...
\begin{echelon}
Honduras kibo BATF NORAD Legion of Doom spy Mossad Cocaine Noriega
radar Waco, Texas Khaddafi genetic $400 million in gold bullion Soviet


> lasciano tentare dal lato oscuro :)
<pocoserio>
La frase sopra č distribuita sotto GNU GPL :) :) :) :) (mi hanno regalato
la trilogia per natale, si nota :) ? )
</pocoserio>
FF> Il C++ č ancora peggio dato che il C puň essere considerato come un suo
FF> sottoinsieme.
Questo č vero. Il C++ č una estensione del C e quindi lo racchiude.
A parer  mio č  diventato un carrozzone  troppo grosso, in  molti sono
convinti che occorra un Language Lawyer per coglierne ogni sfumatura.
FF> che mi hanno dato una mano (Gian Umberto Lauri,
Noooo, la emme nooooooo :) ! (scusa, ma non sai le volte che devo far
correggere il mio nome in documenti...)
 
Buone feste a tutti...
\begin{echelon}
SEAL Team 6 smuggle Saddam Hussein munitions BATF ammunition Albanian
Honduras Qaddafi strategic Delta Force assassination bomb explosion
plutonium


> I primi Mac OS.
PC> Beh, erano le librerie, non credo il kernel! E taaaanto tempo fa.
Credo anche il kernel (se non era in assembler...). E stranamente Windows è
pieno di definizioni "PASCAL"...
\begin{echelon}
Nazi North Korea Uzi AK-47 kibo SDI Serbian terrorist [Hello to all my
fans in domestic surveillance] assassination quiche Saddam Hussein
cryptographic Ft. Meade explosion
