Discussione: Torvalds e C++
View Single Post
Old 08-09-2007, 13:25   #97
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Il C++ può essere di basso livello tanto quanto il C: bisogna "soltanto" imparare a usare lo strumento giusto a seconda del tipo di (sotto)problema da risolvere.

Per far ciò è necessaria parecchia esperienza: bisogna entrare nella mentalità del programmatore C++, perché il linguaggio è complesso e ogni strumento merita d'esser sviscerato e "maturato".

Non sono d'accordo sul fatto che la programmazione di sistema debba essere relegata all'uso di strumenti di basso livello: proprio la presenza di s.o. scritti con linguaggi di livello più alto ne è, appunto, una controprova.

Come già detto si tratta di usare gli strumenti che il C++ (o qualunque altro linguaggio di alto livello) mette a disposizione nel giusto modo e al momento giusto.
Tanto per dirne una: non mi aspetto che all'interno della funzione malloc del s.o. venga utilizzato l'operatore new per allocare memoria per un oggetto, se non eventualmente dopo aver ridefinito opportunamente le funzioni di dis/allocazione da new e delete.
Quello che intendo dire e' che le funzionalita' in piu' del C++ vengono ad un costo notevole e, anche discorsi del tipo "il C e' meglio del C++" li trovo ridicoli, posso capire chi invece la mette sul "uso il C perche' secondo me il gioco non vale la candela", soprattutto in certi contesti.
Ad esempio gli iteratori, anche se molto comodi, richiedono una quantita' non banale di codice da scrivere, tanto che nei casi semplici uno non li usa, e ad esempio cicla direttamente sugli indici di un array. La cosa non e' bella perche' se certe forme, che dovrebbero esseer idiomatiche, non vengono usate nei casi semplici, i principianti tendono a non impararle e ad usarle col risultato che non lo faranno neanche nei casi in cui tornerebbe comodo, e rischiano di non capire quando lo fanno gli altri.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso