Newsgroup: it.comp.programmare.win32
Titolo: consigli per inesperto

Vorrei imparare un linguaggio di programmazzione!
So che sono generico ma tanto non ne so' usare neanche uno.
Cosa mi consigliate?
Un grazie in anticipo per la collaborazione.
Maurizio

Ciao,
Io personalmente ti consiglierei di cominciare con un linguaggio RAD (Rapid
Application Development), poi quale dipende dal linguaggio che conosci.
Ti potrei consigliare Delphi o il CBuilder della Borland (2 ottimi prodotti)
o Visual Basic (che si impasta un po' + spesso)
Bye bye!!!
--
- Carlo -
BSSoftware Tips Mailing-List Support

 Cosa mi consigliate?
Ci sono parecchi linguaggi, studiati specificamente per
insegnare la programmazione ai principianti, e disponibili
in buone versioni su macchine Windows a 32 bit.  Evita,
ti suggerisco, i linguaggi NON fatti per principianti, bensi`
per programmatori gia` esperti, come Ada, C++, C, Fortran... 
non che sia impossibile imparare a programmare con uno
qualsiasi di questi, ma e` piu` faticoso che non imparare
con un linguaggio "adatto" e passare a uno "per esperti"
soltanto in un secondo tempo.
La scelta di fondo e`: linguaggio "rigido", o "flessibile"?
Una scuola di didattica della programmazione sostiene che
i linguaggi _rigidi_, che _guidano_ lo studente/utente, sono
la cosa migliore; "impongono", per quanto possibile, una
giusta impostazione sin dall'inizio, e conducono a prendere
buone abitudini.
Fra i linguaggi rigidi, studiati per insegnare a programmare,
il piu` importante e` sicuramente il Pascal.  E` quello usato
oggi (quasi dovunque, credo) per l'insegnamento in questione
nelle scuole, ad esempio.  In versioni estese, come quella che
fa da "motore" al potente Delphi, Pascal e` poi anche adatto a
fare quasi qualsiasi cosa; non e` SOLO per principianti, per
intenderci!
Altri linguaggi rigidi, magari piu` moderni, come Eiffel o Java,
sono forse meno adatti (dibattito interminabile).  Se ti senti a
tuo agio col concetto di un linguaggio rigido, penso che Pascal
sia per te la migliore scelta per iniziare.
L'altra scuola di didattica della programmazione sostiene che
la cosa migliore e` un linguaggio _flessibile e potente_, che
permette all'utente/studente di ottenere risultati "interessanti"
*da subito* (o quasi:-), senza oberargli "troppo" la vita con
regole rigide/inflessibili/rigorose.  L'esempio classico, un po'
superato ora, e` il Logo, che fu studiato sin dall'inizio per
insegnare a programmare ai bambini -- un mucchio di regole
rigide e di "vuota sintassi", era la teoria, li avrebbe scoraggiati,
mentre in Logo potevano iniziare da subito a "programmare
disegni", eccetera.  In questa scuola, si considera che lo stile
"giusto" e` comunque una cosa che si evolve nel tempo, con
il "maturare" del programmatore, e non qualcosa che possa
importi il linguaggio stesso (si possono scrivere programmi
orridi in qualsiasi linguaggio, in effetti!).
Fra i linguaggi "flessibili" e moderni, il migliore da tanti punti
di vista e` il Python (non a caso, e` stato scelto per il progetto
"CP4E", "Computer Programming For Everyone", un utopistico
tentativo di insegnare a programmare a _TUTTI_ senza alcuna
eccezione, attualmente finanziato dal governo americano -- il
creatore di Python, che e` olandese, e` stato "rapito" a colpi
di $$$ da un ente di ricerca americano...:-).  La sua potenza
e` sbalorditiva, la sintassi pulitissima, l'ampiezza di applicazioni
senza pari.  Su Win32, e` il miglior linguaggio di scripting per
Win32, il piu` ricco di estensioni, l'unico che puo` chiamare
qualsiasi funzione esportata da una DLL, e pienamente usabile
per scrivere arbitrari clienti COM, serventi COM, NT Services,
e quant'altro -- mancano solo i device driver:-); su Unix di vari
sapori, viene usato per il CGI, il calcolo numerico intensivo,
l'elaborazione di immagini, la simulazione molecolare, ecc
ecc; su Win/CE, su Amiga, su Macintosh, su BeOS, su...
Difetti pragmatici: nessun testo in italiano (credo), relativamente
pochi anche in inglese (parecchie cose in rete, ma non saprei
esattamente dove indirizzare un principiante totale; solo una
mezza dozzina di buoni libri); nessun modo (che io conosca) di
chiedergli di essere "un po' piu` rigido" per aiutare il principiante;
stranamente poco noto (non capisco perche`).
La stessa potenza, molta piu` notorieta`, un pragmatismo
spinto all'assoluto estremo, e una sintassi che con tutta la
buona volonta` resta un caos, la trovi nel linguaggio Perl.
Molti sembrano credere che sia un linguaggio "per scrivere
CGI", ma questa popolare opinione e` assurdamente, sin
ridicolmente, limitativa -- non potra` fare _tutto_ quel che
puo` fare Python, ma un buon 90% si`.  Ci sono dei buoni
testi, anche per principianti assoluti; e` molto, molto noto
"in giro" (c'e` anche un gruppo it.comp.lang.perl); ha anche
il modo di chiedergli di essere "un poco piu` rigido e piu`
esplicito nei messaggi", cosa molto utile (per _tutti_, ma
soprattutto per i principianti).  Il difetto numero uno e`
quella sintassi "da paura"; il numero due, la copiosita` di
"misteriose magie" (semantiche oltre che sintattiche) per
cui si sforza sempre di "far quel che e` piu` comodo", il
che va benissimo quando va bene ma da` grattacapi non
da nulla quando NON va (capire i perche` e i percome "non
va" e` un'arte:-).
Pragmatismo appena meno spinto, notorieta` ancora
maggiore, potenza inferiore ma sufficiente per molto di
quel che uno vuol fare (soprattutto un principiante) li
trovi in Visual Basic.  A differenza di Perl e Python, NON
e` un linguaggio portatile, cioe` praticamente ti lega
mani e piedi a Win32; e NON e` gratuito, bensi` a
pagamento.  Pero`, e` incorporato in tutte le applicazioni
di Microsoft Office, il che e` un discreto vantaggio pratico
(puoi "usarlo da subito" per programmare comuni
compiti che usano Microsoft Word, o Excel, eccetera);
inoltre, c'e` una enorme gamma di libri disponibili, anche
in italiano (molti pessimi, certo, ma molti altri buoni).
it.comp.lang.visual-basic ti offre poi un posto dove puoi
chiedere aiuto in italiano (e forse riceverne:-).
Come linguaggio in se e per se ha alcuni difetti (sigh), ma
la sintassi e` abbastanza ragionevole (meno matta di
Perl, anche se certo non pulita come Python).  E` molto
facile "prendere brutte abitudini", ma, con un buon testo
che ti guidi, dovresti anche poterle evitare.  Come Perl,
permette di chiedergli di "essere piu` rigido", il che aiuta.
A te la scelta... e, auguri!
Alex

Cosa mi consigliate?
Per esperienza personale consiglio il pascal.
Le mie prime esperienze furono col basic dei commodore
per poi passare al turbo pascal, il salto fu inizialmente problematico,
ma nel giro di poco tempo (2 settimane) mi arrangiavo gia` discretamente
bene.
Io sono uno di quelli che crede che il principiante debba
essere guidato onde evitare l'acquisizione di brutte abitudini.
L'ideale certo sarebbe far capire perche` una certa cosa non e`
buona, ma questo non e` sempre fattibile. Certo non e`
una via che consente da subito sodisfazioni, ma alla lunga rende
molto di piu` e comunque non occorrono mesi per essere in grado di
fare qualcosa di carino.
Per la stessa ragione evita strumenti rad e wizzard vari. Sono strumenti
che ti permettono di realizzare intere applicazioni con pochi click del 
mouse, ma non ti fanno capire molto di quello che realmente viene fatto.
Il tuo obiettivo non e` sviluppare applicazioni, ma capire cosa 
significa programmare utilizzando direttamente un linguaggio di
programmazione "tradizionale" (nel senso di non visuale), imparare
a realizzare e manipolare strutture dati...
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------




Cosa mi consigliate?
Ho gia` nominato il Python, linguaggio assai adatto ai
principianti (infatti su di esso si impernia il progetto
americano "Computer Programming For Everyone") e
molto utile anche agli esperti.
La gran parte delle risorse si accedono, solo in inglese,
a partire dal sito 
www.python.org
 e i vari link che ivi
si trovano.
Comunque, ho tradotto in italiano un ottimo e ben noto
articolo introduttivo, e ho messo la traduzione sul mio
sito 
http://aleax.supereva.it/
 -- e` un articolo molto
conciso, probabilmente troppo "rapido" per assoluti
principianti della programmazione, ma ho in piano di
tradurne (e magari scriverne) altri, anche piu` adatti
ai principianti, se ricevo una qualche indicazione di
interesse in merito.
Alex