Repository 32bit  Forum
Repository 64bit  Wiki

c o c++ quale dei due?

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Re: c o c++ quale dei due?

Messaggioda robbybby » lun apr 14, 2008 20:25

Ci ho fatto dei begli oggettini in assembler.
Ho anche un paio di progetti con interfacce tra asm e C, oppure tra asm e Basic (gulp!).
In programmi assembler complessi spesso utilizzo uno stack frame completo, con variabili locali (automatiche) e passaggio degli argomenti sullo stack, per non sporcare tutto con troppe variabili globali.
Su certe architetture (vedi i pic a 8 bit) e' invece obbligatorio, in assembler, usare solo variabili globali.

Ritornando al C: io sono passato dal C, al C++. Uso gli oggetti dove mi servono, e non li uso dove sono inutili.
Per esempio, in un "driver" video per pilotare un LCD grafico, la parte a basso livello l'ho fatta in C liscio, mentre ho usato gli oggetto per le parti superiori dell'interfaccia verso il programma.

Per il C, ti consiglio il Kernighan/Ritchie. Per il C++ lo Stroustrup, ultima edizione (mi sembra sia la quarta). Mi sa che lo Stroustrup pero' costi di piu' dei 52 euro del testo citato in precedenza :) .

Conosco anche QuickBasic e VB, ma li odio, letteralmente. :evil:
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1077
Iscritto il: sab dic 16, 2006 11:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: c o c++ quale dei due?

Messaggioda kreen » lun apr 14, 2008 21:28

spina ha scritto:No, intendevo dire semplicemente quello che ho detto, che crei una struttura e delle funzioni che ne modificano lo stato.
Non ho detto che il C è orientato agli oggetti o è un linguaggio ad oggetti, ho detto che si può plasmare il paradigma ad oggetti sul C, per quanto si possa fare ovviamente.
Spina



:p Allora ho interpretato male il senso del tuo discorso.
Blizzard ha scritto:Avete mai provato il Lippman e Lajoie? --- Comunque anche L&L alla fine esattamente metà libro fa la programmazione funzionale


Sì, è un buon libro. :thumbright: Affronta praticamente tutti gli argomenti. Ho comunque delle riserve sulla sua struttura. Scrivere delle buone funzioni permette di scrivere dei buoni metodi nella OOP. :idea: In fondo, i metodi sono delle funzioni. :idea:
Avatar utente
kreen
Linux 2.4
Linux 2.4
 
Messaggi: 228
Iscritto il: mer feb 01, 2006 19:32
Località: Verona
Slackware: 12.0
Kernel: 2.6.21.5-smp
Desktop: KDE

Re: c o c++ quale dei due?

Messaggioda nuitari » mar apr 15, 2008 18:06

Mi permetto di cantare fuori dal coro.

Il C++ è un linguaggio multi-paradigma ed il C è un suo sotto-insieme. Teoricamente è possibile programmare in C++ senza usare una sola riga del *vecchio C*, in pratica questo non viene quasi mai fatto, proprio per questa sua natura e per il fatto che ogni programmatore C++ arriva generalmente dal C.

Per questo, il mio consiglio: se vuoi imparare VERAMENTE la programmazione ad oggetti in C++, chiudi il libro del C, mettilo su una mensola ed inizia a leggere mattina e sera il Soustroup. Solo così puoi fare veramente tuoi i concetti del C++ e della programmazione ad oggetti in generale. Purtroppo, il C rappresenta spesso il più grande ostacolo nel corretto apprendimento del C++ (parlo per esperienza). Imparare a fondo il C può rendere *al tuo cervello* molto più ostico l'apprendimento di un paradigma ad oggetti, in quanto quest'ultimo è molto più vicino alla mentalità umana che a quella del calcolatore (laddove per il C vale il discorso inverso). Acquisire la giusta capacità d'astrazione non è cosa facile già essendo *programmatori vergini*, figurati essendo indottrinati dell'opposta filosifa..
Inoltre la tentazione di usare scorciatoie in C è veramente forte.
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 12:51
Località: San Colombano al Lambro
Slackware: 12.0

Re: c o c++ quale dei due?

Messaggioda conraid » mar apr 15, 2008 18:13

nuitari ha scritto:Per questo, il mio consiglio: se vuoi imparare VERAMENTE la programmazione ad oggetti in C++, chiudi il libro del C, mettilo su una mensola ed inizia a leggere mattina e sera il Soustroup. Solo così puoi fare veramente tuoi i concetti del C++ e della programmazione ad oggetti in generale. Purtroppo, il C rappresenta spesso il più grande ostacolo nel corretto apprendimento del C++ (parlo per esperienza). Imparare a fondo il C può rendere *al tuo cervello* molto più ostico l'apprendimento di un paradigma ad oggetti, in quanto quest'ultimo è molto più vicino alla mentalità umana che a quella del calcolatore (laddove per il C vale il discorso inverso). Acquisire la giusta capacità d'astrazione non è cosa facile già essendo *programmatori vergini*, figurati essendo indottrinati dell'opposta filosifa..
Inoltre la tentazione di usare scorciatoie in C è veramente forte.


Mi permetto di estendere questo discorso ad una programmazione procedurale ed ad oggetti, in qualunque linguaggio ed anche in linguaggi diversi.
A volte quando conosci la programmazione procedurale, sei portato ad usare quella sempre e comunque.
Viceversa conosco persone che hanno appreso subito la OOP che fanno l'opposto, e si plasmano un linguaggio procedurale in una visione ad oggetti. Come è stato detto qualche post fa.
Naturalmente IMHO tutto è relativo alla duttilità mentale programmatore, alcuni hanno più problemi di altri. Io purtroppo sono tra questi.
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11892
Iscritto il: gio lug 14, 2005 0:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: c o c++ quale dei due?

Messaggioda absinthe » mer apr 16, 2008 13:34

nuitari ha scritto:Il C++ è un linguaggio multi-paradigma ed il C è un suo sotto-insieme.

il sottogruppo c del c++ non è proprio uguale al c puro ma è similissimo!
Teoricamente è possibile programmare in C++ senza usare una sola riga del *vecchio C*, in pratica questo non viene quasi mai fatto, proprio per questa sua natura e per il fatto che ogni programmatore C++ arriva generalmente dal C.

sì è vero, il suo inventore preme molto su questo tasto... però le performance di cout e co. sono invereconde... se non hai limiti di prestazione allora sono più che concorde... se no stdio!
Per questo, il mio consiglio: se vuoi imparare VERAMENTE la programmazione ad oggetti in C++, chiudi il libro del C, mettilo su una mensola ed inizia a leggere mattina e sera il Soustroup. Solo così puoi fare veramente tuoi i concetti del C++ e della programmazione ad oggetti in generale. Purtroppo, il C rappresenta spesso il più grande ostacolo nel corretto apprendimento del C++ (parlo per esperienza). Imparare a fondo il C può rendere *al tuo cervello* molto più ostico l'apprendimento di un paradigma ad oggetti, in quanto quest'ultimo è molto più vicino alla mentalità umana che a quella del calcolatore (laddove per il C vale il discorso inverso).

mmm... secondo me non è molto simile: io trovo molto naturale fare script simil shell e co. ma nessun metodo di programmazione proposto nè da c nè da c++ mi è sembrato intuitivo. diciamo che è più elastico perchè di solito fai mille pezzettini e poi li rimetti insieme, mentre il c++ richiede di progettare adeguatamente le relazioni tra classi e quindi vincola a progettare bene fin da subito... IMHO ovviamente. comunque è vero: i metodi di OOP sono molto diversi da quelli procedurali... io solitamente facco della robaccia ibrida: uso il c in maniera molto simile al c++: creo una struttura per ogni presunto "oggetto" e nello stesso file .h creo tutte le funizioni per gestirla (costrutture distruttore, metodi di get/set e funzioni varie), poi implemento tutto in un unico file .c e utilizzo le funzioni senza mai accedere direttamente alle strutture, almento che non debba fare codice molto veloce: in maniera simile ad una classe. è vero però che se devo costruire qualcosa di complesso di solito lo faccio a mattoncini: tante piccole struttue (typedef struct) che vengono inglobate tramite puntatori in quelle più grandi... al contrario quando ho usato un pò di c++ usavo l'eredità per inglobare una struttura semplice e ramificare da lì le classi specializzate anche se comunque non ho mai abbandonato stdio e string all'interno dei metodi delle classi :-)... IMHO la vera differenza sta nell'uso della virtualizzazione - senza citare i template che non hanno alcun paragone in c per quel che mi viene in mente adesso :roll: - .
Acquisire la giusta capacità d'astrazione non è cosa facile già essendo *programmatori vergini*, figurati essendo indottrinati dell'opposta filosifa..
Inoltre la tentazione di usare scorciatoie in C è veramente forte.

che intendi? usare scorciatoie lavorando in c o usare il c come scorciatoia in c++? non ho capito :-/

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

Re: c o c++ quale dei due?

Messaggioda kos » gio apr 17, 2008 18:20

Se 6 proprio a digiuno con la programmazione, inizia con Java e poi passa al C. Io sono del parere di utilizzare la tecnologia più appropriata in base a quello che si deve fare. Se devo fare programmazione di sistema, certo non vado ad utilizzare Java, utilizzo il C. Se devo invece scrivere un applicativo e non ho particolari esigenze nella gestione della memoria, ma chi cavolo me l'ho fa fare ad andarmi a complicarmi la vita con i puntatori. Meglio utilizzare Java.
Avatar utente
kos
Linux 1.0
Linux 1.0
 
Messaggi: 23
Iscritto il: sab mar 22, 2008 20:53
Località: dmi.unict
Slackware: 12

Re: c o c++ quale dei due?

Messaggioda carocco » ven apr 18, 2008 12:10

Ciao a tutti.
Intervengo su questa interessante discussione per due motivi.
Il primo, comunicare che lo Stroustrup costa "solo" 45 euro (e lo consiglio agli interessati)

Per quanto riguarda il confronto tra c e c++, sconsiglierei come ha gia' fatto qualcuno di studiare prima il c e poi il c++ come una sua "evoluzione". In realta' si corre il rischio (come sottolinea lo stesso Stroustrup) di scrivere codice c++ continuando a pensare in c, quindi trascurando le numerose potenzialita' del c++.
Personalmente, sono piu' di 10 anni che sviluppo in c e non lo baratterei con niente..anche se a volte l'utilizzo di c++ mi si e' reso obbligatorio (per via di alcune librerie non disponibili/compatibili col c).

Da chi consiglia di provare java, mi permetto invece di dissentire: personalmente trovo java antipatico. Consiglio invece ai programmatori java di farsi un giro col c++.
Avatar utente
carocco
Linux 1.0
Linux 1.0
 
Messaggi: 49
Iscritto il: gio apr 12, 2007 15:31

Precedente

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Google [Bot] e 2 ospiti