Lord Rust
Utenti-
Posts
5 -
Joined
-
Last visited
Contact Methods
-
AIM
LordRust
-
MSN
x3me89@gmail.com
-
Website URL
http://lordrust.splinder.com
-
ICQ
0
Lord Rust's Achievements
Nuovo Arrivato (1/7)
-
Su questo punto sono pienamente d'accordo. Io avevo infatti asserito che prima di passare al C++ non sarebbe una cattiva idea imparare a fondo il C; qualcuno ha pero' ribattuto che anche partendo dal C++ non si incontrano difficolta'. Questo e' vero quando si imparano le basi del C++, che spesso e volentieri coincidono con la programmazione strutturata in C; pertanto iniziare dal C o dal C++ e' virtualmente la stessa cosa, dato che all'inizio si impara sempre e comunque la programmazione strutturata (ammesso che non si abbiano gia' basi di programmazione strutturata molto forti e si desideri passare alla OOP in C++ immediatamente). Per quanto riguarda la maggiore velocita' del C e il fatto di costruirsi classi da soli: sono d'accordo allorquando si presenti la necessita' di codice particolarmente veloce, cosa che personalmente non mi e' mai capitata; in ogni caso il costruirsi classi autonomamente non e' una cosa poi tanto impossibile, visto che si possono tranquillamente usare le struct facendo passare un loro puntatore per una funzione.
-
Beh, il tutto e' poi secondo me relativo anche al soggetto che si appresta ad imparare il linguaggio... Ad esempio se gia' si conoscono linguaggi tipo Pascal/Delphi (e magari le loro estensioni ad oggetti) si puo' cominciare direttamente con la OOP in C++ (o magari, perche' no, col Java), mentre chi e' completamente a digiuno di programmazione dovrebbe trovarsi meglio iniziando col C++ usando solo la programmazione strutturata per poi avvicinarsi pian piano alla OOP.
-
Beh, certo che il C++ e' OOP. Quello che ho detto (forse mi sono espresso male) e' che nel Java le conoscenze di OOP sono fondamentali visto che il linguaggio si basa unicamente sugli oggetti, mentre nel C++ sono una sorta di "feature". Le strette basi del C++ restano comunque in un contesto di programmazione strutturata: ad esempio il main(), ossia l'entry point, non e' classificabile in alcun modo nella OOP, mentre nel java il Main() fa sempre e comunque parte di un oggetto. In Java tutto e' un oggetto, in C++ no, anzi, sono gli oggetti ad essere costruiti "appoggiandosi" sulle strutture preesistenti. Potrebbe sembrare un dettaglio, ma il poter mixare programmazione strutturata a OOP non e' cosa da poco. Questo significa che e' possibile utilizzare il C++ anche se non si dispone di conoscenze appropriate circa la OOP (cosa che e' stata fatta per un anno intero nel corso di specializzazione informatica della mia scuola).
-
Buona parte dei programmi commerciali e' scritta in C/C++. E massima parte dei programmi open source e' scritta in C/C++. Beh non e' questione di nomi e identificatori, anzi. O meglio: rimangono intatte le strutture come la dichiarazione di funzione, struct, preprocessing e compagnia, la funzione printf del C diventa l'output stream cout del C++ ma la prima resta comunque utilizzabile anche in C++ (e questo vale per molto altro). Le basi di programmazione strutturata del C sono fondamentali anche in C++. Io ho cominciato dal C, e devo dire che secondo me e' un linguaggio molto migliore del C++ sul quale "farsi le ossa", vuoi perche' quando sbagli non ricevi errori contenenti nomi di classe dalle origini sconfinate che intortano solo gli occhi, vuoi perche' e' piu' "grezzo" e permette da subito di sviluppare una certa "non-abilita'" a scrivere codice che verra' affinata col tempo e con la pratica. Partendo subito dalla OOP e da cose del genere invece secondo me il cammino e' molto piu' tortuoso.
-
Sono sempre stato un programmatore autodidatta e mi sono sempre poco curato di cosa il termine "potenza" realmente indicasse. Ho comunque qualche anno di programmazione sia C/C++ sia Java alle spalle e posso dire per esperienza che: 1- Il C++ e' piu' complesso dal punto di vista dell'utilizzo ed ha una gestione degli errori abbastanza piu' ostica rispetto al Java; in ogni caso, il Java necessita di conoscenze relativamente approfondite (es. OOP); 2- Il C++ e' un linguaggio di livello piu' basso rispetto al java, piu' vicino alla macchina e pertanto tendenzialmente piu' rapido degli altri linguaggi (nel caso del Java, molto piu' rapido) ed ha la possibilita' di gestire con piu' flessibilita' elementi del sistema operativo, permettendo cosi' un interfacciamento migliore sia con esso sia con l'utente; 3- Il Java e' pero' un linguaggio molto portabile ed ha l'attitudine ad essere eseguito senza modifiche su sistemi operativi profondamente differenti; il meccanismo delle classi native sopperisce in parte ai problemi relativi ai sistemi operativi servendosi di librerie d'appoggio scritte in C/C++. 4- E' vero comunque che alcuni programmi Java particolarmente complessi (vedasi Eclipse, Aptana ecc) trovano comunque delle difficolta' ad adattarsi ai vari sistemi operativi, questo va a svantaggio della portabilita'. 5- E' anche vero che con qualche sforzo da parte del programmatore e' possibile rendere un programma abbastanza portabile da una piattaforma all'altra. In definitiva: C++ o Java quale dei due e' migliore? La risposta e': nessuno. In determinati casi il C++ risulta essere una buona scelta, in altri si potrebbe preferire il Java. Tutto dipende dalle circostanze, dalle conoscenze e/o preferenze di un programmatore di un linguaggio rispetto all'altro, e da innumerevoli altri fattori. Ho assistito a tante e tante battaglie tra programmatori C++ e programmatori Java, ai primi tempi prendendo le difese del C++ (linguaggio che comunque personalmente conosco meglio rispetto all'altro e preferisco per i motivi sopraelencati, si puo' notare come siano lievemente di parte ;)) ma poi ho capito che la verita' non sta da una parte sola. Per imparare secondo me il C++ e' il linguaggio ideale, visto che e' possibile partire dalla programmazione strutturata (che generalmente risulta meno ostica e meno nozionistica) per poi passare gradualmente all'OOP. :)
