|
#1
|
|
|
|
|
Con C++ posso fare tutto ciò che fa C oppure ci sono campi in cui posso
fare con uno e non con l'altro? Ciao nero23 |
|
#2
|
|
|
|
|
Il 21/01/2012 20:25, NERO23 ha scritto:
> > Con C++ posso fare tutto ciò che fa C oppure ci sono campi in cui posso > fare con uno e non con l'altro? librerie a parte, e compatibilità con codice preesistente a parte, direi che 1) col C++ puoi fare TUTTO quel che fai in C, a patto di limitarti all'uso ristretto delle features native 2) col C puoi fare quasi TUTTO (al limite tutto) quel che puoi fare in C++, salvo il farti in alcuni casi un mazzo monumentale per emulare le caratteristiche mancanti. O suicidarti nel debub laddove vuoi emulare i templates con le macro scritte a mano, che danno messaggi di errore tersi come gli oracoli di Delfi :) Sostanzialmente il C++ non ha rinunciato a nulla di quanto consentiva il C. Ti consiglia solo, caldamente, di scrivere pulito e tipizzato strettamente (e early bounded), ma ti consente ancora, a patto di dichiarare esplicitamente la tua volontà di barare, di fare cast a mano e aggirare la tipizzazione stessa. Chiaro che non ti incoraggia a farlo (e sostanzialmente nemmeno serve, salvo insistere a programmare C-style). ciao Soviet [..] |
|
#3
|
|
|
|
|
< Sostanzialmente il C++ non ha rinunciato a nulla di quanto
< consentiva il C. Ti consiglia solo, caldamente, di scrivere < pulito e tipizzato strettamente (e early bounded), ma ti .. In rete ho letto che con C puoi progettare sistemi operativi e driver per periferiche. In questo caso, C++ come si posiziona? Grazie nero23 |
|
#4
|
|
|
|
|
Il 21/01/2012 21:01, NERO23 ha scritto:
> > < Sostanzialmente il C++ non ha rinunciato a nulla di quanto > < consentiva il C. Ti consiglia solo, caldamente, di scrivere > < pulito e tipizzato strettamente (e early bounded), ma ti .. > > In rete ho letto che con C puoi progettare sistemi operativi e driver > per periferiche. > In questo caso, C++ come si posiziona? saper fare quelle cose richiede sia un linguaggio che possa spingersi a contatto con l'hardware (e questo lo può fare potendo leggere e scrivere direttamente la memoria, pur magari con estensioni proprietarie dei vari compilatori, sia con l'ASM inline), ma soprattutto richiede di conoscere perfettamente l'hardware medesimo (nel caso di drivers, anche l'OS). Quindi sono target alla portata solo di programmatori molto esperti. MA di per sé stesso il linguaggio ti sostiene egregiamente. Essenzialmente, se lo vuoi, puoi ancora scrivere codice praticamente privo di effetti collaterali, stile WYSIWYG. Poi se vuoi puoi anche astrarre. Anzi, il bello è di poter fare tutto insieme, laddove serve. Imho è tra i linguaggi più "elastici", nel senso che è considerato di medio livello, ma può spingersi sia in basso che in alto, alla bisogna. Ovviamente col solo linguaggio, senza delle buone librerie, non è che ci si possa fare tutto. In questo è diverso da tanti altri più di moda, che nascono già con una dotazione di pacchetti built-in estremamente ricca e sofisticata. MA per i compiti che dici, di livello vicino all'hardware, tutta la parte gui serve a nada, al massimo le strutture tipo semafori, mutex, code, servizi da sistema operativo ciao Soviet [..] |
|
#5
|
|
|
|
|
NERO23 <nero.23> wrote:
> In rete ho letto che con C puoi progettare sistemi operativi e driver per > periferiche. Intano inizia ad imparare a progettare sistemi operativi. |
|
#6
|
|
|
|
|
> Intano inizia ad imparare a progettare sistemi operativi.
ho chiesto ben altro! |
|
#7
|
|
|
|
|
NERO23 <nero.23> wrote:
> > Intano inizia ad imparare a progettare sistemi operativi. > > ho chiesto ben altro! Vedi, il problema e' che e' evidente che ti stai ponendo falsi problemi. In generale, quello che chiedi, non ha senso. Vuoi sapere se imparare C o C++? Vuoi imparare quale sia piu' indicato per fare $X? Il problema e' che, per quando C++ sia un linguaggio complesso da imparare, il costo di imparare $X e' assolutamente molto maggiore della somma di imparare entrambi i linguaggi. Io credo che quello che ti farebbe bene, e' probabilmente capire cosa vuoi fare (imparare un linguaggio o l'altro e' quasi un dettaglio, probabilmente se non sai nemmeno programmare le scelte migliori sono altre ancora). |
|
#8
|
|
|
|
|
Se chiedo al mio dietologo cosa fa ingrassare di meno tra la CocaCola e
l'olio, mi aspetto che mi dica semplicemente: CocaCola! Sapere quale delle due fa più male al nostro organismo, è un'altra domanda che io non ho fatto e tantomeno devo mettermi a dieta. E' solo una curiosità... Non voglio fare polemiche, ma ritengo che Soviet_Mario abbia dato la risposta più appropriata fregandosene se io debba imparare uno o l'altro linguaggio di programmazione. Non te la prendere... Ciao nero23 |
|
#9
|
|
|
|
|
Il 25/01/2012 22:05, Enrico Franchi ha scritto:
>> >> ho chiesto ben altro! > > Vedi, il problema e' che e' evidente che ti stai ponendo falsi problemi. > In generale, quello che chiedi, non ha senso. Gli volevo rispondere esattamente così, ma poi ho lasciato perdere e pare che ho fatto bene... comunque lode a te per la buona volontà di predicare agli uccelli :-) |
|
#10
|
|
|
|
|
On Jan 25, 10:57 pm, "NERO23" <nero> wrote:
> Se chiedo al mio dietologo cosa fa ingrassare di meno tra la CocaCola e > l'olio, mi aspetto che mi dica semplicemente: CocaCola! > Sapere quale delle due fa più male al nostro organismo, è un'altra domanda > che io non ho fatto e tantomeno devo mettermi a dieta. On Jan 21, 8:25 pm, "NERO23" <nero> wrote: > Con C++ posso fare tutto ciò che fa C? > Sì. P.S. Come vedi, non sarebbe stato molto utile. |
|
#11
|
|
|
|
|
FtM <fmassei> wrote:
> P.S. Come vedi, non sarebbe stato molto utile. Anche perche' si completa con "con C posso fare tutto quello che faccio in C++". E per scendere nel dettaglio di esattamente cosa venga meglio con uno e con l'altro... beh, buona fortuna. |
|
#12
|
|
|
|
|
Massimo Soricetti <max-67> wrote:
> Gli volevo rispondere esattamente così, ma poi ho lasciato perdere e > pare che ho fatto bene... Mi costa cosi' poco... |
|
#13
|
|
|
|
|
Il 25/01/2012 22:05, Enrico Franchi ha scritto:
> NERO23<nero.23> wrote: > >>> Intano inizia ad imparare a progettare sistemi operativi. >> >> ho chiesto ben altro! > > Vedi, il problema e' che e' evidente che ti stai ponendo falsi problemi. > In generale, quello che chiedi, non ha senso. Io penso invece che abbia senso chiedersi quali tipi di software si possano sviluppare con un dato linguaggio. Principalmente, perche' per produrre del software con un linguaggio serve un sistema di sviluppo (compilatore o interprete, e librerie), e per ogni coppia piattaforma-linguaggio di programmazione, possono esistere zero o più compilatori decenti. Secondariamente, per una coppia piattaforma-linguaggio di programmazione, pur essendo possibile sviluppare del software, potrebbero esserci svantaggi di vario tipo, come l'inefficienza inaccettabile, la carenza di documentazione o di librerie, la difficolta' di trovare persone da assumere, la penuria di articoli, libri, blog, forum, corsi che trattino l'argomento. Per quanto riguarda il C++, non saprei se esistono piattaforme per cui non esistano compilatori, ma mi pare che il C++ sia usato poco o niente per sviluppare software per microcontrollori a 8-bit, che solitamente hanno una manciata di chilobyte di RAM. Mi pare anche che per alcune piattaforme solitamente si evitano: - l'allocazione esplicita della memoria (tramite malloc, free, new e delete), e quindi le stringhe e i contenitori della libreria standard; - le eccezioni; - la RTTI; ma questo non impedisce di usare il resto del linguaggio C++. |
|
#14
|
|
|
|
|
On Jan 26, 7:06 pm, Carlo Milanesi <carlonospammilan>
wrote: [..] > non esistano compilatori, ma mi pare che il C++ sia usato poco o niente > per sviluppare software per microcontrollori a 8-bit, che solitamente > hanno una manciata di chilobyte di RAM. > Mi pare anche che per alcune piattaforme solitamente si evitano: > - l'allocazione esplicita della memoria (tramite malloc, free, new e > delete), e quindi le stringhe e i contenitori della libreria standard; > - le eccezioni; > - la RTTI; > ma questo non impedisce di usare il resto del linguaggio C++. > Infatti il succo era che solitamente si sceglie il linguaggio in base alla necessità e non viceversa :-) Ciao! |
|
#15
|
|
|
|
|
Il 26/01/2012 19:06, Carlo Milanesi ha scritto:
> Il 25/01/2012 22:05, Enrico Franchi ha scritto: >> NERO23<nero.23> wrote: >> >>>> Intano inizia ad imparare a progettare sistemi operativi. >>> >>> ho chiesto ben altro! >> >> Vedi, il problema e' che e' evidente che ti stai ponendo falsi problemi. >> In generale, quello che chiedi, non ha senso. > > Io penso invece che abbia senso chiedersi quali tipi di software si > possano sviluppare con un dato linguaggio. CUT > > Per quanto riguarda il C++, non saprei se esistono piattaforme per cui > non esistano compilatori, ma mi pare che il C++ sia usato poco o niente > per sviluppare software per microcontrollori a 8-bit, che solitamente > hanno una manciata di chilobyte di RAM. > Mi pare anche che per alcune piattaforme solitamente si evitano: > - l'allocazione esplicita della memoria (tramite malloc, free, new e > delete), e quindi le stringhe e i contenitori della libreria standard; > - le eccezioni; > - la RTTI; > ma questo non impedisce di usare il resto del linguaggio C++. anche io penso che C++ sia "scalabile in basso" sino al C schietto da cui deriva. E salvo rimettere mano a progetti giganteschi già esistenti in C, non capisco nessun vantaggio a cominciarne ex novo uno in C oggigiorno. ciao Soviet |
|
|
| Discussioni simili | |
| Una curiosità, giusto una curiosità... ....il Santo secondo voi sta lurkando nell'ombra? Si potrebbe fare il tentativo di gettare un'esca per "risvegliarlo"? :-) |
|
| una curiosità su certe curiosità Immaginate che un vostro amico vi dia una foto tramite internet, poi al momento di aprirla vi dica: Ehy scusami mi sono sbagliato quella foto è una cosa orripilante, chessò... |
|
| Curiosità... solo curiosità... [..] Mi dite secondo voi che diavolo di palmare è, quello che sta dietro la penna? Sembra tipo un Treo... ma non lo riconosco... è diverso... :-( Grassie B. |
|
| curiosità nel cd della x1900 xtx ci sono i driver catalyst 5.13 che chiaramente riconoscono la scheda come mai i 6.1 non la riconoscono ? come mai ATI non rende disponibile i 6.2... |
|
|
Tutti gli orari sono GMT. Attualmente sono le 00:22. | Privacy Policy
|