Newsgroup: it.comp.os.linux.development
Titolo: [OT?] c vs c++

oggi un amico mi ha chiesto una mano per un programma in c.
nel discutere mi ha esposto un suo progetto che deve andare bello spinto e
mi ha chiesto un parere su quale linguaggio usare tra c e c++ (ma anche
altri)
la mia categorica risposta è stata , se quello che ti interessa sono SOLO
le performance, non si scappa: c e/o assembler.
al che mi ha dato (da semi profano che vuole imparare e che cerca di
farlo tramite opinioni trovate in rete) questo link:
http://unthought.net/c++/c_vs_c++.html
in alcuni casi sono stato in grado di dire : "questo spara gran cagate"
in altri no, visto che conosco ben poco il c++
voi che ne pensate?

 voi che ne pensate?
non ho letto tutto il link, ma imho il c++ non è più lento del c, se non 
forse nella fase di inizializzazione dell'applicativo (cioè tutto quello 
che avviene prima dell'inizio del main).
-- 
SF
"Breaking something which works as intended in order to solve a problem 
existing in delusion-space is not usually called 'a workaround'."

 voi che ne pensate?
Non ho visto grosse cagate, quello che dice sostanzialmente, e che io 
condivido, e` che il C++ e` un superset del C, che in se non ha alcun 
overhead, certo che se uno usa std::string invece di char buffer[xxxx] o 
std::vector invece degli array ha un po` di overhead, overhead che pero` 
spesso e` poco significativo e migliora la sicurezza e la leggibilita` 
del codice.
Nessuno ti vieta di utilizzare strutture e funzioni della libreria C 
quando la performance e` importante.
Personalmente nelle applicazioni che devono elaborare grossi file di 
testo uso sempre l'I/O su file ANSI (fopen/fread/fwrite) in quanto 
nettamente piu` performante degli iostream... ma alla comodita` di 
std::string, std::vector, std::map... non rinuncio se non e` necessario.
Bye,
  Gabry

 le performance, non si scappa: c e/o assembler.
pensavo che per le performance bisognasse pensare *bene* all'algoritmo e ai
vari dettagli implementativi :)
btw, se dici che il C++ è lento: 
http://eigen.tuxfamily.org
libreria di algebra lineare scritta in c++ che (gli autori dicono, non l'ho
mai usata + di tanto) va veloce tanto quanto le librerie scritte (AFAIK) in
C+fortran+assembly dall'intel per i propri processsori
-- 
By ZeD

Vito De Tullio ha scritto:

Mi accodo segalando anche CGAL (
www.cgal.org
), libreria di geometria
computazionale largamente utilizzata in ambito scientifico scritta in
C++. Ovviamente la sto citando perche` in fatto di prestazioni sta ben
sopra tante altre!


Vabè non è che citando programmi ben scritti possiamo asserire che un
linguaggio è più veloce di altri. Io direi che come velocità C e C++
quasi si equivalgono; il C++, nelle cose che fa in piu del C, ha
spesso maggiore overhead (ad es. virtual call ed eccezioni), ma
tuttavia non è un paragone che regge visto che in C questi
comportamenti non si hanno proprio.
Sapevo che il C++ è piu lento in fase di linking, ma ora mi sfugge il
motivo. Forse è perché, poiché permette overload, i nomi dei simboli
sono traslati e piu lunghi.
Fatto sta che di sicuro, un programma scritto in C non è piu lento
dello stesso programma compilato in C++.
Ciauz

 dello stesso programma compilato in C++.
Il fatto è che, a meno di programmi banali, non è così immediato fare il
porting di un programma C++ scritto *bene* in C (e viceversa).
-- 
By ZeD