c o c++ quale dei due?

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
inux
Packager
Packager
Messaggi: 529
Iscritto il: sab 3 nov 2007, 11:36
Nome Cognome: Christian Reguzzoni
Slackware: 64 13.1
Desktop: kde
Località: busto arsizio (VA)

c o c++ quale dei due?

Messaggio da inux »

finalmente ci si risente dunque girando un po sulla rete ho avuto modo di vedere molti post a riguardo e non ci ho capito niente anzi è aumentata la confusione quindi torno a casa per sentire dei pareri e consigli nella mia community.quale linguaggio è meglio imparare per programmare il c o c++?premetto che sto gia studiando il c, cosa si puo fare col c che non si può fare col c++ e viceversa?quali sono le potenzialita di uno rispetto all'altro? vi prego aiutatemi a capire grazie ciao.

Avatar utente
spudhead
Linux 1.x
Linux 1.x
Messaggi: 130
Iscritto il: sab 17 dic 2005, 0:17
Slackware: 12.2
Kernel: 2.6.28.7
Desktop: KDE 3.5.10
Località: Ancona, Italy

Re: c o c++ quale dei due?

Messaggio da spudhead »

Ciao!
Non sono un gran programmatore, anzi, la mia conoscenza è a livelli minimi! Comunque io ti consiglio di capire prima il C, poi il passo al C++ è relativamente "facile", basta capire gli oggetti.
Il C++ è object-oriented mentre il C no ma secondo me iniziare a studiare gli oggetti senza aver sbattuto la testa su puntatori/strutture/liste/alberi non va bene! Il C ti forma meglio! E poi col C ci scrivono il kernel di GNU/Linux!!!
Ti consilgio il libro di C dei Deitel&Deitel... Veramente fatto bene! Ma comunque internet è pieno di guide piu o men chiare! A, ovviamente c'è la Bibbia del C, il Kernighan Ritchie "Il linguaggio C. Principi di programmazione e manuale di riferimento" ma ovviamente è tosto!!!

Giorgio

PS. Il mio prof dell'universita delle Marche ha sempre definito il C++ come "una porcheria"... Preferisce il Java per gli oggetti... Mah!

PPS: riassumendo il mio pensiero: impara il C, poi passa a C++!

Avatar utente
gioco
Packager
Packager
Messaggi: 900
Iscritto il: dom 19 giu 2005, 0:00
Slackware: last stable
Località: in the court of the Wesnoth king
Contatta:

Re: c o c++ quale dei due?

Messaggio da gioco »

inux ha scritto:premetto che sto gia studiando il c, cosa si puo fare col c che non si può fare col c++ e viceversa?quali sono le potenzialita di uno rispetto all'altro? vi prego aiutatemi a capire grazie ciao.
Ti consiglio di continuare a studiare il C, sopratutto se stai facendo i primi passi con la programmazione, perchè ti da la possibilità di apprendere i fondamenti della programmazione strutturata, il paradigma procedurale, concetti come i puntatori, la gestione (consapevole) della memoria; tutte cose che un buon programmatore deve conoscere, anche se si ritrovasse a programmare in Java o in altri linguaggi da guanti di velluto.

Il C è un linguaggio ancora molto usato, ma è adatto soprattutto alla programmazione di sistema. Comunque sotto Linux è stato usato per fare di tutto, anche programmi con GUI (GTK).
Il C++ è molto usato, è general purpose, ci puoi fare di tutto: videogiochi, applicazioni varie. E' fondamentalmente un linguaggio a oggetti, anche se essendo un'estensione del C permette di utilizzare anche il paradigma procedurale. Il C++ è adatto se hai intenzione di scrivere programmi con GUI, dato che sono disponibili ottimi toolkit grafici (QT). Ha anche una buona portabilità.

Fatti le ossa con il C e poi passa al C++, c'è a disposizione l'ottimo testo liberamente scaricabile: c++ annotations (http://www.icce.rug.nl/documents/cplusplus/).
Anche per il C trovi molto in rete, ad esempio il gapil (http://gapil.truelite.it/) che troverai molto utile se ti appassionerai alla programmazione di sistema.

Avatar utente
phobos3576
Staff
Staff
Messaggi: 2980
Iscritto il: dom 17 apr 2005, 0:00
Slackware: 13.1
Kernel: 2.6.37-smp
Desktop: KDE 4.5.3

Re: c o c++ quale dei due?

Messaggio da phobos3576 »

spudhead ha scritto:PS. Il mio prof dell'universita delle Marche ha sempre definito il C++ come "una porcheria"... Preferisce il Java per gli oggetti... Mah!
Non ricordo chi disse questa bellissima frase: "chi non capisce nulla di una determinata materia la insegna all'università!"

Avatar utente
inux
Packager
Packager
Messaggi: 529
Iscritto il: sab 3 nov 2007, 11:36
Nome Cognome: Christian Reguzzoni
Slackware: 64 13.1
Desktop: kde
Località: busto arsizio (VA)

Re: c o c++ quale dei due?

Messaggio da inux »

grazie per le risposte ciao. :D

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: c o c++ quale dei due?

Messaggio da aschenaz »

Il mio prof dell'universita delle Marche ha sempre definito il C++ come "una porcheria"... Preferisce il Java per gli oggetti... Mah!
Non è che intendeva il c#?

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: c o c++ quale dei due?

Messaggio da 414N »

Impara bene il C che è un'ottimo strumento anche per capire come funziona il baracchino a basso livello.
Estendi la conoscenza del C tramite il C++ che introduce (anche se in maniera piuttosto "sporca" rispetto a Java e C#) il paradigma ad oggetti ed altre amenità.

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Re: c o c++ quale dei due?

Messaggio da absinthe »

ci fai esattamente le stesse identiche cose. il c++ supporta la programmazione ad oggetti e la programmazione generica (template). il c è procedurale. a parte la logica diversa, se il progetto non è di dimensioni pantagrueliche e non richiede limature di velocità particolari il c e il c++ si equivalgono. IMHO usare le librerie di base del c++ per fare input/output su std* è da rinco... quindi comunque un pò di c conviene saperlo. ripeto però che salvo condizioni estreme, si tratta di gusti...

M

PS: il c++ non implementa in maniera sporca il paradigma a oggetti, evita IMHO di impiegare il paradigma semplicemente per sprecare tempo (vedi la definizione del main in java :-). ops... devo aver inavvertitamente innescato una miccia :-P

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: c o c++ quale dei due?

Messaggio da 414N »

absinthe ha scritto:PS: il c++ non implementa in maniera sporca il paradigma a oggetti, evita IMHO di impiegare il paradigma semplicemente per sprecare tempo (vedi la definizione del main in java :-). ops... devo aver inavvertitamente innescato una miccia :-P
Insomma... L'ereditarietà multipla la vedo un po' sporchina in C++...

Avatar utente
gioco
Packager
Packager
Messaggi: 900
Iscritto il: dom 19 giu 2005, 0:00
Slackware: last stable
Località: in the court of the Wesnoth king
Contatta:

Re: c o c++ quale dei due?

Messaggio da gioco »

414N ha scritto:
absinthe ha scritto:PS: il c++ non implementa in maniera sporca il paradigma a oggetti, evita IMHO di impiegare il paradigma semplicemente per sprecare tempo (vedi la definizione del main in java :-). ops... devo aver inavvertitamente innescato una miccia :-P
Insomma... L'ereditarietà multipla la vedo un po' sporchina in C++...
Diciamo che con il C++ il programmatore deve sapere quello che sta facendo. Il Java, invece, risolve i problemi del programmatore introducendo limitazioni.

Avatar utente
cymon
Linux 2.x
Linux 2.x
Messaggi: 430
Iscritto il: ven 5 gen 2007, 1:40
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox
Località: Milano
Contatta:

Re: c o c++ quale dei due?

Messaggio da cymon »

gioco ha scritto:
414N ha scritto:
absinthe ha scritto:PS: il c++ non implementa in maniera sporca il paradigma a oggetti, evita IMHO di impiegare il paradigma semplicemente per sprecare tempo (vedi la definizione del main in java :-). ops... devo aver inavvertitamente innescato una miccia :-P
Insomma... L'ereditarietà multipla la vedo un po' sporchina in C++...
Diciamo che con il C++ il programmatore deve sapere quello che sta facendo. Il Java, invece, risolve i problemi del programmatore introducendo limitazioni.
Come avevo letto su un blog di Perl (altro linguaggio piuttosto anarchico) JAVA fa delle assunzioni piuttosto offensive su chi lo usa :badgrin: .
Personamente la mia idea è che il C bisogna impararlo, almeno di base, anche solo perché non puoi andare in giro a dire di non saperlo (io, ad esempio, non ricordo quasi una cippa, ma non posso ammetterlo :oops: ). Una volta fatto quello ti si presentano varie scelte, C++ non è una necessaria evoluzione, puoi andare su JAVA alla stessa maniera o anche salpare per lidi pià lontani.

Avatar utente
kreen
Linux 2.x
Linux 2.x
Messaggi: 228
Iscritto il: mer 1 feb 2006, 18:32
Slackware: 12.0
Kernel: 2.6.21.5-smp
Desktop: KDE
Località: Verona

Re: c o c++ quale dei due?

Messaggio da kreen »

inux ha scritto:quale linguaggio è meglio imparare per programmare il c o c++?premetto che sto gia studiando il c, cosa si puo fare col c che non si può fare col c++ e viceversa?quali sono le potenzialita di uno rispetto all'altro? vi prego aiutatemi a capire grazie ciao.

Prima del C++ mi sono occupato del C, ma il passaggio non è per nulla obbligatorio.
Con il C++ puoi fare le identiche cose che fai con il C ed usare le sue librerie.
Tieni in mente una cosa, però (IMHO) non è il C o il C++ che fanno la differenza. La differenza la fa il programmatore.
Puoi scrivere lo stesso programma con entrambi i linguaggi, magari affrontarlo dal punto di vista procedurale con il C, o usando gli oggetti con il C++. Il punto è che la qualità del software la detti a prescindere da quali dei due strumenti utilizzi. Puoi conoscere a menadito tutta la libreria standard del C, ma ciò non ti attribuisce lo status di programmatore.


gioco ha scritto:Diciamo che con il C++ il programmatore deve sapere quello che sta facendo. Il Java, invece, risolve i problemi del programmatore introducendo limitazioni.
[-X
Infatti, all'esame di programmazione all'uni nessuno dei miei compagni ha avuto problemi con il linguaggio Java. Lo dimostra l'alto numero di voti dal 20 al 25 e l'impallamento davanti ad una funzione ricorsiva. Questa storia del Java etichettato come linguaggio di categoria B non la condivido. Il programmatore C è figo. Infatti, bella li', "io all'ITIS ho fatto C, questo Java è una cagata": beccati un bel 22. Eppure sei l'elite del C, uno abituato a puntatori a funzione e allocazione dinamica della memoria doverreb fumarselo un tema del genere.
IMHO, il programmatore deve SEMPRE sapere quello che sta facendo, in C, C++, BASIC e anche in Java.

Avatar utente
cymon
Linux 2.x
Linux 2.x
Messaggi: 430
Iscritto il: ven 5 gen 2007, 1:40
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox
Località: Milano
Contatta:

Re: c o c++ quale dei due?

Messaggio da cymon »

kreen ha scritto: Infatti, all'esame di programmazione all'uni nessuno dei miei compagni ha avuto problemi con il linguaggio Java. Lo dimostra l'alto numero di voti dal 20 al 25 e l'impallamento davanti ad una funzione ricorsiva. Questa storia del Java etichettato come linguaggio di categoria B non la condivido. Il programmatore C è figo. Infatti, bella li', "io all'ITIS ho fatto C, questo Java è una cagata": beccati un bel 22. Eppure sei l'elite del C, uno abituato a puntatori a funzione e allocazione dinamica della memoria doverreb fumarselo un tema del genere.
IMHO, il programmatore deve SEMPRE sapere quello che sta facendo, in C, C++, BASIC e anche in Java.
Concordo assolutamente, il programmatore in una porzione di codice contribuisce al 95%, il linguaggio al 5%. Infatti non sono molto d'accordo con quelli che vogliono imparare diciotto linguaggi, io credo che se ne debba imparare uno VERAMENTE BENE (ovvero non solo in merito alla sintassi, ma anche in merito alla filosofia che gli è sottesa) così da poterlo sfruttare in tutte le sue potenzialità.
JAVA non è un linguaggio di serie B, la sua disciplina è affascinante e essere un ottimo programmatore JAVA è sempre meglio di essere un mediocre programmatore C, ma se si hanno due programmatori mediocri, JAVA e C, soprattutto magari per le cose apparentemente "marginali" come ordine e pulizia, almeno il programmatore JAVA ha delle imposizioni che gli impediscono di essere eccessivamente caotico. Questo, ad esempio in contesti aziendali, è fondamentale.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6628
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: c o c++ quale dei due?

Messaggio da targzeta »

Ho sempre considerato il C IL linguaggio di programmazione e il C++ IL linguaggio di programmazione ad oggetti. C'è da dire che anche con il C si programma ad oggetti, anzi, credo che dopo aver imparato la programmazione ad oggetti non ne si può più fare a meno, e quindi diventa naturale plasmare il C sul paradigma ad oggetti. Quindi si inizia a programmare creando una struttura e una serie di funzioni che ne modificano lo stato. La differenza stà semplicemente nel modo in cui si invocano queste funzioni o metodi (nel caso della programmazione a oggetti).
Una volta che hai imparato questi due linguaggi, in particolare, una volta che hai imparato a programmare con il C e imparato il paradigma di programmazione ad oggetti con il C++, tutti gli altri linguaggi li puoi imparare facilmente.

Per quanto riguarda la storia del "programmatore che fa la differenza", è normale che è il programmatore che fa la differenza, altrimenti non esisterebbero le università di informatica, si insegna il C anche alle superiori o alle università di fisica e ingegnieria informatica. Ma quello che ti insegnano all'università di Informatica è tutta un altra cosa, li ti si insegna a giocare con il linguaggio, non ad usarlo. Ma nonostante tutto, spetta sempre a chi lo apprende innamorasi o no.

La vera differenza è la conoscenza delle librerie a disposizione. Ci sono un sacco, ma proprio un sacco di librerie per C e C++ che fanno praticamente tutto. Solo che non è semplice capire se e dove/come usarle.
Ad esempio io volevo usare la libreria id3tag, ma non ci ho capito una mazza!!! Non ha un manuale con le API, e se devo leggermi il codice per capire cosa vogliono fare i programmatori, tanto vale scrivermelo da me. Però cercando ho scoperto anche la libreria id3lib, che è scritta bene e ben documentata ed ora uso quella se voglio manipolare i tag id3.

Che dire, impara il C e il C++ e poi inizia a divertirti :).

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
cymon
Linux 2.x
Linux 2.x
Messaggi: 430
Iscritto il: ven 5 gen 2007, 1:40
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox
Località: Milano
Contatta:

Re: c o c++ quale dei due?

Messaggio da cymon »

spina ha scritto: Ad esempio io volevo usare la libreria id3tag, ma non ci ho capito una mazza!!! Non ha un manuale con le API, e se devo leggermi il codice per capire cosa vogliono fare i programmatori, tanto vale scrivermelo da me. Però cercando ho scoperto anche la libreria id3lib, che è scritta bene e ben documentata ed ora uso quella se voglio manipolare i tag id3.
E su questo bisogna dire che Java è anni luce avanti e forse una delle spinte più importanti al linguaggio la ha data proprio la strutturazione della sua documentazione. Qualunque libreria o pacchetto o suite implementato con un minimo di decenza ha un javadoc che è una reference fondamentale (e standard!) per lo sviluppo.

Rispondi