[FoLUG]C++
Demis Palma
demis.palma@tiscali.it
Mar 1 Lug 2003 15:11:14 CEST
Il mar, 2003-07-01 alle 11:58, Christian Zoffoli ha scritto:
ti ricordo che il kernel di linux e' scritto C, quello di FreeBSD -
NetBSD - OpenBSD pure, la maggior parte del kernel di Windows NT-2000-XP
pure...
...vogliamo parlare delle performances? ...in particolare della
velocita' di startup? ...e dell'accrocchio del prelinking ?
Ogni programmatore sa che un kernel di un sistema operativo va scritto
in assembler e in C, perche' nelle procedure time-critical da una
risposta migliore. E' risaputo che il C++ offre performance inferiori.
E' un prezzo che si paga volentieri, per elevarsi ad un livello di
astrazione superiore. Va da se che se alla tua azienda e' richiesto una
procedura gestionale classica, solo un pazzo si metterebbe a scrivere il
programma in assembler e in C. Consegneresti un preventivo con tempi di
consegna e costi di gran lunga superiori rispetto ai tuoi concorrenti.
a parte il fatto che la maggior parte di quello che ho elencato non e'
legata al linguaggio ...ma agli argomenti che ogni programmatore C/C++ o
di qualsiasi altro linguaggio serio dovrebbe conoscere (perche' sono la
base per impostare il proprio lavoro e valutare la situazione nel modo +
corretto).
Visto che insisti con le basi per impostare il lavoro, voglio rimandarti
a pagina 7 del libro "C++ linguaggio, libreria standard, principi di
programmazione. Scritto da Bjarne Stroustrup, edito da Addison-Wesley":
"Il C++ puo' essere appreso gradualmente. Ne consegue che lo studente
avra' spesso occasione di usare il C++ per costruire sistemi REALI molto
prima di avere compreso ogni caratteristica del linguaggio".
hai letto un opuscolo M$ ultimamente ? ...perche' dire che un
programmatore deve ignorare i dettagli implementativi e' tipico della
"politica brainless" di M$.
...chissa' perche' ci sono sempre + applicazioni insicure in
circolazione ...forse altri hanno letto lo stesso opuscolo
Se non ricordo male la maggior parte delle applicazioni insicure devono
nel 90% dei casi le loro vulnerabilita' a dei buffer overflow, cosa
comunissima quando hai un buffer allocato staticamente e di dimensioni
fisse (caratteristica del C). Ti sfido a mandare in buffer overflow una
istanza di AnsiString :)
L'information Hiding e' la base della programmazione ad oggetti. Che sia
una politica giusta o sbagliata non importa, potremmo scrivere tonnelate
di argomentazioni. Di fatto, se rifiuti l'information hiding, rifiuti
l'intero paradigma della programmazione ad oggetti, e con il C++ anche
Java, Visual Basic, e compagnia bella.
...e meno efficiente. Senza tralascia il fatto che l'incompatibilita'
tra i vari compilatori (che si verifica unicamente con il C++) puo'
essere una croce notevole per un programmatore.
Certo che ' meno efficiente. Ma scusa, dipende dagli obiettivi che devi
raggiungere. Allora aboliamo tutti i linguaggi e torniamo all'assembler.
In questo contesto nessun essere umano produrrebbe un'applicazione piu'
sofisticata di un semplice editor di testo. Per un programma di uso
comune, se una elaborazione impiega un decimo di secondo, oppure mezzo
decimo di secondo, non fa differenza. La differenza la fanno i costi di
sviluppo e quelli di manutenzione / aggiunte di nuove funzionalita'.
Tuttavia devo precisare che non sono contrario al C++ ...anzi e' un
linguaggio molto interessante sotto vari punti di vista, sempre
considerando il fatto che e' indispensabile avere basi di programmazione
+ che solide.
Nemmeno io sono contrario al C. Credo che pero' sia destinato a certi
usi. Tu al C++ gli stai cercando di trovare dei difetti, ma concorderai
con me che usare il C per applicativo comuni, equivale ad usare uno
schiacciasassi per schiacciare delle noci.
...ovviamente ognuno tira l'acqua al proprio mulino.
Ribadisco che per noi, insegnare C o C++ o Java o altri linguaggi e'
indifferente. Basta che sia quello che il cliente vuole.
Pero' dire "imparate il C++ perche' e' + figo" ...suona un po' come una
chiaccherata al bar davanti ad una partita di calcio.
Penso che l'eta' della pietra non e' finita perche' erano finite le
pietre.
Non e' colpa mia se all'universita' vi frustrano con linguaggi quali il
Fortran (o come diavolo si scrive?) ed il C.
Io non ho detto di imparare il C++ perche' fa + fico.
Ho detto che se l'obiettivo e' di imparare il C++, nel dubbio se passare
prima dal C, c'e' la convinzione generale che sia meglio affrontare
direttamente il C++.
E mi sembra che la domanda iniziale, riguardasse una persona che aveva
come obiettivo quello di scrivere codice in C++.
Bye,
Christian
Saro' lieto di continuare la discussione in privato, ma preferisco non
tediare piu' la mailing list con questo argomento.
Demis Palma
demis.palma@tiscali.it
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.linux.it/private/folug/attachments/20030701/7d1ef594/attachment.html
Maggiori informazioni sulla lista
FoLUG