Newsgroup: it.comp.programmare.win32
Titolo: Consiglio su cosa imparare...

Ciao a tutti,
vorrei un consiglio visto che ho le idee molto confuse...
premetto che sto studiando tutt'ora il linguaggio C++ da
autodidatta (sono ancora un principiante) e sto usando per
gli esercizi il compilatore della Microsoft Visual C++ Express 2010,
naturalmente per il momento applicazioni console senza interfaccia
grafica, il mio scopo sarebbe di arrivare a fare dei programmi su
Windows tipo dei gestionali o simili creando l'interfaccia grafica.
Mi piacerebbe continuare a usare Visual C++ che ritengo ottimo e
stabile,
ho notato che per realizzare programmi Windows in questo ambiente ci
sono
diverse strade, WIN32 API, MFC (pero' come sapete queste librerie non
sono comprese nell'edizione gratuita di Visual Studio 2010) e
WindowsForm.
Cercando un po' di informazioni ho notato che WIN32 API sono molto
difficili
e lunghe da imparare, MFC non sono presenti e non mi merita spendere
tanti soldi per acquistare le edizioni piu' complete di Visual Studio,
le WindowsForm
semprerebbero le piu' indicate solo che ho notato che bisogna
imparare
anche dopo il C++, il C++/CLI che e' un'estensione del linguaggio
creata da Microsoft
per usare le WIndowsForm. Quello che mi chiedevo io e' : anche se e'
un persorso lungo,
mi conviene imparare per bene il C++, poi studiare il C++/CLI e usare
le WindowsForm
oppure come ho letto in giro iniziare per esempio dal C# (C sharp)
usando Visual C#
(a questo proposito potrebbe uno studiare subito il C# senza passare
dal C++?)
COME VEDETE SONO MOLTO CONFUSO...GRAZIE A CHE MI RISPONDERA' PER
DISCUTERE DI
QUESTO ARGOMENTO.
Il mio fino comunque e' quello di realizzare delle piccole
applicazioni Windows usando
il Visual Studio che mi sembra l'ambiente migliore..
ciao a tutti
Roberto
cecch...@libero.it

 dal C++?)
Premesso che imparare C++ è un esperienza molto formativa da tutti i 
punti di vista, se la tua intenzione è di realizzare interfacce utente, 
il consiglio è di puntare da subito a C# + WPF.
L'uso di C++/CLI è possibile ma è sconsigliabile per quello scopo 
perché il linguaggio, poiché ha una struttura complessa, non ha tutta 
una serie di facility che consentono la generazione di codice da parte 
degli strumenti di sviluppo.
In pratica 
vs.net
 riesce facilmente a generare pezzi di codice C# ma 
fare la stessa cosa con C++ è molto più complesso, di conseguenza hai 
meno aiuti.
Inoltre per certi task come l'accesso ai dati, con C# hai vita facile 
nell'usare le tecnologie più recenti come entity framework che ti 
semplifica di parecchio la vita.
Parlando di Winform, questo è un wrapper delle api di windows al pari 
delle MFC. Sono librerie che vivranno probabilmente per sempre ma 
l'approccio di WPF, che è basato su DirectX, ti da maggiori performance 
grafiche (uso delle GPU per esempio) e una potenza immensamente 
maggiore (per esempio se vuoi strutturare dei controlli che non abbiano 
la 'solita forma').
Se scegli WPF, l'uso di C++ è precluso per la UI.
Il target di VC++ è lo sviluppo di codice performante. Algoritmi, 
Parallel libraries, codice lato server, interoperabilità, etc. etc.
Queste sono tutte cose che tipicamente servono ad un'applicativo di una 
certa dimensione e che C++ può fare (di solito) meglio.
Buon lavoro, ciao.
-- 
Raffaele Rialdi  
http://www.iamraf.net
Weblog: 
http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile 
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET - 
http://www.ugidotnet.org/

 il Visual Studio che mi sembra l'ambiente migliore..
Quanti diversi ambienti di sviluppo hai provato? Per più di quindici 
minuti, voglio dire.
Hai provato CodeBlocks?
Hai provato Eclipse?
Hai provato NetBeans?
Hai provato CodeLite?
Hai provato Dev-C++?
Hai provato C-Free?
...


Grazie delle risposte...
per imparare il c# che libri (va benissimo quelli in inglese)
mi consigliate? Ho visto che ce ne sono tantissimi.....
e per l'ambiente Visual C# che libri mi consigliate per imparare
la parte per realizzare l'interfaccia grafica?
grazie ancora
ciao

vorrei un consiglio visto che ho le idee molto confuse...
e per confonderti ancora di piu io ti consiglio di studiarti le API di
windows. Lo so che sono meno pratiche dei framework ,piu difficili da
usare , meno produttive ma ti permettono realmente di capire come
funziona un prog win32.
Una volta che ti sei fatto una solida base allora ti studi il
framework che piu ti piace .
Il vantaggio delle APi e' che puoi fare tutto quello che vuoi e a
differenza dei framework che ne spuntano fuori ogni 2/3 anni non sei
costretto ad affrontare un nuovo percorso per l'apprendimento.
auguri.

 costretto ad affrontare un nuovo percorso per l'apprendimento.
Lo sapevooooo che spuntava fuori uno con questo consiglio :-)
Una volta ti dicevano di imparare l'assembler se volevi farti delle 
solide basi, adesso ti dicono di imparare le API di windows. 
(sottinteso: se no non sarai mai un *Vero Programmatore*)
Io dico che per farsi delle solide basi bisogna imparare ad analizzare i 
problemi e suddividerli in problemi più piccoli, bisogna imparare ad 
astrarre e a generalizzare senza perdere efficacia. Bisogna capire come 
funziona e a cosa serve una lista e a cosa serve un albero, e imparare 
come e quando si usano gli uni e gli altri. Bisogna imparare la OOP 
(Object Oriented Programming).
Io dico che assembler e API di Windows, e tutta l'altra roba a basso 
livello, è utile conoscerla e completa la formazione personale e 
professionale, come prospettiva storica e come strumento da usare quando 
necessario, ma *non servono* per imparare a programmare, non più di 
quanto fare il fabbroferraio serva per sollevare pesi.
Il fatto che "i vecchi", cioè noi, abbiamo imparato a programmare così 
non significa che sia il sistema migliore: si può fare meglio e con meno 
sforzo.
Secondariamente, le API di windows cambiano con il tempo: quelle di 
Win98 erano diverse da quelle di NT, quelle di NT erano diverse da 
quelle di XP, e quelle di XP sono diverse da quelle di Vista e Win7. Non 
di molto, solo di quel tanto che basta per fare in modo che tu non ti 
possa fidare di quello che hai imparato prima... e Microsoft ha già 
detto di volerle cambiare ancora in futuro. Per cui impararle è molto, 
ma molto meno utile di quanto possa sembrare.

ma molto meno utile di quanto possa sembrare.
Non e' assolutamento vero.
L'unica grande novita e' il concetto di protezione introdotto da NT in
poi. Certo poi le funzioni si evolvono aggiungono il postfisso EX ma
quelle di base ci sono e funzionano sempre.

 succede ?
Conosco in dettaglio l'asm x86 e a grandi linee quello 68000. Ma secondo 
te queste sarebbero le PRIME cose da imparare quando uno inizia? Io le 
metterei abbastanza in fondo alla lista. Dopo che uno sa già 
programmare, allora si mette a vedere questa roba.
Sono d'accordo che uno debba conoscere come funziona un computer, ma 
all'inizio una conoscenza di massima basta e avanza. Meglio, molto 
meglio, iniziare dedicando tempo e cervello ad altro.

 il consiglio è di puntare da subito a C# + WPF.
+1
Ciao,
Giulio
-- 

te queste sarebbero le PRIME cose da imparare quando uno inizia? 
Per l'assembler potrei quasi essere d'accordo di metterlo in fondo
anche se e' un argomento che dovra' certamente essere affrontato. Pero
qualche dubbio mi viene visto che chi accede al 1 anno di ingegneria
informatica comincia gia da quello.
Per i framework invece visto che trattasi di API native camuffate io
le metterei sicuramente all'inizio.


Imparati java che ha un ottimo modello a oggetti, un'ottima curva di 
apprendimento, c'è una barca di roba su cui puoi basarti ed è 
multipiattaforma.
Io penso che l'ideale sarebbe iniziare a programmare con l'approccio 
procedurale (tipo C), per poi comprendere quello a oggetti (Java, C++, 
C#) perchè molti che iniziano con l'approccio a oggetti poi non sanno 
dove mettere le mani con l'approccio procedurale. Ovviamente non 
scartare Delphi, che pure è un linguaggio di programmazione con una 
buona curva di apprendimento.