rilevante


  rilevante > comp.lang.* > comp.lang.cpp

 #1  
21.01.2012, 19:25
NERO23
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  
21.01.2012, 19:52
Soviet_Mario
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  
21.01.2012, 20:01
NERO23
< 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  
21.01.2012, 22:54
Soviet_Mario
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  
24.01.2012, 16:57
Enrico Franchi
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  
25.01.2012, 16:53
NERO23
> Intano inizia ad imparare a progettare sistemi operativi.


ho chiesto ben altro!
 #7  
25.01.2012, 21:05
Enrico Franchi
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  
25.01.2012, 21:57
NERO23
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  
26.01.2012, 00:09
Massimo Soricetti
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  
26.01.2012, 07:37
FtM
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  
26.01.2012, 17:17
Enrico Franchi
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  
26.01.2012, 17:17
Enrico Franchi
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  
26.01.2012, 18:06
Carlo Milanesi
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  
26.01.2012, 19:04
FtM
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  
26.01.2012, 19:42
Soviet_Mario
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