Newsgroup: it.comp.os.linux.development
Titolo: perchè C e non C++??

Da perecchio volevo chiederlo, perchč con il miglior sistema operativo
(linux) si utilizza piů il C che il C++?
ad esempio perchč il kernel č scritto in C?
perdonatemi se a qualcuno questa domanda puň sembrare un po' stupida, sono
un novellino della programmazione sotto linux, ma non della programmazzione
C++.
ciao ciaoooooooo
+-sent by sgrung
 |
 `- "Sono stato nessuno per diventare qualcuno"

ad esempio perchč il kernel č scritto in C?
http://wwwtuxorg/lkml/#s1-2
http://wwwtuxorg/lkml/#s1-4
--
Roberto Lupi
http://www.lupex.net/
http://www.lupi.ws/

ad esempio perchč il kernel č scritto in C?
http://www.tux.org/lkml/#s1-2
http://www.tux.org/lkml/#s1-4


 ad esempio perchč il kernel č scritto in C?
Velocita' e predicibilita' del codice.
Ciao
-- 
Simone Piccardi
Microsoft is NOT the answer. Microsoft is the Question.
The answer is: "NO!"

 (linux) si utilizza piů il C che il C++?
Ci sono vari motivi, ad esempio 
- il fatto che l'implementazione di g++ del C++ non e' molto
efficiente (soprattutto nelle librerie standard),
- le ABI nel caso del C++ non sono standard (-> librerie compilate con
il compilatore X non si linkano con il codice oggetto prodotto dal
compilatore Y)
- C++ al contrario del C e' tremendamente complesso :-)
Ad esempio nel caso di GNOME, e' stato scelto il C al posto del C++
perche' questo lo rende piu' facile da portare verso altri
SO/compilatori ed inoltre perche' in questo modo risulta piu' facile
creare binding GNOME per altri linguaggi (tra i quali C++).
Ciao,
-- 
Diego    | Per le repliche elimina dal mio indirizzo le 
Dainese  | `x' e inverti le due parole intorno alla `@'

 wrote in message
x7hf5jk...@benten.tomobiki.it...


C++?
No.
Il C++ e' comunque meglio del C, sotto qualunque ambiente.
I motivi che hanno portato a scrivere il kernel di Linux in C,
anziche' in C++ non devono far pensare che il C sia meglio del C++.
Il C++ corregge a livello standard dei difetti del C e lo arricchisce
in maniera esorbitante. Ci sono, tra l'altro, sistemi operativi
scritti quasi interamente in C++.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------
Dovro' prendere lezioni di Internet, 
se non sai di Internet non ti considera nessuno 
(Carmen di Pietro) 
-----------------------------------------------

 Il C++ e' comunque meglio del C, sotto qualunque ambiente.
Permettimi di dissentire ma vorrei evitare l'ingenerazione di flame non
molto in argomento, quindi la pianterei qui.


molto in argomento, quindi la pianterei qui.
Quale flame ? "la pianterei qui" ?
Nessuno sta alimentando flame...ma la vogliamo smettere di vedere
litigi laddove non ci sono ??? questi sono gruppi di discussione ed e'
esattamente questo che si sta facendo. Se hai motivi per affermare che
il C sia meglio del C++, esponili e si discutera' sul perche'.
Io sono fermamente convinto del contrario, perche' conosco i vantaggi
derivanti dall'uso del C++ rispetto al C. In quanto al "non molto in
argomento", questo gruppo ha suffisso "development" e quindi trai le
giuste conclusioni.


 giuste conclusioni.
Io traggo le dovute conclusioni che nascono dal fatto che ci sono sia
it.comp.lang.c che it.comp.lang.c++, e che discutere di quanto e' meglio
il c++ non mi pare una cosa che ha una attinenza specifica allo sviluppo
sotto linux; per cui resto dell'opinione che la suddetta discussione
andrebbe fatta altrove.


e generalizzata.
Io non parlo affatto di implementazioni particolari, ma del linguaggio
*standard*. Le implementazioni sono un'altro aspetto del problema.
Il C++ e' indubbiamente migliore, piu' potente e per certi versi anche
piu' veloce del vecchio C. In qualsiasi ambiente in cui si implementi
un compilatore C++ aderente allo standard, si avra' un linguaggio
migliore del C.


ragà ma vorrei sapere perchè ogni scusa è buona per litigare sui newsgroup!
alimentiamo una discussione seria senza litigare!!
Stavamo parlando se sotto sistemi *nix è meglio sviluppare in C o in C++ sia
software applicativo che di sistema, non credo che la richiesta, e le
risposte, siano OT, e non credo dispiaccia agli altri frequentatori del NG
avere qualche altra info al riguardo.
io la penso così!


 C++?
Uhm, forse cosi' la semplifichi troppo... diciamo che, per sviluppare
un certo genere di programmi (come ad esempio le librerie di base),
per vari motivi molti preferiscono continuare ad usare il C al posto
del C++.


 avra' un linguaggio migliore del C.
Anche se consideriamo solo i linguaggi (e non le implementazioni) non
salterei subito alla tua conclusione: se da una parte C++ offre molte
piu' "features" di C e contemporaneamente riesce a mantenere al 99% la
compatibilita' con quest'ultimo, dall'altra proprio per questo motivo
il linguaggio risulta tremendamente piu' complesso.
Questo in generale e' sempre un problema per un PL, ed in particolare
in questo caso vedo almeno due svantaggi pratici: primo C++ e' piu'
difficile da imparare, secondo rende piu' difficile interfacciare
codice C++ con altri linguaggi.


 
Che il C++ non sia ancora ben standardizzato non ci sono dubbi... ma che 
sia piu' complesso del C... beh forse per programmi da console ti posso 
dare ragione... ma per il resto... vedi GNOME vs KDE. Sinceramente gnome e' 
un incubo da studiare...
Edo
-- 
Beh, naturalmente katamail non e' una caata!
E' un espediante contro sgraditi bot arraffa-indirizzi,
se volete contattarmi fate l'ovvia sostituzione.

codice C++ con altri linguaggi.
Visto a basso livello (cioe' a livello di traduzione) il codice C++
non e' molto diverso da codice C. Compilando con le opportune
direttive, si produce codice interfacciabile.
Il fatto che il C++ sia piu' complesso del C non basta a giustificare
che quest'ultimo sia *migliore*.
Anzi, tutt'altro. 


piu' veloce del vecchio C. In qualsiasi ambiente in cui si implementi
E` anche estremamente piu` complicato da imparare e da usare, e se non
lo si sa usare bene restituisce risultati molto peggiori di quelli che
si avrebbero con il C.
-- 
ciao, | * The Internet is full. Go away.  -- Joel Furr *
Marco | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

si avrebbero con il C.
Non vedo su che base li si giudichi "peggiori"... mah....
Non confondiamo l'incapacita' di utilizzare un linguaggio (soggettiva)
con l'inferiorita' di un linguaggio rispetto all'altro (oggettiva).

 direttive, si produce codice interfacciabile.
Non ho capito a cosa ti stai riferendo... Forse all'ABI?
L'avevo gia' menzionato nell'altro messaggio: il problema e' che lo
standard ANSI/ISO del C++ non definisce un'ABI, e quindi ogni
compilatore ha scelto il proprio formato spesso e volentieri
incompatibile con quello degli altri compilatori... E finche' non
amplieranno lo standard, non ci sono speranze di ottenere codice
interfacciabile (qualcuno mi corregga se sbaglio).
Comunque io mi stavo riferendo alla disparita' a livello puramente di
"features" tra il C++ e la maggior parte degli altri linguaggi: ad
esempio gia' il solo fatto che supporta le classi, rende piu'
difficile creare wrapper per linguaggi che non siano OO.


 dare ragione... ma per il resto... 
Io parlavo di un'altra cosa: C++ *come linguaggio* e'
indiscutibilmente piu' complesso di C... Ad esempio se fosse possibile
dare una semantica formale dei 2 linguaggi (cosa di cui dubito
fortemente nel caso del C++) quella del C sarebbe sicuramente molto
piu' "breve".
Un altro modo per rendersene conto e' constatare che la "bibbia" sul C
(il K&R) e' lunga meno di 300 pagine, mentre quella sul C++ (lo
Stroustrup) e' lunga piu' di 900 (ed e' anche molto piu' incasinata)!
;-)
Tu invece ti stai riferendo alla produttivita' offerta dai 2
linguaggi, e sul fatto che il C++ alla lunga renda piu' produttivi
sono daccordo (ma rimangono gli svantaggi "pratici" che ho menzionato
nell'altro messaggio).





ad oggetti richiede anche molta + RAM.
Non e' vero, ripeto che "a basso livello" non c'e' alcuna differenza
tra variabili e membri di classe. Anche il consumo di RAM in piu' e'
minimo o identico. Il C++ (come afferma lo stesso Bruce Eckel) eredita
dal C l'efficienza e introduce overhead minimi (a volte nessuno).

 
A parte che da quanto mi risulta il kernel di win2000 e' scritto per
la maggior parte in C (ma potrei sbagliarmi), dubito che sia
prevalentemente colpa sua se win2000 richiede cosi' tanta ram :-)


 piu' "breve".
Non credo che sia una buona regola per giudicare la complessità di un
lingaggio.
Se fosse possibile descrivere con una grammatica formale (non ambigua)
il linguaggio italiano, questa sarebbe sicuramente lunghissima. EPPURE
tutti noi usiamo (bene) questo linguaggio.
-- 
		Michele

 dal C l'efficienza e introduce overhead minimi (a volte nessuno).
In teoria probabilmente hai ragione, ma a me è capitato un caso concreto
proprio di questo tipo, anzichè richiamare frequentemente un metodo ho messo
il suo valore in una variabile e da quel momento accedevo solo + alla
variabile. Il codice era decisamente + veloce.

 tutti noi usiamo (bene) questo linguaggio.
Sul "bene" permettimi di dissentire ;-)
A parte questo, il paragone con il linguaggio parlato calza poco:
possiamo permetterci un linguaggio naturale tremendamente ambiguo
perche' il cervello umano (al contrario di una CPU) e' molto bravo ad
interpretare le cose dal contesto in cui si trovano e a correggere
eventuali errori.
I PL invece sono tutto un altro paio di maniche, visto che servono per
descrivere un algoritmo in maniera precisa (non ambiguga); in questo
caso e' decisamente meglio che la semantica del linguaggio che si
utilizza per farlo sia la piu' semplice possibile.


 Punto e basta.
Concordo abbastanza, ma sono convinto che non sia un caso che la massa
dell'universo sia tanto vicina al valore critico, ovvero penso che
l'universo sia piatto. Chi vivrà, vedrà! No? :-)))
Bye

Io ritengo che se si usa il C++ lo si fa per avere l'opportunità di
sfruttare la programmazione OO. Ritengo anche che se facciamo questo il
nostro eseguibile sarà + lento e richiederà + memoria. Molti mi dicono che
il c++ non ha questi svantaggi, ma io ho provato sulla mia pelle un pgm che
accedeva ad un metodo circa 220.000 volte: era un chiodo! Non ho +
richiamato il metodo, e il problema si è notevolmente limitato. Provare per
credere!
Ciao a tutti.
P.S. Ma perchè non proviamo a porre la domanda a qualcuno che sta
sviluppando il nostro S.O.?

sviluppando il nostro S.O.?
Perchè la domanda è stata già posta sulla mailing list del kernel, tanto
tempo fa, il thread era qualcosa tipo "Exception handling in C++" e le
risposte sono state assolutamente esaurienti.