Newsgroup: it.comp.lang.c++
Titolo: il C++ è terribilmente più lento del C?

è quello che affermano in molti, partendo dal concetto che comunque più alto
è il livello di un linguaggio di programmazione meno può essere ottimizzato
il codice etc. etc.
alcune persone dànno la colpa all'OOP per le mostruose richieste in termini
di risorse dei programmi commerciali d'oggi, piuttosto che alla oggettiva
complessità di questi ultimi.
la mia domanda è: fino a quanto questi discorsi sono veri?
PS scusate il crosspost ma visto l'oggetto sembra opportuno.

 la mia domanda è: fino a quanto questi discorsi sono veri?
Il C++ e' stato progettato per *non* essere meno efficiente del C. In
pratica la stragrande maggioranza dei costrutti del linguaggio non ha
costo se non e' utilizzata, ed i rimanenti (ad esempio le eccezioni)
possono essere implementate in modo da avere costo minimo. E' chiaro che
l'utilizzo di costrutti evoluti non e' gratis, ma per avere le stesse
funzionalita' in C bisogna costruirsele a mano, e non e' detto che sia
possibile farlo in modo piu' efficiente.
Ciao,
Nicola

 la mia domanda è: fino a quanto questi discorsi sono veri?
Il C++ non è per nulla più lento del C !
Tanto e' vero che se programmi modalità C-style e' (dipende dai compilatori)
un tantino piu' veloce (in sotanza il contrario di quello che dici).
Riguardo alla OOP, se usata con giudizio, non rallenta quasi nulla le
applicazioni. Se invece si diventa class-happy e si usa il C++ in modo non
opportuno le prestazioni possono calare ;-)
Tieni a mente che ogni singola caratteristica che e' stata aggiunta al C++
e' stata pensata ed implementata in modo da non danneggiare le prestazioni.
Riguardo alla lentezza dei programmi di oggi....
Ti smentisco subito dicendo che i programmi di oggi sono effettivamente
complicati !!!
Poi e' vero che alcuni usano troppa memoria etc... ma questo e' un altro
discorso.
Per concludere, alcuni programmi di oggi, senza l'ausilio della OOP
sarebbero molto piu' difficili e richiederebbero molto piu' tempo per essere
implementati. Inoltre grazie alla OOP e' piu' semplice lavorare in grossi
team di sviluppatori.
Ma dimmi, con questa domanda, a che cosa volevi giungere ?!?
Dovremmo forse tutti programmare in assembly ? ;-) (scherzo)
Alex

 possibile farlo in modo piu' efficiente.
naturalmente parli di funzionalità da marziani    :)    non certo
implementabili da un normale studente, vero?
mi pare di capire che, se non si deve spremere ogni singolo ciclo dalla
macchina, i vantaggi del C++ siano di gran lunga superiori ai costi in
termini di prestazioni.
mi domando ancora se per una persona che inizia il C puro non sia
didatticamente più valido.
grazie    ;)

 didatticamente più valido.
Non vedo perche'. Anche nei suoi elementi di base il C++ ha tutto quello
che ha il C ed e' piu' stretto nel controllo dei tipi.
Ciao,
Nicola

 che ha il C ed e' piu' stretto nel controllo dei tipi.
è quello che pensavo anch'io, poi ho visto un libro sul C e un
paio sul C++ (li ho giusto scorsi) e l'approccio era
completamente diverso: nei libri sul C++ si trattava ogni
problema in termini di classi, non uno struct, non una semplice
funzione, sarà che ho consultato libri sbagliati?
ho notato che c'è molta ammirazione per il lippmann della
addison, che per essere un libro da 1200 pp. ha anche un costo
molto contenuto, continuo a chiedermi se studiando con calma da
un libro dedicato al C++ si possa arrivare a capire bene cosa
avviene a "basso livello" o anche a usare con cognizione di
causa il preprocessore o roba del genere, cose che su un buon
libro C sono per lo meno menzionate (scusa se dico fesserie ma
sono veramente nuovo del C), puoi darmi qualche consiglio?; io
ho fatto solo un pò di programmazione procedurale in VBA, ho
anche messo sù un paio di "oggetti" (il VBA/VB ha una
rudimentale gestione degli oggetti senza ereditarietà&company).
grazie.