Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Tutto e di + - continuo con il c++
Forum - Tutto e di + - continuo con il c++

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
munkaka (Member)
Pro


Messaggi: 119
Iscritto: 07/09/2008

Segnala al moderatore
Postato alle 21:42
Domenica, 25/04/2010
ciao
mi sto ponendo una seria domanda, mi vale la pena continuare a studiare il c++?
Ho sentito dire piu volte che non vale piu la pena imparare bene il c++ ma piuttosto java, c# o altri, perchè?
Io non studio informatica ma matematica e a scuola ci hanno insegnato il c++, abbiamo fatto ereditarietà, polimorfismo, template, sdl, opengl e adesso non so se comprarmi un libro ben approfondito, tipo C++ Programming Language, e imparare veramente bene il c++ oppure lasciar perdere e cominciare un altro linguaggio. Non essendo studente in informatica non ho molto tempo per imparare svariati linguaggi quindi è meglio che mi concentri su uno in particolare, però non so cosa scegliere, voi credete che sia meglio approfondire il c++ o impararne un'altro da capo? Comunque il c++ mi sembra un linguaggio abbastanza potente no? perchè non viene piu consigliato?
PS: per consigliare il linguaggio non date importanza al fatto che magari un linguaggio sia piu richiesto che altri perchè l'informatica non sara il mio lavoro ma un hobby

edit by netarrow: tolto il ? dal titolo che crea problemi

Ultima modifica effettuata da netarrow il 26/04/2010 alle 0:09
PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 12:02
Lunedì, 26/04/2010
una volta che sai programmare in un linguaggio (serio) sai programmare in tutti gli altri.
le strutture sono concettualmente le stesso.

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 20:28
Lunedì, 26/04/2010
Testo quotato

Postato originariamente da eddiewrc:

una volta che sai programmare in un linguaggio (serio) sai programmare in tutti gli altri.
le strutture sono concettualmente le stesso.



quoto eddie, e aggiungo che, dato che il tuo è un semplice hobby, il C++ è un buona scelta, perchè ti consente di leggere gran parte del vecchio software open source esistente e modificarlo, magari approfondendo anche il C.

Non esiste una scelta altrettanto vasta di programmi open source in Java, peggio ancora in C#, perchè sono linguaggi più giovani e generalmente vengono più usati in ambito web enterprise e software gestionali, due ambiti molto professionali (da cui la grande richiesta di programmatori C# e Java) che lasciano poco spazio all'hobbista e all'open source.

Linguaggi tipicamente usati dagli hobbisti sono, invece, C/C++, Visual Basic.Net (te lo sconsiglio, troppo astratto per i miei gusti), Python (linguaggio elegante e piacevole da imparare). Se ti viene il pallino potresti anche imparare qualche forma di Assembly.

In campo lavorativo ormai l'assembly viene soltanto usato (in realtà pochissimo, perchè affiancato da C, Ada e Pascal) da chi scrive firmware per microcontrollori, compilatori e sistemi operativi. Però, se la programmazione per te è puramente un hobby, troverai davvero divertente ed estremamente formativo scoprire come funziona una CPU a basso livello, soprattutto se ti concentri su una CPU RISC (tipicamente più eleganti e piacevoli da programmare) come ARM, MIPS, PowerPC, SPARC, ecc...


PM Quote
Avatar
munkaka (Member)
Pro


Messaggi: 119
Iscritto: 07/09/2008

Segnala al moderatore
Postato alle 22:27
Lunedì, 26/04/2010
grazie per il consiglio, ho deciso di approfondire il c++ e poi piu tardi magari farò un po di c, tralatro vorrei chiedere che vantaggi ha il c rispetto al c++ oltre al fatto di essere piu veloce?
riguardo all assembly avevo trovato una bella guida, un po lunga pero (piu di 1000 pg), e avevo iniziato a leggerla però non ho programmato niente, non avevo ancora finito il capitolo che introduce all architettura del pc. Cmq mi chiedevo, per processori diversi il codice cambia? Io per esempio ho un Intel Core 2 Duo, cambia molto rispetto ai processori piu vecchi? Nella guida parlano di alcuni modelli di processori ma il piu recente è il pentium III, quindi mi chiedevo se posso basarmi su questa guida o è troppo vecchia. I computer che ho sono intel, sono processori CISC vero?

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 0:15
Martedì, 27/04/2010
Il C non offre particolari vantaggi, anzi... viene usato solo su dispositivi con poca memoria e con CPU lente, per questioni più che altro legate al runtime environment, che non al programma in sè. Il C++ richiede la gestione delle exceptions, ad esempio, la quale può avvenire solo con la presenza di un sistema operativo (cosa non sempre presente su piccoli microcontrollori, o dentro gli strati più interni di un kernel). Inoltre il C++ ha le classi virtuali che richiedono un piccolissimo overhead, che possiamo trascurare sui PC, però fa qualche apprezzabile differenza su vecchie architetture o su microcontroller.

Per quanto riguarda il discorso dell'Assembly, questo cambia in base alla cosiddetta ISA del processore.

attualmente i Core 2 Duo implementano ben 3 ISA diverse:

- vecchia ISA a 16 bit (dall'8086 fino all'80286)
- IA-32 a 32 bit (dal 386 in poi)
- AMD64 / EM64T a 64 bit (dall'Athlon64 in poi, per AMD; dal Pentium 4 6xx e Pentium D in poi, per Intel)

mentre il Pentium 3 implementa solo le prime 2.

Se ti attieni all'ISA principale, senza usare istruzioni "estese" (quali ad esempio MMX, 3DNow!, SSE, ecc...) puoi tranquillamente creare programmi compatibili con tutti i processori della linea.

Se invece usi le estensioni, ad esempio SSE3 per citarne una, quel programma girerà soltanto sulle CPU che implementano quella particolare estensione.

Un'importante eccezione è data dalle istruzioni della FPU (Floating-point Processing Unit): nonostante le prime CPU non avessero la FPU interna, ma questa era opzionalmente montata sulla motherboard in un chip separato, le istruzioni di FPU sono sempre emulate dall'OS oppure dal firmware (chiamalo pure BIOS se vuoi) della macchina. Quindi nel caso, ad esempio, di un 386 senza FPU, verrà generata un'interruzione quando incontra un'istruzione dell'FPU, questa interruzione verrà gestita dall'OS tramite una opportuna routine che esegue il calcolo in software.

PM Quote
Avatar
munkaka (Member)
Pro


Messaggi: 119
Iscritto: 07/09/2008

Segnala al moderatore
Postato alle 19:31
Martedì, 27/04/2010
ok adesso ho capito, appena finisco il semestre a avro piu tempo mi dedicherò al c++ e assembly
grazie mille per le risposte, mi hanno chiarito le idee

PM Quote
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 18:35
Venerdì, 30/04/2010
Visto che vuoi programmare per hobby dovrai scegliere un certo tipo di programmi da poter fare (x es. Giochi, Antivirus, programmi di grafica, ecc.) è difficile trovare un linguaggio con cui si possa molto semplicemente fare proprio tutto (solo il binario permette questo, ma non credo sia così semplice da imparare!) quindi prova a leggere anche questa pagina
http://www.pierotofy.it/pages/guide_tutorials/Informatica/ ...

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 20:49
Venerdì, 30/04/2010
Testo quotato

Postato originariamente da Ale96:

Visto che vuoi programmare per hobby dovrai scegliere un certo tipo di programmi da poter fare (x es. Giochi, Antivirus, programmi di grafica, ecc.) è difficile trovare un linguaggio con cui si possa molto semplicemente fare proprio tutto (solo il binario permette questo, ma non credo sia così semplice da imparare!) quindi prova a leggere anche questa pagina
http://www.pierotofy.it/pages/guide_tutorials/Informatica/ ...



eh? *_* ti giuro... non ho capito che vuoi dire XD

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 1:42
Domenica, 02/05/2010
Dipende da cosa vuoi creare... se vuoi essere produttivo C++ di sicuro non lo e' (e' potente, ma hai davvero bisogno di tutta questa potenza per qualsiasi sia il tuo scopo?). Visto che hai gia' delle piccole basi su un linguaggio, io consiglierei Ruby. La sua semplicita' e flessibilita' ti stupira'.


Il mio blog: https://piero.dev
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo