Newsgroup: it.comp.lang.c
Titolo: Domanda su C

*QUOTE*
La differenza esiste ed è sostanziale: C++ è un linguaggio OO, orientato
agli oggetti (anche se puoi usarlo benissimo come linguaggio procedurale).
In effetti il C può essere visto come un sottoinsieme proprio del C++ (con
pochissime eccezioni), il che significa che puoi scrivere un programma in
C++ stile C, ovvero senza usare classi e oggetti. Il problema non è
filosofico, ma di progetto. In genere se studi BENE il C++, conosci al 98%
anche il C, ma non scriverai mai un programma in C, a meno che non devi
gestire dispositivi hardware.
*QUOTE*
Cosa ne pensate di questo post di it.comp.lang.c++???
Siete daccordo???
No???
Perche???
Tnk 1000000000
-- 
Kleidemos
C++ Programmer
kleidemo...@altervista.org
http://kleidemos.altervista.org/

 Perche???
Sono d'accordo, eccetto che per  l'ultimo "non scriverai mai un 
programma C", da sostituire con "non vorrai mai scrivere un programma C" ;)
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 C" ;)
E se dovessi scrivere un kernel o un prog che ha bisogno di un piccolo
runtime???
Quindi concordi al 99 %?


 Perche???
non sono interessato a sviluppare ulteriormente questo argomento.
Ma tu perche' sollevi questa questione? Cosa sei ineressato a sapere?
A volte sei misterioso, sai? ;-)
Tommy

 A volte sei misterioso, sai? ;-)
Curiosità da programmatore???
Cmq a volte mi faccio paura da solo per quanto sono misterioso :|


 molto meno concorde se riferito al C99.
anche se per alcune cose il C99 assomiglia di piu' al C++ del C89....
Tommy

 anche se per alcune cose il C99 assomiglia di piu' al C++ del C89....
Davvero???


 Davvero???
No l'ha scritto per scherzo...

 No l'ha scritto per scherzo...
Mi spieghereste il perche???
Tnk


 Mi spieghereste il perche???
basta una semplice ricerca....
Il C99 ha delle cose che il C89 non ha e che il C++ invece ha... In
questo senso per certi versi il C99 e', solo per alcune cose, piu'
vicino al C++ di quanto non lo sia il C89.
- tipo di dato bool (il C89 non ha bool, C99 e C++ si)
- variable length array (il C89 non li ha, il C99 si, il C++ ha vector)
- i commenti // (il C89 in teoria non li supporta, il C++ ed il C99 si)
- funzioni inline (C89 non le aveva C++ e C99 si)
- ora con C99 puoi dichiarare le variabili piu o meno dove vuoi come in
C++, in C si poteva solo all'inizion di un blocco...
- etc...
Non lasciarti pero' confondere da questa lista... L'apparenza inganna!
Il C89 e' piu' vicino ad essere un sottoinsieme del C++ di quanto non lo
sia il C99.
Tommy
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 runtime???
Continuerei a volerlo scrivere in C++, ma dato che le cose si 
complicherebbero, alla fine non lo farei :)
Ecco perche' dicevo "vorrai" ;D


 Tnk 1000000000
Personalmente lo ritengo una cazzata colossale, vuoi perchè
personalmente ho imparato prima il C rispetto al C++, vuoi anche
perchè se non ci fossero stati quei due pazzi che hanno inventato il C
saremmo ancora in attesa del C++....
Quanto poi al fatto che non si scriva quasi piu' codice in C, questo è
relativamente vero, diciamo che quando il problema non richiede un
approccio Object Oriented il C++ si rivela superfluo. Poi non si puo'
dimenticare che buona parte dei sistemi operativi in uso hanno moduli
scritti ancora in C.

 Ecco perche' dicevo "vorrai" ;D
beh, scrivere in C++ non vuole dire sempre usare OO etc...
Io oggi giorno non scrivo praticamente piu' in C.... quando "ho bisogno" del
C scrivo in quello che e' (quasi) il sottoinsieme C del C++ che io
colloquialmente chiamo C/C++.
Tommy

pochissime eccezioni)
Il C un sottoinsieme del C++ ???
Semmai il C++ e' un'estensione del C.
Anzi per dirla tutta, le prime implementazioni del C++ erano soltanto
lavoro a livello di preprocessore (con un banale compilatore C).
---
acc(at)
libero.it

 Semmai il C++ e' un'estensione del C.
Mi sono perso la profonda differenza tra i due concetti, se escludiamo 
il puro significato storico, che, mi pare, si presupponeva conosciuto da 
tutti.


Cosa ne pensate di questo post di it.comp.lang.c++???
Bhe "ma non scriverai mai un programma in C, a meno che non devi
gestire dispositivi hardware" la trovo un po' forte, in diversi
contesti (penso ad esempio all' information retrieval) potresti dover
optare per il C per ottenere soluzioni più performanti (ovviamente
quando dico "optare per il C" intendo "non usare specifiche
caratteristiche del C++", nessuno ti vieta di compilare con un
compilatore per C++ un programma scritto in C..tendenzialmente
dovrebbe andare).
In un settore come quello dell'Information Retrieval (ma se ne
potrebbero citare tanti altri), quando devi processare magari qualche
milione di documenti anche una leggera differenza di prestazioni sul
singolo dato potrebbe essere abbastanza determinante e una maggiore
libertà (pagata direi a caro prezzo) potrebbe risultare utile.
Un altro caso che mi viene in mente è quellod ella programmazione
parallela, se ti trovi a lavorare con le PVM dovrai scrivere per forza
una fetta di codice in C... fermo restando che esiste un wrapper che
ti permette di usarle in C++
Augusto Pucci

> optare per il C per ottenere soluzioni più performanti [...]
Questione trita e ritrita, non c'è alcuna ragione valida per ritenere
del codice C più performante e veloce del codice C++.  In molti casi,
è vero l'esatto opposto.
Vedere i vecchi post (anche su it.comp.lang.c++) in caso di
scetticismo.



Se lo dici tu mi fido a occhi più o meno chiusi, anche se un certo
scetticismo mi rimane... ad esempio mi sembra strano che l'uso di
oggetti, quindi di strutture tendenzialmente di "più alto livello"
rispetto ai costrutti base del C non comporti un certo overhead... ma
non ho dati specifici per effettuare comparazioni.
Il mio intervento era più per sottolineare come l'uso del C non si
possa, a mio modesto parere, limitare a compiti strettamente di basso
livello.
In  particolare pensavo all'uso di librerie come le PVM (di cui ok
esiste la versione C++ ma si tratta solo di wrappers), o a compiti
strettamente connessi con il calcolo numerico... ma, ripeto, non ho
dati "oggettivi" su cui valutare, se non l'esperienza diretta di
confronto fra due soft >(uno in C e l'altro in C++) per il calcolo del
PageRank...quello in C si comportava nettamente meglio... ma può anche
essere un caso.. e non escludo che la mia preferenza per il C in
ambito Information Retrieval sia pregiudiziale.
Augusto Pucci

 rispetto ai costrutti base del C non comporti un certo overhead...
Comporta un certo overhead se si fa uso, per esempio, di
caratteristiche come RTTI e polimorfismo.  Tuttavia il vantaggio che
offre un oggetto è quello di incapsulare dei comportamenti e di
conseguenza la possibilità di ottimizzare questi comportamenti.
Quindi, a volte, anche portandosi dietro un certo overhead, un oggetto
è più efficiente, in termini di prestazioni, rispetto all'equivalente
divisione tra funzioni e dati.

divisione tra funzioni e dati.
Sì, comincio a capire quello che vuoi dire, la questione mi interessa
particolarmente, ma come hai giustamente ricordato è stata già
dibattuta in precedenza in modo approfondito (e non so se si possa
definire neppure del tutto IT su it.comp.lang.c :) ) ti ho mandato una
mail sul tuo indirizzo, ma non so se ti è arrivata (mi sa che
l'indirizzo non è quello vero giusto ? beato te... io mi son trovato
dopo poichi mesi la casella piena di spam).
Però mi interesserebbe avere il tuo parere (ovviamente se hai un po'
di tempo e voglia) su un settore di applicazione piuttosto specifico,
credo però che la cosa non abbia un interesse comune e che sia
piuttosoto OT per il NG... posso contattarti per mail ?
Il mio indirizzo 
august...@tin.it
 è effettivamente attivo.
Mi interessa il tuo pareree anche perchè sto affrontando lo studio
preliminare di un progetto che implica la manipolazione di moli
notevoli di dati..e quindi la scelta del linguaggio, della piattaforma
etc... devono essere più che opportune.
Augusto Pucci

 Quindi concordi al 99 %?
al 99% ?!?
Tommy

al 99% ?!?
   Ho capito la tua domanda al 99%
-- 
S.L.