Newsgroup: it.comp.programmare.win32
Titolo: chiedo un parere su ATL 3.0 (vs MFC)

ciao a tutti
tempo fa ho letto un articolo, secondo me fantastico, riguardo ATL3.0
l'articolo, scritto da Michael Park ("ATL 3.0 Window Classes: An
Introduction"), riguarda l'utilizzo di alcune classi template per realizzare
applicazioni con finestre, dialog e quant'altro, in stile molto più C++ di
quanto si possa fare con MFC
in sostanza mi pare di aver capito che ATL3 introduce un wrapper veramente
C++ (membri protetti soprattutto) alle funzioni SDK di creazione e gestione
delle finestre di quanto faccia MFC
nell'articolo si parla però anche di un inevitabile seppur piccolo
'overhead'. c'è qualcuno (magari alex martelli...) che sa che cosa si
intende come 'piccolo overhead'? almeno in questo caso specifico.
è solo dovuto al fatto che si tratta di template? questo però aggiungerebbe
un overhead solo in fase di compilazione, ma nell'articolo, alla fine, si
legge che questo tipo di programmazione aggiunge un overhead anche in fase
di esecuzione....mah!
chi di voi avesse un parere o informazioni, si faccia avanti!
ciao e buona giornata
lorenzo

 di esecuzione....mah!
Non ho idea di quale, specificamente, della miriade di fattori tu (o
Park) stiate parlando.  Potrebbe essere ad esempio l'uso di tabelle
di dati per l'istradamento messaggio->funzione-membro che lo tratta,
che in effetti rispetto a un gigantesco switch monolitico di 25
pagine di codice puo` introdurre l'overhead di qualche istruzione
macchina per ogni messaggio processato (se non altro la chiamata a
funzione e relativo return, se non sono in-linea; ma in pratica
anche la ricerca-in-tabella, se non si usano sprecose gigantesche
tabelle *indiciate* dal codice-messaggio, come faceva Shulmann,
la ricerca un tot di istruzioni-macchina le richiede).
L'ottimizzazione prematura e` la radice di tutti i mali, e in pratica
un codice ben scritto con ATL (o, immagino, la piu` estesa WTL, di
cui si e` parlato in questo gruppo non troppo tempo fa; e` in versione
ancora preliminare negli ultimi Platform SDK di Windows) ha delle
prestazioni sorprendenti.  Il fatto stesso di puntare tanto sul
risparmio di *spazio* alla fine ha dei ritorni reali anche in termini
di *tempo* (vista l'esistenza di memoria virtuale, paginazione, &c).
Non sono mai riuscito a misurare con precisione, ma a me sembra che
il tipico server ATL sia piu` piccolo e veloce di quello che potrei
riuscire a fare in C nudo e crudo, salvo misure veramente mostruose
di "limatura" e fine-tuning forse.
Che questa enfasi sulle prestazioni sia appropriata... non so.  Per
un pezzo di codice che deve viaggiare in rete, o per applicazioni
per Windows/CE (o come cavolo lo chiamano adesso) che girano su
palmari minuscoli, probabilmente vale la pena.  Per il tipico PC
di oggi con 20 giga di disco, 200 mega di ram, e processore da
600+ MHz, ho i miei dubbi.  Comunque, se si sceglie di usare il C++,
sara` perche` le prestazioni sono importanti, immagino (se no,
una vasta gamma di linguaggi, da Delphi a Smalltalk, da Visual
Basic a Python, ecc, darebbe forse migliori alternative), quindi
la filosofia ATL/WTL e` perfettamente in linea con questo.
Alex




 e
che trovi all'indirizzo
 
http://www.clipcode.com/download/index.htm
credo sia la piu' completa. Poi vi sono dei testi su
 
www.idevresource.com
 
www.codeproject.com
Anche Chris Sells ha scritto qualcosa on line che trovi su 
 
www.develop.com
Sempre Chris Sells ed altri hanno scritto un clone delle WTL di nome 
"ATTILA",  che e' molto simile (se non uguale in certi punti).
Comunque da questi siti puoi ottenere altri indirizzi.
Buona lettura.


 CHiedevo dove e' possibile trovare l'articolo in questione.


 Nella msdn non ho trovato assolutamente nulla.
Per il Platform SDK, che contiene WTL:
http://msdn.microsoft.com/downloads/sdks/platform/platform.asp
Per articoli sulla WTL:
http://www.idevresource.com/com/library/bytesize/wtl.asp
http://www.idevresource.com/com/library/articles/wtlarch.asp
Alex

Immagino avrete letto che MS non ha intenzione (almeno nelle parole di Tony
Goodhew Technical Product Manager di VC++ 7) di supportare WTL, ma al
contrario
vorrebbe rimuovere la libreria dalle prossime versioni di SDK.
L'articolo che riporta l'argomento è al seguente indirizzo
http://windows.oreilly.com/news/visualc_0500.html
Non è, certamente, una buona notizia, almeno dal mio punto di vista.
MM

Nenad
Comunque in alternativa puoi guardare la libreria ATTILA di Chris Sells.
Fausto

 Comunque in alternativa puoi guardare la libreria ATTILA di Chris Sells.
Grazie. L'avevo giŕ vista.
MM