Newsgroup: it.comp.lang.c++
Titolo: [OT] C e C++

Perché il ng del C è più frequentato di quello del C++?
Kiuhnm

 Kiuhnm
Mmmmmmmmm
Perche' ci sono piu' programmatori C che C++
oppure
Perche' i programmatori C++ sono troppo impegnati a litigare con il 
compilatore (gcc,VC,SunForte) e non hanno molto tempo per scrivere sul 
newsgroup
Chissa'
Ciao Fabio 

 Perché il ng del C è più frequentato di quello del C++?
Per lo stesso motivo per cui... no, beh, lasciamo perdere ;-)
Ciao,
Nicola

 newsgroup
Oppure perché hanno meno problemi e non hanno bisogno di chiedere :)
No, visione troppo ottimistica.
Kiuhnm

Perchè il C per cose non molto complesse da sviluppare è + comodo del 
c++ :) ?


 c++ :) ?
Il C++ non ti obbliga a programmare ad oggetti.
Ci si può limitare all'overloading e agli operatori.
Kiuhnm

PRRRRRRRRRRRRRRRRRRRR 

 Perché il ng del C è più frequentato di quello del C++?
OK, tralasciando per amor di patria la spiegazione ovvia, già esposta da 
altri, mi vengono queste idee:
1) il C++ lo usiamo solo noi geni della programmazione, pochi illuminati 
nel mare magno dell'ignoranza;
2) la maggior parte dei comuni mortali scrive solo programmini cretini, 
per cui non gli serve disturbarsi a usare il C++;
3) chi impara il C++, poi rapidissimamente passa ad un altro linguaggio 
(C#, Java, fate voi) e quindi non frequenta più questo NG.
Devo ammettere che nessuna di queste è particolarmente confortante...
proprio stamattina mi son sentito dire "ah, programmi in C++? Ma perchè 
non passi al C# allora??" :-|

 non passi al C# allora??" :-|
Sono proprio curioso di sapere cosa hai risposto!

 Perché il ng del C è più frequentato di quello del C++?
Su it.comp.lang.c non so dire perche' non lo frequento, posso pero'
provare ad inquadrare il calo dei frequentatori di it.comp.lang.c++ in
un contesto storico.
Credo che un peso rilevante l'abbia il fatto che molte aziende su cui
si sviluppava piu' pesantemente in C++ fino alla fine degli anni '90 si
sono progressivamente spostate su altri linguaggi e tecnologie. Mentre
a livello internazionale il C++ resiste bene all'assalto dei suoi
discendenti in Italia ho la sensazione che le cose stiano in modo
diverso, anche per la progressiva sparizione di interi settori di
tecnologie avanzate dove il C++ era un tempo sostanzialmente
imprescindibile; penso in particolare a telefonia/telecomunicazioni.
Ci sono stati anche eventi specifici del newsgroup che hanno avuto un
effetto notevole. Per esempio quando Alex Martelli ha abbandonato il
C++, nonche' questo newsgroup, per il Python si e' di fatto trascinato
dietro a mo' di Pifferaio di Hamelin un nutrito stuolo di frequentatori
di questo newsgroup, che adesso animano it.comp.lang.python .
Tra l'altro questo e' conciso temporalmente con l'abbandono di alcuni
frequentatori storici ed esperti del newsgroup, ed anche questo ha
influito sul suo declino. Direi che dei frequentatori abituali che ho
trovato quando ho iniziato a seguire il newsgroup nel '99 sono rimasti
solo Enrico Maria Giordano e Max M. (le mie scuse se ho dimenticato
qualcuno).
Penso che la presenza di una massa critica di frequentatori esperti sia
indispensabile per la buona salute di un newsgroup. In questo senso il
tuo arrivo ha certamente avuto un effetto salutare.
Ciao,
Nicola

 tuo arrivo ha certamente avuto un effetto salutare.
Fino a che non passerą anche lui a Python :-)

 tuo arrivo ha certamente avuto un effetto salutare.
Con soli due mesi di studio non posso fregiarmi del titolo di esperto, 
ma di sicuro mi sono dato da fare.
Kiuhnm

 
Perchè il C++ è difficile, difficile, difficile.
Tanto difficile che ricordo mi sentivo male ogni volta che leggevo dei
programmi scritti col cavolo (non che ne non trovi anche ora) oppure
quando vedevo come male erano implementati alcuni compilatori oppure
quando cercavo qualche libreria portabile e non trovavo nulla.
Oggi sembra che le cose vadano meglio, ma io con xxx faccio tutto quello
che facevo in C++, meglio e più velocemente.
Saluti  Manlio Perillo

 E invece niente... soliti "consigli" su libri, compilatori, manuali
 > online, ecc.
Mi piacerebbe che partecipasse un po' più gente, ma, per il resto, i 
frequentatori di questo ng sono piuttosto disciplinati.
Kiuhnm


Niente, il tipo che me l'ha detto č uno con piů esperienza di me nello 
sviluppo sotto Windows... sono stato zitto e ho abbozzato. Sarebbe valso 
a poco dirgli che cinque o sei anni fa (quando ho preso in mano il C++) 
tutta la programmazione sotto windows si faceva o in questo linguaggio, 
oppure in C.
Per inciso, ci sto ancora riflettendo... non so mica cosa mi conviene 
fare :-)

 che facevo in C++, meglio e più velocemente.
Perchè hai censurato il tuo nuovo linguaggio? O_O

 fare :-)
Impara Ruby :D

 tuo arrivo ha certamente avuto un effetto salutare.
Sottoscrivo.
Ma Kiuhnm, come me, non sposta la bilancia: è attivo anche su i.c.l.c :D

 livello. Del resto in che modo è stato scritto il primo compilatore? :)
Sottoscrivo.
Sono partito dall'assembler. Autodidatta.
Poi fui "esposto" al Lisp e a Smalltalk.
A scuola studiai Fortran, Basic e Pascal.
Ma nessuno di questi lo ho mai usato "seriamente".
Dopo militare fui assunto come "installatore" di PC Olivetti (erano 
appena usciti i 286!). Un giorno ad una fiera sentii tre laureati in 
fisica che sviluppavano SW di image processing discutere di un baco 
legato alla gestione di liste linkate. Non sapevo nulla di C. Il listato 
che sbirciai mi dava la sensazione che si ha davanti ad uno screensaver 
Matrix (o un tipico sorgente Perl non strutturato).
Comperai il compilatore C della MS e studiai il linguaggio sul maniale 
del compilatore.
10 giorni dopo (non scherzo) caso volle che andai a installare un PC 
proprio presso quei tre. Accennai alla discussione che avevo sentito in 
fiera.
La settimana successiva mi dimisi, aprii P.Iva e divenni consulente per 
loro: sviluppavo in C, SW di image processing e SW embedded. Ed ero 
considerato il secondo migliore programmatore del gruppo!
Non gli dissi che il C lo conoscevo dsa meno di un mese.
L'assembler aiuta.
Non posso dire che il C++ l'ho imparato in fretta perchè di fatto l'ho 
imparato mentre nasceva. Cominciai con lo Zortech. Poi con il Borland 
(tutti compilatori pre-standard).
La botta arrivò quando lessi lo standard (o meglio: il draft).
Peccato non ci fossero ancora i compilatori (poco nulla supporto 
template, nulla namespace etc.).
Stavo sviluppando un CAM (Computer Aided Manufactoring). Si lavorava in 
C/C++. Letto lo standard volli anticipare i tempi e introdurre cosette 
"avanzate" tipo template e namespace.
Divenni alfa tester per un compilatore: contatto diretto con il 
principale coder. Lui stava in USA. Di giorno testavo, facevo il report 
e glielo mandavo. Mentre dormivo lui debuggava, sistemava e alla mattina 
trovavo la nuova build del compilatore. Io la usavo per ricompilare il 
mio codice etc.
Bei tempi

 Ma Kiuhnm, come me, non sposta la bilancia: è attivo anche su i.c.l.c :D
"attivo" mi sembra una parola grossa, per aver aperto un solo thread :)
Kiuhnm

 Bei tempi
La mia avventura invece deve ancora cominciare ;)
Kiuhnm

 :-)
Anche io non riesco a decidermi, magari tra un po' saro' obbligato a 
cambiare ... ma come si fa a lasciare il C++ per il .NET ad esempio ?
Ci sono talmente tante classi che ci metti piu' tempo a cercare se esiste 
gia' una funzione che implementa quello che ti server che non implementarla 
di tuo!!!

 rubini. I flussi migratori continuano.
Ehi!
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.

 Ma Kiuhnm, come me, non sposta la bilancia: è attivo anche su i.c.l.c :D
Alla fine uno deve fare delle scelte e ic.l.c proprio non ci sta.
D'altra parte saranno dieci anni che non scrivo piu' in C ed in questo
periodo ho letto un solo libro neanche sul C, ma con esempi in C:
"Programming with Posix Threads", di David Butenhof. Devo dire che ho
trovato i suoi esempi molto puliti, ma al tempo stesso un po' alieni, e
mi ha fatto venir voglia di riprovare a scrivere in C. Poi la mancanza
di tempo ha fatto si che la voglia sia rimasta solo tale.
Ciao,
Nicola


Perche' e' anche lui uno dei topi, ecco perche' :-) E pensare che era
cosi' promettente, sigh.
Ciao,
Nicola

 Perché il ng del C è più frequentato di quello del C++?
Le mie impressioni sono queste, ovviamente correggetemi se sbaglio.
In questo ng vengono in generale accettati questi argomenti:
1) Discussioni su linguaggio C++, su cosa e` standard e cosa non lo e`.
2) Discussioni su argomenti classici C++ tipo OO, e programmazione 
generica (template).
3) Discussioni su libreria standard o al limite boost.
4) Consigli su libri e manuali.
5) C'e` chi posta un pezzo di codice e chiede perche` non compila/funziona.
6) C'e` chi vuole farsi fare i compiti dal newsgroup senza neanche 
prendersi il disturbo di una piccola ricerca col google.
Il punto 1 a volte e` interessante anche se estremamente tecnico.
Per il punto 2 esistono delle autorevoli "fonti" su web tipo il sito del 
dott. carlo pescio, "guru of the week", c++ faq lite. Quindi forse in 
tanti ricorrono a queste risorse per risolvere i loro dubbi.
Per il punto 3 si puo` fare lo stesso discorso del 2. Io purtroppo non 
uso la lib. boost e non ho neanche idea di che base utenti possa avere.
Per il punto 4 ormai si consigliano i soliti libri.
Per il punto 5 e` difficile essere davvero di aiuto perche` si e` 
dipendenti dalla specifica piattaforma/os/compilatore e in questo ng si 
cerca (forse giustamente) di rimanere slegati ad una specifica piattaforma.
Le domande sono imcomplete: a volte c'e` solo il codice ma non c'e` il 
log degli errori. Spesso non viene scritto quale 
piattaforma/os/compilatore si sta usando. Poi c'e` il problema che ogni 
compilatore fa` un po` storia a se, anche se meno che in passato ed e` 
difficile dare una mano. Non tutti conoscono bene "tanti" compilatori e 
io sono uno di quelli.
Per il punto 6 [CENSURA].
Concludendo:
secondo me nel newsgroup del C sono un po` piu` di manica larga perche` 
vedo che rispondono anche a domande "platform/dependent".
In generale gli utenti sembrano fare le domande in maniera piu` "smart".
Cioe` in questo modo:
http://xoomer.virgilio.it/army1987k/

 vedo che rispondono anche a domande "platform/dependent".
Musatti ormai si è comprato la tastiera col tasto "Segnala OT" quindi 
non c'è più niente da fare :)
Kiuhnm

 eccetto sporadici provocatori-troller. :-)
Si vede che non sei mai stato sul ng di matematica!
Kiuhnm

 no? :-)
Si hai ragione. Nessuno vuole reinventare la ruota.
In effetti mi sono espresso male.
Quello che volevo dire e` che una lista del genere, magari con un 
piccolo commento del tipo "guida di riferimento" o "introduttivo", 
postata in una FAQ periodica potrebbe essere piu` utile che rispondere 
alle solite domande che hanno come soggetto "[NIUBBO] quale manuale?" ;-)
Comunque mi scuso, a volte mi rendo conto di essere un po` ruvido, ma 
non sono cattivo.
:-)
Quello che voglio dire pero` mi sembra chiaro.
Se non c'e` uno sforzo da parte dei "guru" del ng per allargare un 
poco-poco il campo delle risposte e se non c'e` collaborazione da parte 
degli utenti e` difficile essere veramente di aiuto a qualcuno.
Spero di non avere esagerato, ma visto che c'e` questo momento 
"confessionale" ne approfitto, non vogliatemene.
Ciao,
Cesare

 che hanno come soggetto "[NIUBBO] quale manuale?" ;-)
Diversi titoli sono presenti e commentati nella piccola FAQ ufficiale del 
newsgroup:
http://www.emagsoftware.it/faqcpp.htm#7
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
 

 Kiuhnm
Perche' chi sa il C++ aiuta i poveretti del C, un ng non gli serve
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 non passi al C# allora??" :-|
Ti do la mia esperienza, mi hanno appena offerto 50.000 euro lordi come
dipendente per programmare in C++, sono molto senior, nella stessa azienda
i C# prendono 30.000 a dire dell'amministratore.
Io dissi: "Ottimo, finalmente qualcuno che ci valorizza"
Lui rispose: "Programmatori C++ veramente in gamba non se ne trovano e se
hai bisogno di performance C# e' molto piu lento senza contare che non e'
portabile come il C++"
Ovviamente stamattina ho firmato il contratto, sempre come C++ prima ne
prendevo 40.000, luogo Milano.
Ciao!

 prendevo 40.000, luogo Milano.
Io non voglio mettere in dubbio la tua parola (anche se qualche dubbio ce l'ho 
:-) ) perň le cifre da te riportate mi sembrano veramente poco credibili. 
Tanto per essere piů esplicito, non credo che ad un programmatore, di 
qualsiasi livello sia, gli venga offerto piů di 30.000 Euro l'anno circa, a 
meno che non sia un contratto di collaborazione esterna e non di assunzione.


 EMG
Dipendente contratto commercio.
Forse ho avuto molta, molta fortuna?
Non so, ho firmato ed i soldi me li tengo!
:D

 Mi sono mal espresso? Capo progettazione e sviluppo in C++?
Ho capito, allora può essere.


 Ho capito, allora può essere.
Pare non badino a spese, avevano fatto tutto in C# e vogliono buttarlo via
perche' troppo lento.
Comunque, cercate tra gli annunci tra mille prese per i fondelli qualche
danaroso in ritardo con i progetti pronto a spendere, con molta fatica si
trova.
:D

Nicola Musatti ha scritto:

sigh, anni persi e sangue buttato sul draft dello standard e sul libro
dello Stroustrup ;-).
Però mi manca il fatto che il C++, essendo uno standard ISO, è definito
e documentato molto più rigorosamente.
Un framework che ormai uso sempre, Twisted, è documentato malissimo e a
volte provo la sensazione che Python non sia un linguaggio "serio".
Comunque ho usato la xxx perchè il discorso non era rivolto solo a
Python, c'è anche Ruby (che però non conosco e non mi interessa).
Uno dei problemi (almeno nel mio caso, in quanto non sono un
professionista) è che, imparato un buon linguaggio si tende ad usare
sempre quello.
E questo è un errore perchè il 90% dei progetti magari sarebbe meglio
scriverli con un linguaggio dinamico.
Io adesso me la cavo con il solo Python con all'occorenza moduli scritti
in C.
Sono ormai anni che non scrivo più codice C++ anche se un pò mi dispiace
averlo abbandonato completamente.
Saluti  Manlio Perillo

 prendevo 40.000, luogo Milano.
Sei sicuro di cavartela da solo? Secondo me ti serve un aiutino...
<wink, wink>
Ciao,
Nicola

 <wink, wink>
Ecco, lo sapevo che era meglio leggere tutti i reply per non dare la 
stessa risposta di qualcun'altro.
Ma la mia posizione è particolare: preferisco un impegno ben definito 
nel tempo. E accetto anche impegni part time.
E a farmi gola è più il discorso su C++ che quello su 40.000 euro.
Viceversa quello che mi fa MENO gola è ... windows.

 Da noi quasi tutto C++, in effetti. E anche molto Prolog.
Volevi dire C, credo.
Comunque il "molto prolog" è curioso: che università è?

 mi ha fatto venir voglia di riprovare a scrivere in C.
Se ci provi ti renderai conto pienamente di quanto sia vero che esiste 
un linguaggio intermedio: il "C++ as a better C".
Ti mancheranno non tanto le features avanzate del C++ quanto quelle più 
semplici.
Per esempio:
struct header {
   int id;
};
struct data: public header {
   float value;
};
...
data d;
...
d.id
=5;
Prova a riscriverlo in C e vedrai!

 Comunque il "molto prolog" è curioso: che università è?
Parma. D'altra parte il gruppo di Computer Science è nel Network of
Excellence in Computational Logic, e in effetti è sotto il Dipartimento
di Matematica (io stesso sono uno studente di Matematica e Informatica,
Classe Matematica -- pare sia la 33, ma non sono forte in burocratese)


 vedo che rispondono anche a domande "platform/dependent".
Ma questo secondo me non è un bene. Se qua dentro finisse molta roba
platform dependent, saremmo bersagliati da domande sul mondo MS,
immagino (gli utenti linux hanno in effetti
it.comp.lang.linux.development che è molto chiaro fin dal nome su cosa
aspettarsi, e per quello che vedo la maggior parte di domande specifiche
alla piattaforma viene da utenti windows).
A me personalmente non interessa tale mondo. Non ci sviluppo e non ci ho
mai sviluppato in modo serio. Penso per altri valga la stessa cosa. 
Mi interessano invece discorsi sul C++ in se e per se. Come modo di
pensare la programmazione (modo che io spesso non condivido, sono
decisamente pro-linguaggi dinamici, anche se non mi spiacerebbe avere
tipizzazione statica opzionale, ma questo è un altro discorso).
Apprezzo molto i template, anche se pur conoscendoli "bene", non li
conosco in modo avanzato: non ci so giocare e non li so usare in modo
creativo. Mi piacerebbe molto vedere qualche discussione (della quale
potrei solo leggere) sui templates, per esempio.
Come in generale mi interessano tutte le discussioni sui "trucchi" che
si possono fare usando in modo "non standard" le features standard dei
linguaggi.
Poi per le varie librerie generalmente fra mailing list specifiche ed
esempi ce la si cava, IMHO.


 Comunque il "molto prolog" è curioso: che università è?
Non so Mc Osten, ma io al momento sto studiando prolog in una materia del
corso di informatica specialistica:
http://www.di.uniba.it/~ndm/corsi/kr/#prolog
Ma in effetti alla triennale non esistono corsi del genere (al limite puo'
capitare come tesi un progetto in prolog, come sta facendo una mia collega)
-- 
Under construction

 scriverli con un linguaggio dinamico.
Verissimo.

 di tuo!!!
Oddio, io che vengo dal C++Builder mi trovo avvantaggiato (chi usava 
Delphi ancora di più) perchè .NET non è altro che la VCL versione 
microsoft, e molte classi e oggetti sono pari pari quelli ^_^
Solo che mi girano a dovermi mettere a studiare un linguaggio 
"proprietario" come bene o male è il C#. So che è uno standard ISO, però 
  la considero più una foglia di fico che una standardizzazione reale.
Per dire, se una terza parte (azienda o consorzio o chicchessia) 
proponesse delle modifiche allo standard e M$ non fosse d'accordo, 
quante possibilità ci sarebbero di vederle approvate?
Mah...

 Si vede che non sei mai stato sul ng di matematica!
UHM... ma quel post laggiù in fondo sul C++ e l'algebra non è di 
Langnese? ;-)

 prendersi il disturbo di una piccola ricerca col google.
Credo che la percezione sia in parte errata.
Se il problema proposto è di interesse generale per chi programma in C++ 
il messaggio è in topic oppure tollerato.
Quello che è OT e NON tollerato è un messaggio che riguarda uno 
specifico compilatore o uno specifico ambiente.
Persino questo thread è OT. Ma comunque risulta interessante in generale 
per chi programma in C++. E quindi è tollerato.
Una domanda su come sia meglio implementare una data struttura dati o se 
  in una data situazione sia meglio usare un algoritmo piuttosto che un 
altro e cose del genere sono perfettamente valide anche se non 
riguardano esplicitamente il C++ (ovvio che la risposta tenderà a essere 
"C++" oriented, nel senso che a volte la scelta di un algoritmo o di una 
struttura dati non dipende solo dal problema ma anche dal linguaggio).
Certo sono valide anche in i.c.l.c e in it.scienza.informatica e "forse" 
avranno risposte più complete e generiche in quei NG. Ma dubito che 
sarebbero censurate su i.c.l.c++

 Classe Matematica -- pare sia la 33, ma non sono forte in burocratese)
Bene. Mi consola sapere che è la statale di milano ad essere una 
merdaccia e non tutte le uni!

 capitare come tesi un progetto in prolog, come sta facendo una mia collega)
Anche per me è questo il caso, ma c'è anche un esame del secondo anno,
che però io non lo ho nel piano di studi.
Invece gli esami C++ sono obbligatori. In effetti sono così disposti
            C++ base 1   C++ base 2  Strutture dati   C++ "avanzato"
Matematica    obblig        fac.          fac.            fac.
Mat e Inf     obblig       obblig        obblig          obblig
Informatica   obblig       obblig        obblig          obblig
Matematica pura in pratica fa solo il primo modulo dell'esame di C++. In
cui si fa in pratica C++ procedurale. D'altra parte è anche il primo
esame di programmazione e arrivano in aula persone che non sanno nemmeno
come accendere un computer.
Nella seconda parte (che per gli informatici è tutt'uno con la prima,
per noi Mat e Inf è un esame a parte l'anno successivo) si lavora ad
oggetti, anche se in modo "grossolano".
La STL viene iniziata ad essere esplorata nell'esame di strutture dati,
e si usa C++ per implementarne varie.
Poi l'esame "avanzato" (che come dicevo, avanzato non è) usa C++ per
imparare a lavorare ad oggetti: pricipio di B. Liskov, polimorfismo,
programmazione generica, DIP, RAII etc etc etc.
Alla fine in fondo (avendo lavorato) ci si trova con una buona
preparazione di base, su cui si innestano esami di Java(Ingegneria del
Sw) et altro.
Certo, l'impressione è che molti studenti facciano una mazza e mezzo, e
alla fine non tutti sono preparati. Ma come metodo didattico mi pare
abbastanza buono. Certo la strada che avevo in precedenza seguito
autonomamente era risultata molto più dura, e non so se effettivamente
più efficace (più efficace, si, ma non so se "a parità di sforzi").


 merdaccia e non tutte le uni!
E ti dirò di più: C++ è anche insegnato bene (cosa che non
necessariamente avviene solo "insegnandolo").
Nonostante programmassi in C++ già da alcuni anni, nell'esame "avanzato"
(che in effetti più che "avanzato" sarebbe meglio definirlo "fine della
base") ho imparato un buon numero di cose e di potenzialità "latenti"
del C++. (latenti nel senso che non le avevo mai esplorate).


 Langnese? ;-)
Fortunatamente non lo vedo.
Kiuhnm

 <wink, wink>
Non manchero' di comunicare eventuali posizione aperte in azienda.
:D

 fare :-)
_NON_ passare al C#.
Purtroppo devo usarlo sul lavoro: è agghiacciante,
sia come [scelte del] linguaggio che come class library
(beh, .NET in generale è abbastanza agghiacciante...)
IMHO
OttoDisc

 sia come [scelte del] linguaggio che come class library
UHM allora 
VB.NET
 :-)

 UHM allora 
VB.NET
 :-)
   |
   |
   o
  / \
  \_/


 
Non direi.
Semplicemente sono riusciti a focalizzarsi su un unico framework, con un
ottima campagna di marketing.
In Python ognuno reinventa la ruota e gli sviluppatori di un ottimo
framework non sono molto interessati a farsi publicità e a rendere la
vita facile ai non esperti.
E, spesso più del linguaggio, contano le applicazioni che portano
utilizzatori...
A proposito di Twisted (il framework che citavo): su it.comp.lang.python
siamo circa in 5 che lo utilizziamo a "tempo pieno" e che lo consigliamo
ai nuovi arrivi, qui nessuno usa ACE?
Saluti  Manlio Perillo

 UHM allora 
VB.NET
 :-)
Aaaaarggghhhhh!
;-)
OttoDisc

 
d.id
=5;
Qualcosa tipo:
struct data {
  struct header super;
  float value;
};
data d;
d.super.id
 = 5;
;-)
Ciao,
Nicola

 _NON_ passare al C#.
Sono in completo disaccordo.
Se quello che devi fare è una programmazione di applicativi d'alto livello 
(i.e. gestionali...) allora la scelta del C# mi pare più che senzata e 
motivata.
Ci si scrolla di dosso alcune complicazioni del C++ e si guadagna in 
automatismi (anche del Visual C# rispetto al Visual C++)
Il tutto è tanto più valido, a mio avviso, dovendo usare il C++ Managed
Infine sul .NET: a me sembra un framework ben fatto e ben pensato.
Certo ci sono parti che non mi piacciono e sicuramente ci sarà chi ha da 
ridire su alcune scelte, ma nel complesso mi sembra un buon prodotto.
E l'MSDN è una documentazione di una qualità che altri si scordano.
Il tutto IMHO.
p.s.
siamo OT. follow up su it.comp.programmare.win32
-- 
Gerolamo 

 solo Davide Quack (e anche io mi scuso di eventuali omissioni).
E vabbč... esperto non tantissimo, e non posto piů molto.
Ma comunque il C++ continua ad affascinare da qualche anno
anche me :P
-- 
Gerolamo 

 
Il c++ è molto affascinante ... forse per la sua complessità .... ma 
penso che in questa giaccia anche il suo limite + grosso voi che ne 
pensate ?
Oggettivamente fatico a vedere cose fattibili in c++ e non in C ... ed a 
quanto mi risulta i kernel almeno di linux, freebsd,openbsd,netbsd e di 
altri unix commerciali sono scritti in C ... e non li definirei nè 
progetti semplici nè progetti di piccola dimensione ... quindi anche 
dire che con il C si fanno solo progetti di dimensione limitata.... non 
so quanto sia vero... queste almeno sono le mie perplessità sul c++ che 
cmq trovo molto affascinante

 utilizzatori...
Questo se vedi la questione dal punto di vista di "pubblicità". A me non 
interessa minimamente fare proselitismo Ruby. Io stesso (almeno per ora) 
lo conosco poco e non lo uso.
Il mio invito a "guardare" Ruby e Rails non è in quel senso. Ma 
piuttosto mi piacerebbe che qualcun altro, facendolo, mi dicesse: 
capisco cosa intendi, anche io ho una sensazione, ma non riesco a 
focalizzarla.
Credo che questo possa avvenire solo con qualcuno che ha un vissuto 
simile al mio. Ovvero che è sempre stato curioso e ha seguito (prima su 
riviste americane, e più tardi su internet) i dibattiti e i processi che 
hanno portato alla nascita e/o alla diffusione di alcune tecnologie. 
C++, l'OO sono fra queste. Ma non solo. Anche i discorsi di Yourdon 
degli anni 80. E la "guerra" metodologica che si è di fatto conclusa con 
l'alleanza Booch-Rumbaugh-Jacobson ma che ha coinvolto molti altri 
(Coad, Mellor, Yourdon etc). La nascita dei patterns (Gamma & C.) e i 
successivi dibattiti su pattern e antipattern.
E perché no: anche gli inizi dell'innovativa idea di Ward Cunningham.
O in generale i cambiamenti nella sociologia di internet dovuti alla 
fine di Gopher/Veronica+Usenet+FidoNet e all'avvento del "web" e quindi 
di Wiki, Blog, SlashDot etc. etc.
Insomma, qualcuno con un vissuto "simile" al mio.

 progetti semplici nè progetti di piccola dimensione ... 
E nota bene che il kernel Linux è sì scritto in C, ma nondimeno è 
ugualmente ad oggetti :-)
Il punto non è "cose fattibili in C o in C++" ma "cose più facili in C o 
in C++". In questo, il C++ è migliore del C finchè lo si usa come "C con 
classi", ma appena si usano i template e la STL le cose si complicano di 
parecchio... e questo è male. Paradossalmente, come diceva Musatti 
stesso in un 3d di qualche mese fa, il problema del C++ è la sua 
compatibilità con il C: una volta era un punto di forza, ma ora sta 
diventando una palla al piede... meglio sarebbe stato una sintassi 
diversa e meno ambigua. Vedi il linguaggio D per avere un esempio di 
quello che voglio dire: IMHO è un passo nella direzione giusta.

 Ovviamente è possibile che mi sbagli. Lo dirà il tempo.
Cavolo, mi fai venire voglia di andarmelo a vedere o_O
Hai qualcke link da consigliare?


Certo (mica dubitavo che lo sapessi fare). Ma credo tu abbia notato dove 
sta il problema.
Se è vero che una gerarchia troppo profonda probabilmente necessita 
comunque di un redesign, 3 o 4 livelli sono abbastanza comuni.
C'è una bella differenza fra:
instance.id
 e 
instance.base.header.super.id
Naturalmente puoi anche fare:
struct data {
   // struct header super;
   int id;
   // added members
   float value;
};
e poi usare il casting del C. Ma a questo punto ... perdi in 
manutenibilità (tipo modificare il nome 'id' dopo aver creato alcune 
decine di "figli" o aggiungere un membro a header).
Sono queste "piccolezze" quelle che finiscono per mancarti di più.

 so quanto sia vero... 
Non è vero, infatti. Ma un uso saggio del C++ ti permette di sviluppare 
progetti di dimensione maggiore con meno sviluppatori.
In teoria, almeno.

 quello che voglio dire: IMHO è un passo nella direzione giusta.
Dai un'occhiata anche a Objective C. Se conosci C e/o C++ lo impari in 
due giorni. Forse meno. E considera che praticamente è più vecchio del C++.
Vedessi cosa ci fa la Apple!

 
Questo è un discorso molto interessante, ma non credo sia il caso
affrontarlo qui.
Saluti  Manlio Perillo

 Hai qualcke link da consigliare?
Parli di ActiveRecord e Rails?
La risposta migliore dipende da quale è la tua "esperienza".
Hai mai lavorato con linguaggi dinamici (tipo Smalltalk, Python, Ruby)?
Conosci già Ruby come linguaggio?
Siamo TREMENDAMENTE OT. Comunque:
Se non conosci Ruby comincia con il farti un minimo di idea leggendo un 
tutorial "veloce" come questo:
http://www.math.umd.edu/%7Edcarrera/ruby/0.3/
Poi puoi passare a dare un'occhiata rapida a:
http://www.rubycentral.com/book/index.html
che è vecchio ma bastante per avere un'idea abbastanza precisa (la 
versione nuova non è online e te la devi comperare).
Se vuoi documentazione varia parti da:
http://www.ruby-lang.org/en/20020103.html
Ma una cosa che è un vero "appetizer" per Rails (non Ruby) è questo mini 
tutorial:
Parte 1: 
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html
Parte 2: 
http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html
Nota: in rails si usano spesso degli script che generano codice. Ma c'è 
una differenza rispetto ai classici Wizard: creano una struttura di 
direcotry e qualche semplice file con dentro POCHISSIMO codice.
Praticamente sono poco più della classica macro dell'editor che in C++ 
crea il file .cpp con l'include del relativo file .hpp e il file .hpp 
con #ifdef/#endif per la inclusione multipla.
Questo è un pochino più completo:
http://www.rails4days.pwp.blueyonder.co.uk/Rails4Days.pdf
E questa presentazione in video (una fra le prime presentazioni 
pubbliche di Rails) è una vera chicca.
http://media.rubyonrails.org/video/rails_take2_with_sound.mov
Se pensi che Ruby esiste da più di un decennio ma che non esisteva 
alcuna documentazione (tranne che in giapponese) fino a circa un paio di 
anni fa, è stupefacente dove sono arrivati (Rails è di un Danese!). Dai 
un'occhiata a questo:
http://api.rubyonrails.org/
E se ami l'open source ... clicca uno dei vari "show source" che ci 
stanno nelle spiegazioni dei metodi.
Prova poi a dare un'occhiata ai file sorgenti (dopo aver installato Ruby 
  e Rails) e vedreai cosa significa "the code IS the documentation".
Ma al di la di tutto la cosa che per me è più interessante non è questa 
ma arriva (dal MIO punto di vista) quando cominci a capire cosa è Active 
Record e come funziona: il codice NON C'E'!
In pratica invece di una libreria di accesso a DB hai un qualche cosa 
che forse possiamo chiamare "meta-libreria".
Magari in futuro si potrà fare per qualunque problema. Fine delle 
librerie e dei problemi connessi.

 In teoria, almeno.
Il problema più grosso del C è il name clashing e la decorazione manuale 
dei nomi che qualunque progetto medio-grande richiede.
Kiuhnm

 interfacce e componenti.
Infatti il problema di per se è ancora irrisolto.
Interessante quello che dici di Zope (non lo sapevo dato che non lo 
seguo). Effettivamente per quel poco che so degli Aspect (mi sa che devo 
riprendere ad aggirnarmi) la questione si può riassumere 
nell'approcciare il problema del riutilizzo del codice affrontandolo non 
(o meglio non solo) in termini di gerarchia (OO) ma secondo una 
direzione ad essa perpendicolare.
Credo che andando a scavare nei concetti e nelle implementazioni ci sia 
qualche cosa di nascosto che ancora ci sfugge. Ora che ne parli credo 
che i concetti legati agli Aspect possano sposarsi molto bene con quel 
qualche cosa che a livello di "sensazione" mi "intrippa" di ActiveRecord.
Tanto per tornare lievemente più in topic: come si potrebbe affrontare 
la "programmazione aspect oriented" (se si dice così) in C++? Ovvero: 
quanto è necessario/vantaggioso un linguaggio "weakly typed" (lo so che 
non significa nulla, ma sapete cosa intendo) e quanto invece un 
linguaggio più "rigido" come il nostro C++?

 cmq trovo molto affascinante
No, non e' certamente vero che in C si fanno progetti solo di
dimensione limitata. Quello che e' vero e' che in molti di questi si fa
molta fatica che in C++ si sarebbe evitata: penso ad esempio a tutte le
implementazioni di meccanismi pseudo ad oggetti che esistono. In alcuni
casi ci sono dei motivi validi per questa scelta, in altri e' solo una
questione di ignoranza/pigrizia.
Ciao,
Nicola

 Vedessi cosa ci fa la Apple!
E non solo Apple :) 
C'è anche GNU Step. Peccato che non sia molto diffuso (ma anche sul
MacOS molte grandi aziende sono rimaste con i vecchi tool). 
C++ per la parte "model" e a basso livello e Objective C per quella
sopra sarebbe un'ottima alternativa a quella cosa che inizia per J e va
tanto di moda adesso...


 Dal punto di vista tecnico e' una bufala.
Non č perň falso che dovere gestire piů cose prende piů tempo, *anche*
ad un programmatore bravo.


 tanto di moda adesso...
Salvo che per due particolari: possibilità di lavorare in "interpretato" 
(versione script della J) e possibilità di distribuire "binari" (anche 
se IMO si potrebbe benissimo compilare in p-code anche l'objective C: MS 
generava p-code dal C negli anni 80, anche se non è riuscita a far 
decollare la cosa).


Che in un certo senso si "oppone" ad UP e ancora di più a RUP. Fra i
firmatari ci sono un sacco di Railisti (Thomas -- che ha fondato anche
una casa editrice a riguardo).
E tutto quello che gira intorno (o che ne è un sopra insieme).
Ora la domanda che tu prima ti facevi relativa ad AOP la pongo io.
Quanto è davvero praticabile l'Agile Development con linguaggi statici e
comunque *molto* formali?


 ad un programmatore bravo.
Certo. Pero' potendo spaziare su librerie esterne un po' di cose gia'
fatte le si trova, da ACE a Boost a tante altre. Certo non e' come
trovarsi la pappa pronta.
Ciao,
Nicola

 decollare la cosa).
C'era un prototipo di ObjectiveC (nemmeno tanto prototipo) che lo
faceva. Tutto WebObjects era scritto appunto in ObjectiveC e si usava in
Objective C. 
Poi per ragioni di marketing (immagino) è stato riscritto in Java. E ora
c'è teoricamente funziona bene, ma in pratica non se lo fila nessuno.


 trovarsi la pappa pronta.
Vero (anche se di ACE c'è chi mi ha parlato molto bene, chi molto male
-- ma questo è irrilevante in questa sede).


 _NON_ passare al C#.
Sono in disaccordo. Uso per lavoro C#,C++,Python. 
Per i programmi usa e getta Python è insuperabile, ma non posso usarlo per
la "produzione" per vari motivi, tra cui la necessità assoluta di
prestazioni. In realtà lo usato su un progetto un poco complicato e
multipiattaforma ed e' stato un successo. Non posso dire lo stesso quando
ho fatto qualcosa di simile con il C++.
Io non mi occupo di interfaccie, ma se devo prendere ho spedire una mail ci
metto un minuto in Python, 5 in C#, mentre ci metto una settimana in C++ a
trovare una libreria che fa quelle cose, e convincere il capo a comprarla.
Il fatto principale per cui uso principalmente il C++ è che ho una
personale libreria che non intendo abbandonare. Comunque (giusto per fare
un esempio assurdo) alla fine capita che se devo comunicare con un web
server, se uso il C# o Python, sfrutto uso le librerie esistenti, mentre in
C++ preferisco partire dall'RFC della HTTP e generare io i pacchetti.

 metto un minuto in Python
non č che l'hai mandato in python sto messaggio?
-- 
sbi 

 non č che l'hai mandato in python sto messaggio?
Certo. In C++ o con un News Reader qualsiasi lo mandavo senza errori di
ortografia, di sintassi e di concetto, ma ci mettevo giusto una settimana
:-)
Questo per fare prima l'ho mandato invece una sessione telnet da prompt.

 linguaggio più "rigido" come il nostro C++?
Credo nessun problema di sorta. Che io sappia ci sono anche delle
librerie belle e fatto. E AOP è molto diffuso fra i Javisti (o meglio,
buona parte di quelli che si interessano di AOP sono Javisti, il
contrario non vale).


 C++ preferisco partire dall'RFC della HTTP e generare io i pacchetti.
Il discorso "cosa è meglio e cosa è peggio" si fa spesso; e spesso
penso si tenda a dimenticare il fine delle cose.
il C++ è un linguaggio, il C# è un linguaggio, .NET è un framework.
"Fare meglio questo o quello in C# o VC++" lavorando in .NET trovo
abbia poco senso: per definizione puoi fare le stesse cose con entrambi
i linguaggi - ma per inciso, trovo che il VC++ sia una discreta
"aberrazione".
.NET è davvero molto potente: con poche righe fai molto, ma puoi anche
fare molti danni; inoltre spesso hai la sensazione di non [poter] avere
il controllo di <chi sta tenendo in vita che cosa>: mi riferisco ai
delegates ed ai tempi di vita degli oggetti che castano eventi, che
spesso tengono in vita qualcosa anche se è stato disposed (tu sei
sicuro di aver dereferenziato *tutto*, eppure -per magilla - un
qualsiasi profiler .NET ti dice che quell'oggetto ha ancora riferimenti
e quindi il GC non lo libererà MAI).
Insomma, un bell'oggettino, ma mi sa tanto di "baloccone".
Sorvolo sulle prestazioni, sono già abbondantemente OT - a mio modesto
avviso sono demoralizzanti.
Non so, questa è la mia opinione.
Sarà che preferisco un null reference (e poterlo correggerlo) che non
poter avere il controllo completo della mia applicazione...
Saluti!
OttoDisc

 penso si tenda a dimenticare il fine delle cose.
Il 90% dei programmatori che conosco di persona sono contenti di usare C#
per il gestore della memoria. Fare un new e non fare il delete gli piace
moltissimo. Personalmente trovo aberrante questa motivazione, e devo dire
che non faccio poi tanto spesso delle new dirette grazie alla libreria
standard dei template.
Poi il fatto di avere una libreria che fa di tutto è comoda, così come un
buon ambiente di sviluppo. Un linguaggio o una piattaforma si sceglie anche
per quello, piaccia o meno ai puristi.

 per quello, piaccia o meno ai puristi.
Questo e' vero. Tuttavia ci sono ottime librerie interpiattaforma (QT,
wxWidgets) che sono
state sviluppate sia in modo "commerciale" che in modo "free".
Sono convinto che la "potenza commerciale" della Microsoft potrebbe
fare qualcosa di meglio che non un VisualBasic "on steroids".
OttoDisc

 fare qualcosa di meglio che non un VisualBasic "on steroids".
dot net non mi sembra cosě malvagio, poi stanno sviluppando ironpython :-)
Il fatto č che la potenza commerciale Microsoft č assolutamente
incredibile. Credo vendano un milione di copie di Visual Studio, e non sono
proprio noccioline. Alla fine una piccola azienda č inevitabile che sia
attratta dai prodotti di questo colosso. Anche perché gli sviluppatori
bravi esistono in un numero ridotto e gli altri <flame mode="on"> usano o
VB o Java </flame>