--
Bye
Alfredmann
..........................................
Babbo di futuro programmatore :-)
..........................................................................................
Rispetto a ieri, siamo certamente al giorno dopo (J. Verne)
lo so che tutti mi remeranno contro ma fagli
imparare il C/C++ da subito. Se ti/gli serve una
mano scrivimi pure in prv. :)
--
"Papà, cos'è un mostro? - Mia cara, così su tre piedi
proprio non te lo saprei dire"
... ovviamente e contestualmente un linguaggio più
"easy". Mi chiedo se Python potrebbe andar bene e mi
sa di sì.
ops, vedo che non hai perso tempo, come non detto.
Non credo servirà.
> L'ideale sarebbe trovare qualcosa online, ma va bene anche un
> tradizionale libro di carta.
Immagino in italiano e questo riduce la quantità di risorse utili.
> In quest'ultimo caso ho presente la serie 'for dummies', puo' andar
> bene?
Senz'altro proprio perché dovrebbero essere rivolti ad un principiante.
Io come suggerimento do quello di un libro sulla programmazione in
generale piuttosto che di uno specifico linguaggio, il linguaggio lo
sceglierà secondo le necessità ma è l'approccio generale che conta.
Per una richiesta di questo tipo mi sembrerebbe adatto Squeak come
ambiente, ma è una idea "a pelle" dato che di fatto non l'ho mai usato.
> Per una richiesta di questo tipo mi sembrerebbe adatto Squeak come
> ambiente, ma � una idea "a pelle" dato che di fatto non l'ho mai usato.
Dai, � cercarsela. Divertente � divertente.
Ma � da provare che non sia meglio qualcosa di standard tipo Python.
Con il libro del Beri a poche manciate di euro.
--
-riko
> lo so che tutti mi remeranno contro ma fagli
> imparare il C/C++ da subito. Se ti/gli serve una
> mano scrivimi pure in prv. :)
Pessima idea. Ancora ancora il C. Imparare come primo linguaggio C++ �
folle. Si finisce solo per essere necessariamente cattivi programmatori
C++.
--
-riko
be', forse sarà pessima ma l'ho pensata prima di
scriverla. La mia opinione è che non si è obbligati
a usare uno strumento al pieno delle sue
potenzialità. Se ne parlò su questo NG e mi venne
confermato che è possibile usare il C++ a livelli
estremi, e non per nulla è il top dei linguaggi dal
punto di vista della potenza e sotto vari altri
aspetti noti.
Ma ha un formato libero, costrutti estremamente
flessibili, non si è obbligati a usarlo appieno. Si
può di fatto usare il C++ in modo molto vicino al
basic o al pascal e piano piano introdurre oggetti
molto molto semplici. Ci vorranno 5-6 anni prima di
toccare ereditarietà, funzioni virtuali eccetera?
OK, intanto il terreno è pronto con una sintassi
nota, un comportamento di cui si conoscono gli
spazi, un compilatore che ci ha accompagnato e alla
cui diagnositica si è abituati. Io non vedo ragione
per imparare un linguaggio con alte probabilità di
essere abbandonato come Basic o Pascal (non dico
l'abbia proposto tu, ho sparato nomi di linguaggi a
caso). E' vero che resta la mentalità, che il lavoro
di programmazione è ben altro che il linguaggio in
cui viene realizzato eccetera. Ma perché non partire
da subito con uno dei linguaggi migliori? Certo, se
il C++ obbligasse ai costrutti che si ritrovano in
un programma anche solo di livello medio-basso non
mi sarebbe saltato in mente di candidarlo. Ma "hello
world" dell'incipit del K&R lo può tranquillamente
capire e modificare un ragazzo di 10-13 anni.
Un'obiezione più forte e più concreta sono
effettivamente le librerie. Il C++ va bene per quei
ragazzi di indole profonda che sono almeno un poco
poco portati all'astrazione, che capiscono che anche
stampare i numeri da 1 a 10 su un terminale è solo
un caso particolare di una gamma infinita di
possibilità e ne comprendono il valore. Altri tipi
umani vogliono vedere subito un'uscita grafica, il
geco che si muove, le palline del flipper. Va
benissimo, è solo un altro tipo di mentalità e credo
che Python possa andare anche se non sono un esperto
di quel linguaggio. Altri diranno la loro. Meglio
ancora sarebbe imparare due linguaggi insieme e
parallelamente, in modo da capire le sfaccettature
di un problema.
Resta che non vedo perché fare percorsi molto simili
più di una volta. Io ho perso anni col Fortran e non
volevo imparare il C perché ero già grandicello e
avevo fatto molto col fortran. Conoscere un
linguaggio significa anche scrivere codice mentre si
ascolta musica, e in questo senso meglio secondo me
avere nel sangue la cosa migliore compatibile con le
condizioni al contorno.
Solo mie opinioni, non pretendo abbiano valore
oggettivo.
ciao!
Apx.
> La mia opinione � che non si � obbligati
> a usare uno strumento al pieno delle sue
> potenzialit�.
Sono d'accordo. Ma attenzione che *usare* e' diverso da *imparare*.
Trovarsi fin da subito davanti il numero di scelte che C++ pone davanti
al programmatore e' piuttosto scioccante. Mette troppa carne al fuoco
*da subito*.
Ci sono linguaggi di cui si puo' imparare un sottoinsieme assolutamente
minimale e usare quello. Un esempio e' Python. Un altro esempio e'
scheme. O Prolog (ma non consiglierei di usarlo come primo linguaggio).
C++ soffre tantissimo a livello didattico. Ti dico perche' lo *insegno*
(in effetti tecnicamente sono esercitatore, quindi piu' che insegnarlo
sono coinvolto nel suo insegnamento).
C e' *molto* piu' facile da imparare. Magari e' piu' scomodo da
usare[0]. Ma e' piu' facile da imparare.
Usare un linguaggio di alto livello ha pero' un mucchio di vantaggi. Si
hanno meno dettagli da gestire da subito, ci si puo' concentrare su
quello che si vuole fare e meno sul come. Non solo: si hanno a
disposizione strumenti operativi molto ben fatti, per cui fin da subito
si possono affrontare problemi "divertenti".
Per darti un'idea, un semplice crawler che si scarica un sito in locale,
in Python lo potrei fare affrontare dopo pochi giorni di esercizio.
In C++ (di base) molto di piu'.
Alla fine lavorare in un linguaggio di piu' alto livello permette di
avvicinarsi prima a quello che si vuole fare.
Parliamo di ragazzi di 15 anni che in poche settimane si scrivono
programmi desktop (semplici, non full-featured), semplici giochi.
Capisci che e' un mondo *diverso* da quello di C++.
Un altro poco piu' vecchio si e' scritto un interprete per un semplice
linguaggio. Altri ancora ci lavorano per giochini matematici.
Ma la cosa sorprendente non e' solo quello che fanno, e' dopo quanto
poco che conoscono il linguaggio lo fanno *e* quanto imparano. Il ritmo
a cui imparano. Il numero di problemi diversi che riescono ad affrontare
e risolvere.
D'altra parte anche il sottoscritto da quando ha preso a lavorare con
linguaggi di alto livello (funzionali, imperativi, whatever) ha iniziato
a crescere molto piu' rapidamente di prima. Toccare con mano cose che
prima non erano affrontabili.
In C++ non e' neanche il "sono a basso livello e mi ci crogiolo" del C.
Che pure e' divertente a sua maniera. E' un'altra cosa che un ragazzo
puo' trovare divertente *e* ha un valore didattico (ovvero come funziona
la macchina).
C++ invece ci si allontana abbastanza da impedire la comprensione di
certe cose (a meno di non raggiungere un certo livello) *ma* non si
avvicina abbastanza al pensiero del programmatore da portare ad un nuovo
livello di astrazione.
------
[0] boh, bisogna poi vedere.
> Se ne parl� su questo NG e mi venne
> confermato che � possibile usare il C++ a livelli
> estremi, e non per nulla � il top dei linguaggi dal
> punto di vista della potenza e sotto vari altri
> aspetti noti.
Boh, se lo dici tu.
> Ci vorranno 5-6 anni prima di
> toccare ereditariet�, funzioni virtuali eccetera?
Spero di no, cielo! Ci vorranno 5 anni prima di avere capito (forse)
quando usare cosa.
Ma accidenti, perche' stare ad annoiarsi con problemini giocattolo per
anni invece che dopo pochi mesi divertirsi con quello che si vuole
veramente fare?
> OK, intanto il terreno � pronto con una sintassi
> nota, un comportamento di cui si conoscono gli
> spazi, un compilatore che ci ha accompagnato e alla
> cui diagnositica si � abituati.
Ah, il discorso se mi abituo ai chiodi (e non muoio nel frattempo) poi
un tavolo mi sembrera' un giaciglio comodissimo... :)
> Io non vedo ragione
> per imparare un linguaggio con alte probabilit� di
> essere abbandonato come Basic o Pascal (non dico
> l'abbia proposto tu, ho sparato nomi di linguaggi a
> caso).
Per cui direi che e' un'obiezione poco importante. C'e' pieno di
linguaggi facili da imparare *e* che non si abbandonano.
> Ma perch� non partire
> da subito con uno dei linguaggi migliori?
Perche' C++ non lo e'. C++ e' utile. Forse. Non e' "bello".
> Certo, se
> il C++ obbligasse ai costrutti che si ritrovano in
> un programma anche solo di livello medio-basso non
> mi sarebbe saltato in mente di candidarlo.
C++ *obbliga* ai costrutti
> Ma "hello
> world" dell'incipit del K&R lo pu� tranquillamente
> capire e modificare un ragazzo di 10-13 anni.
C++ != C
> Un'obiezione pi� forte e pi� concreta sono
> effettivamente le librerie. Il C++ va bene per quei
> ragazzi di indole profonda che sono almeno un poco
> poco portati all'astrazione, che capiscono che anche
> stampare i numeri da 1 a 10 su un terminale � solo
> un caso particolare di una gamma infinita di
> possibilit� e ne comprendono il valore.
Ma secondo te una persona normale quando vede una cosa come:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Non si chiede se chi l'ha progettato era pazzo tronco?
Gia', poi dopo un po' di anni capisci che quello li e' l'unico e il
miglior modo per fare quella cosa in C++.
> Va
> benissimo, � solo un altro tipo di mentalit� e credo
> che Python possa andare anche se non sono un esperto
> di quel linguaggio. Altri diranno la loro.
Penso che non conoscendolo, probabilmente non dovresti parlarne...
> Meglio
> ancora sarebbe imparare due linguaggi insieme e
> parallelamente, in modo da capire le sfaccettature
> di un problema.
E soprattutto in modo da impararli male entrambi *e* cosa piu'
interessante, con una scelta opportuna, continuare ad avere errori
perche' si confondono i due linguaggi. Questo e' piu' che altro
divertente in senso masochista, ma si riesce a fare.
Diverso e' imparare piu' linguaggi "uno dopo l'altro". Assicurandosi di
avere imparato il piu' possibile da uno prima di "passare" all'altro.
--
-riko
> La mia opinione � che non si � obbligati
> a usare uno strumento al pieno delle sue
> potenzialit�.
Sono d'accordo. Ma attenzione che *usare* e' diverso da *imparare*.
Trovarsi fin da subito davanti il numero di scelte che C++ pone davanti
al programmatore e' piuttosto scioccante. Mette troppa carne al fuoco
*da subito*.
Ci sono linguaggi di cui si puo' imparare un sottoinsieme assolutamente
minimale e usare quello. Un esempio e' Python. Un altro esempio e'
scheme. O Prolog (ma non consiglierei di usarlo come primo linguaggio).
C++ soffre tantissimo a livello didattico. E te lo dico con cognizione
di causa.
> Se ne parl� su questo NG e mi venne
> confermato che � possibile usare il C++ a livelli
> estremi, e non per nulla � il top dei linguaggi dal
> punto di vista della potenza e sotto vari altri
> aspetti noti.
Boh, se lo dici tu.
> Ci vorranno 5-6 anni prima di
> toccare ereditariet�, funzioni virtuali eccetera?
Spero di no, cielo! Ci vorranno 5 anni prima di avere capito (forse)
quando usare cosa.
Ma accidenti, perche' stare ad annoiarsi con problemini giocattolo per
anni invece che dopo pochi mesi divertirsi con quello che si vuole
veramente fare?
> OK, intanto il terreno � pronto con una sintassi
> nota, un comportamento di cui si conoscono gli
> spazi, un compilatore che ci ha accompagnato e alla
> cui diagnositica si � abituati.
Ah, il discorso se mi abituo ai chiodi (e non muoio nel frattempo) poi
un tavolo mi sembrera' un giaciglio comodissimo... :)
> Io non vedo ragione
> per imparare un linguaggio con alte probabilit� di
> essere abbandonato come Basic o Pascal (non dico
> l'abbia proposto tu, ho sparato nomi di linguaggi a
> caso).
Per cui direi che e' un'obiezione poco importante. C'e' pieno di
linguaggi facili da imparare *e* che non si abbandonano.
> Ma perch� non partire
> da subito con uno dei linguaggi migliori?
Perche' C++ non lo e'. C++ e' utile. Forse. Non e' "bello".
> Certo, se
> il C++ obbligasse ai costrutti che si ritrovano in
> un programma anche solo di livello medio-basso non
> mi sarebbe saltato in mente di candidarlo.
C++ *obbliga* ai costrutti
> Ma "hello
> world" dell'incipit del K&R lo pu� tranquillamente
> capire e modificare un ragazzo di 10-13 anni.
C++ != C
> Un'obiezione pi� forte e pi� concreta sono
> effettivamente le librerie. Il C++ va bene per quei
> ragazzi di indole profonda che sono almeno un poco
> poco portati all'astrazione, che capiscono che anche
> stampare i numeri da 1 a 10 su un terminale � solo
> un caso particolare di una gamma infinita di
> possibilit� e ne comprendono il valore.
Ma secondo te una persona normale quando vede una cosa come:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Non si chiede se chi l'ha progettato era pazzo tronco?
Gia', poi dopo un po' di anni capisci che quello li e' l'unico e il
miglior modo per fare quella cosa in C++.
> Va
> benissimo, � solo un altro tipo di mentalit� e credo
> che Python possa andare anche se non sono un esperto
> di quel linguaggio. Altri diranno la loro.
Penso che non conoscendolo, probabilmente non dovresti parlarne...
> Meglio
> ancora sarebbe imparare due linguaggi insieme e
> parallelamente, in modo da capire le sfaccettature
> di un problema.
E soprattutto in modo da impararli male entrambi *e* cosa piu'
Il piᅵ bel libro in assoluto di tutti i tempi (per principianti)
http://www.ebook-gratis.it/2-Programmazione/76-Perl/592-Perl_Corso_di_programmazione_libro.html
Purtroppo credo non venga piᅵ stampato cmq puᅵ darsi che si trovi in
rete, in alternativa cominciare da siti tipo www.html.it con linguaggi
tipo PHP o PERL per poi eventualmente espandere le proprie conoscenze in
base alle necessitᅵ
Ho cuttato perché entrambi abbiamo scritto
parecchio, ma ovviamente ho letto (purtroppo sono in
piedi da un pezzo).
Direi che sappiamo come la pensiamo :) Mi pare di
capire che insegni o hai avuto modo di insegnare a
programmare sicché come minimo saprai di che parli.
Molte tue considerazioni le trovo interessanti e
sicuramente mi fanno vedere diversamente le cose; su
altre resto un po' sulle mie ma credo sia normale che
vada così.
C'è anche la variabile incognita rappresentata dal
carattere del ragazzo, che non conosciamo.
Probabilmente quello che accadrà sarà qualcosa che
non sarà totalmente riconducibile alle idee che sono
venute fuori; ciascuno ha i percorsi mentali suoi
e... beh, caso mai avremo un nuovo giovane
partecipante al NG :D
ciao!
Apx.
PS - Su Python non sarò una cima ma penso di
conoscerlo abbastanza per almeno chiamarlo in causa
in uno scambio di idee. Se no non ne avrei parlato.
> Dai, è cercarsela. Divertente è divertente.
Le dita hanno scritto Squeak ma la testa ha pensato "HyperCard". Il
divertimento è una componente importante del rapporto con il
calcolatore, chiaramente per ognuno il concetto di divertimento assume
una forma diversa.
> Con il libro del Beri a poche manciate di euro.
Che non conosco.
Io di py conosco pochissimo, giusto che riconosce i blocchi con le
indentazioni, è adatto a più di un paradigma di programmazione e che ha
una macchina vm a bytecode. Mi consigli di dare un'occhiata a quel libro?
La serie 'for dummies' va bene solo per i webmastella,
quindi li eviterei come la peste.
Il miglior linguaggio per cominciare a programmare
ᅵ il Pascal (o Turbo Pascal).
Comunque, una futura iscrizione ad un ITIS indirizzo informatico
ᅵ vivamente consigliata per imparare le basi della
programmazione.
> Le dita hanno scritto Squeak ma la testa ha pensato "HyperCard". Il
> divertimento � una componente importante del rapporto con il
> calcolatore, chiaramente per ognuno il concetto di divertimento assume
> una forma diversa.
HyperCard e' sfortunatamente morto. *Ma* c'e' PythonCard, volendo.
Facile e' facile. Peccato che come tutto quello che sta sopra wx su OS X
faccia necessariamente cacare.
Io comunque non lo consiglierei come "prima cosa da guardare quando si
sceglie Python". Diciamo che non lo ho *mai* guardato (il che vuole dire
che non lo consiglio nemmeno come quattrocentocinquantesima cosa da
guardare ;) )
> Io di py conosco pochissimo, giusto che riconosce i blocchi con le
> indentazioni, � adatto a pi� di un paradigma di programmazione e che ha
> una macchina vm a bytecode. Mi consigli di dare un'occhiata a quel libro?
1. Marco e' un mio amico
2. Costa 7.5 euro o giu' di li.
Per farsi un'idea mi sembra un'ottima scelta. Ti da i fondamenti[0], un
minimo di filosofia, qualche libreria carina da usare con esempi.
------
[0] Ovvero, tutto quello che si usa normalmente per programmare in
Python. Adesso non lo ho sottomano, ma mi sembra che certi argomenti
"avanzati" non siano trattati, ma sono anche argomenti che a chi vuole
programmare "normalmente" non interessano, tantomeno a chi sta iniziando
o vuole farsi un'idea sul linguaggio.
--
-riko
> Il miglior linguaggio per cominciare a programmare
> � il Pascal (o Turbo Pascal).
Motivare.
> Comunque, una futura iscrizione ad un ITIS indirizzo informatico
> � vivamente consigliata per imparare le basi della
> programmazione.
Non sono assolutamente d'accordo.
--
-riko
stranamente sono d'accordo con te :D Mi spingo a
dire che sarebbe controproducente.
>> Comunque, una futura iscrizione ad un ITIS indirizzo informatico
>> � vivamente consigliata per imparare le basi della
>> programmazione.
>
> Non sono assolutamente d'accordo.
Ma neanch'io che l'ho fatto.
Che impari a scrivere bene in italiano e inglese piuttosto, ce n'e' un
gran bisogno :p
> HyperCard e' sfortunatamente morto. *Ma* c'e' PythonCard, volendo.
Ma ci vuole un Brave Hero per avventurarsi in quella landa.
A quel punto ci sono Revolution e SuperCard che offrono piattaforme ben
più rodati, ma è solo una affezione nostalgica che ho per HC che me li
fa ricordare.
Btw ho preso la macchina Squeak con l'immagine che offrono sul sito,
è... sconcertante, una specie di trip nel mondo delle interfacce :-)
Non e' il linguaggio che fa il programmatore.
Per programmare occorrono due prerequisiti senza i quali non si va da
nessuna parte:
1) Inglese tecnico
2) Logica matematica
A 12 anni, alle scuole medie, si puo' gia' cominciare ad approfondire
queste cose.
Poi serve il computer, e quello ormai c'e' in tutte le case, e il
sistema operativo che rende facile la programmazione: una qualsiasi
distribuzione di linux, con tutti i compilatori.
> L'ideale sarebbe trovare qualcosa online, ma va bene anche un
> tradizionale libro di carta.
In rete c'e' tutto: la carta abbiamo smesso di usarla da qualche anno.
> In quest'ultimo caso ho presente la serie
> 'for dummies', puo' andar bene?
Si, se hai un tavolo che balla, per pareggiare le gambe va benissimo!
In alternativa si puo' tenere in bagno da leggere: stimola l'evacuazione
e all'evenienza sostituisce la carta igienica.
> Grazie a tutti.
Prego.
Chiaramente il discorso e' lungo, e gia' il fatto che non sia venuto lui
stesso qui a chiedere lumi, ma ci abbia mandato il papa', non e' un buon
punto di partenza.
Il programmatore nel XXI secolo corrisponde allo stregone del medioevo:
colui che ricerca, colui che prova, colui che fa mentre gli altri
guardano e non capiscono.
Ci vuole curiosita', iniziativa, e una certa predisposizione.
E poi ci vuole un problema da affrontare e da risolvere.
Ce l'avete un problema da risolvere?
> e il sistema operativo che rende facile la programmazione: una
> qualsiasi distribuzione di linux, con tutti i compilatori.
Non condivido affatto che linux "renda facile la programmazione".
La questione è che se una persona impara a programmare si avventura più
o meno profondamente sulla strada dellaconoscenza dei sistemi operativi,
in special modo se si mette mano a C e POSIX/UNIX.
Dire che una distribuzione linux rende facile la programmazione è falso,
dipende dalla storia dell'utente. Per portare un esempio se si deve
perdere un mese (è un lasso di tempo messo per assurdo) per imparare
l'uso di base perché si è abituati ad un altro sistema per poi
ritrovarsi a programmare con un IDE che è sostanzialmente uguale sulle
due piattaforme qual è il vantaggio? Per una affermazione del genere non
si può prescindere dalle conscenze _attuali_ della persona.
Secondo me il sistema che _conviene_ usare è quello che si conosce
meglio perché è uno strumento che si padroneggia meglio. Poi conviene
studiare come funzionano i sistemi operativi.
Il sistema è uno strumento, quale sia migliore o peggiore dipende sempre
dallo scopo e da quanto lo sai usare.
Semmai usare un sistema basato su linux obbligherà il ragazzo a capire
prima certi meccanismi col risultato che troverà già assodati dei
concetti che prima o poi avrebbe affrontato comunque.
Ma è un discorso che va in maniera ortogonale più che parallela alla
programmazione, e comunque dipende sempre da che tipo di programmi ha in
mente. Metti che il suo interesse siano widget realizzate in ECMAScript
(js) e il discorso sui S.O. cala molto in priorità.
Tutto questo IMHO, sono un libertario dei S.O.
> Diciamo che non lo ho *mai* guardato (il che vuole dire
> che non lo consiglio nemmeno come quattrocentocinquantesima cosa da
> guardare ;) )
Io gli diedi un'occhiata (qualche anno fa) mi è sembrato un progetto un
po' sterile e comunque con un'impostazione profondamente diversa da
quello che cercavo.
Mentirei se non avessi pensato che Facespan5 poteva essere la fenice che
risorgeva su Cocoa. L'autore ha abbandonato il progetto della beta in
corso d'opera.
> 1. Marco e' un mio amico
Ahh
-Acquaiuolo, l'acqua è fresca?- ;-)
> 2. Costa 7.5 euro o giu' di li.
Quando capito in libreria gli do un'occhiata.
Forse non ho evidenziato a sufficienza il fatto che stiamo parlando di
programmazione per diletto, non come aspirazione professionale.
--
Bye
Alfredmann
Non e' cosi'.
Il papa' vorrebbe insegnargli, ma non e' capace, quindi chiede lumi per
diventarlo almeno quanto basta per dargli almeno la base minima.
Poi capace che decide di studiare lingue preincaiche, chenneso'?
--
Bye
Alfredmann
Ci ho dormito sopra. Ora è tutto chiaro (scherzoooo)
Prova "Python" di Marco Beri, ed. Apogeo. Costa
poco, è un libro piccolo di formato (cosa importante
che non è stata sottolineata) te lo porti ovunque e
lo spizzichi con calma. E' ovvio che partendo da
zero non sarà il primo e il solo linguaggio in cui
ti imbatterai, ma secondo me è un punto di partenza
tra i tanti.
BTW l'interprete di Python è free, e si installa
senza grane. Se lo desideri ci aggiungi un editor
(io uso Crimson editor che è semplice semplice) e
poi ci sarà tutto il tempo di cambiare mille volte
linguaggi, compilatori, interpreti e ambienti di
sviluppo.
Non ho mica detto che la rende facile.
Ho detto che la rende possibile
Sotto linux ci sono a disposizione *tutti* i compilatori ed interpreti
piu' diffusi.
Dal gcc, al fortran, al perl, al phyton ...
Sotto windows non c'e' piu' neanche il QBasic.
> La questione è che se una persona impara a programmare si avventura più
> o meno profondamente sulla strada dellaconoscenza dei sistemi operativi,
> in special modo se si mette mano a C e POSIX/UNIX.
Non si puo' mica prescindere dal sistema operativo, o almeno non
ancora, e comunque conoscere anche il sistema operativo non fa certo
male.
> Dire che una distribuzione linux rende facile la programmazione è falso,
> dipende dalla storia dell'utente. Per portare un esempio se si deve
> perdere un mese (è un lasso di tempo messo per assurdo) per imparare
> l'uso di base perché si è abituati ad un altro sistema per poi
> ritrovarsi a programmare con un IDE che è sostanzialmente uguale sulle
> due piattaforme qual è il vantaggio? Per una affermazione del genere non
> si può prescindere dalle conscenze _attuali_ della persona.
Adesso tiri in ballo anche l'IDE.
Stiamo parlando di programmazione o di linguaggi?
Di algoritmi o di metodi e funzioni di libreria?
> Secondo me il sistema che _conviene_ usare è quello che si conosce
> meglio perché è uno strumento che si padroneggia meglio. Poi conviene
> studiare come funzionano i sistemi operativi.
> Il sistema è uno strumento, quale sia migliore o peggiore dipende sempre
> dallo scopo e da quanto lo sai usare.
E qui ci siamo.
> Semmai usare un sistema basato su linux obbligherà il ragazzo a capire
> prima certi meccanismi col risultato che troverà già assodati dei
> concetti che prima o poi avrebbe affrontato comunque.
E questo perche' non va bene?
> Ma è un discorso che va in maniera ortogonale più che parallela alla
> programmazione, e comunque dipende sempre da che tipo di programmi ha in
> mente. Metti che il suo interesse siano widget realizzate in ECMAScript
> (js) e il discorso sui S.O. cala molto in priorità.
Comunque se non sai programmare non fai neanche i widget in ecma. (o
se li fai fanno schifo)
Allora prima della base minima, vediamo se c'e' la stoffa.
Prendi un mazzo di carte.
Mischiale.
Dalle al figlio e digli di rimetterle in ordine col minor numero di
scambi.
Se un mazzo e' troppo prova solo con le 13 picche.
Le mischi e le disponi sul tavolo a faccia in su.
Il gioco consiste nel rimetterle in ordine dall'asso al re nel minor
numero di scambi possibile.
Il passo successivo e' quello di definire una sequenza automatica che
funzioni sempre.
Questa e' programmazione.
Non serve un computer.
Non serve un linguaggio.
Il secondo esercizio consiste nel trovare un nominativo nell'elenco
del telefono aprendo le pagine il minor numero di volte.
Forse il fatto che un tale Niklaus Wirth l'abbia inventato
proprio per questo ti pu� dire qualcosa?
Appunto!
Io non ho mai creduto troppo a questo tipo di test
anche se l'intento del tuo post è molto chiaro e mi
aggancio solo per divagare, non per contrapporre idee.
Anche la persona più negata al mondo in un certo
campo, può combinare qualcosa di positivo. Ho citato
tempo fa l'esempio che segue e mi pare che la
discussione che seguì fu accesa. Conosco un
programmatore che fa ottime interfacce grafiche -
per quanto aiutato dall'ambiente di sviluppo che
scrive lo scheletro del codice, lo so - che se deve
trovare lo zero di una funzione non lo fa per
bisezioni, interpolazioni, niente di "smart" o
almeno di sensato; tabula la funzione con un passo
fitto e fa la media tra le due ascisse dove cambia
segno. Non gli entra in testa il fatto che prima
occorre aver formalizzato il problema e solo dopo lo
si traduce in istruzioni. Eppure "fa", gli piace, è
persino il suo lavoro. So perfettamente che non è un
programmatore nel senso più professionale del
termine eppure... eppure lavora e nutre la sua famiglia.
C'è poi l'aspetto che si può arrivare a una meta
tramite mille percorsi; premesso che si potrebbe
identificare un nucleo minimo di capacità, le
componenti che lo costituiscono possono non seguire
un ordine *sempre* obbligato, insomma, se il
marmocchio fallisce il test delle bisezioni ma è
bravo lo stesso su altri fronti? La parte
"algoritmi" e "buon senso" la imparerà quando le
circostanze ce lo metteranno di fronte.
ciao!
Apx.
> Direi che sappiamo come la pensiamo :) Mi pare di
> capire che insegni o hai avuto modo di insegnare a
> programmare sicch� come minimo saprai di che parli.
Si.
> Molte tue considerazioni le trovo interessanti e
> sicuramente mi fanno vedere diversamente le cose; su
> altre resto un po' sulle mie ma credo sia normale che
> vada cos�.
Lo credo anche io.
> C'� anche la variabile incognita rappresentata dal
> carattere del ragazzo, che non conosciamo.
> Probabilmente quello che accadr� sar� qualcosa che
> non sar� totalmente riconducibile alle idee che sono
> venute fuori; ciascuno ha i percorsi mentali suoi
> e... beh, caso mai avremo un nuovo giovane
> partecipante al NG :D
Gia'. Ma *in assoluto* io sconsiglio C++ come linguaggio "per imparare".
Il "problama" e' che in C++ si fanno tante cose.
E questo fa parte della sua utilita'. Il problema e' che e' proprio
difficile da imparare.
C'e' quello cui piace fare cose "che funzionano". E in questo caso
suggerisco linguaggi di alto livello. Per cose che funzionano posso
intendere giochi veri e propri, aggeggi che risolvono problemi
matematici/puzzles, roba di rete, siti/applicazioni web. Sono cose in
cui il "divertimento" viene dall'avere prodotto un programma con uno
scopo.
In questo caso appunto suggerisco un linguaggio di alto livello dove il
problema da risolvere e' principalmente il problema. Il linguaggio ti
viene incontro in tutti i modi possibili. Per questo suggerisco Python
(Ruby potrebbe andare ugualmente bene) oppure scheme.
C'e' quello cui piace "entrare nella macchina". Piacciono i dettagli di
basso livello. Piace lavorare con i bit, gestire i dettagli. Si possono
affrontare problemi molto piu' semplici (a parita' di sforzo). In questo
mi piace C. Lo fai anche in C++, per carita'. Ma ci metti *piu'* sforzo
che in C. E' piu' difficile da imparare, non hai altri vantaggi. Tutto
qui.
> PS - Su Python non sar� una cima ma penso di
> conoscerlo abbastanza per almeno chiamarlo in causa
> in uno scambio di idee. Se no non ne avrei parlato.
OK.
--
-riko
> A quel punto ci sono Revolution e SuperCard che offrono piattaforme ben
> pi� rodati, ma � solo una affezione nostalgica che ho per HC che me li
> fa ricordare.
Ad un costo non indifferente e con possibilita' di crescita... limitata.
--
-riko
> Forse non ho evidenziato a sufficienza il fatto che stiamo parlando di
> programmazione per diletto, non come aspirazione professionale.
Scusa, riassumiamo. Siamo d'accordo che di per se un ITIS non e'
condizione sufficiente ad imparare a programmare.
Quindi, IMHO, o uno ci va perche' vuole diventare perito informatico
(perche' vuole lavorare in quel campo e non fare l'universita')
oppure...
Per diletto? Se uno vuole programmare per diletto puo' farlo con
qualunque scuola superiore. *E* mi sa tanto che come tutte le scuole si
venga costretti a fare anche tanta roba che non piace. Per cui, se si
vuole "imparare" ci si lavora duramente *da soli* a prescindere dalla
scuola. Se ci si vuole divertire, ci si diverte a prescindere dalla
scuola.
--
-riko
> Forse il fatto che un tale Niklaus Wirth l'abbia inventato
> proprio per questo ti pu� dire qualcosa?
Probabilmente non ti sei accorto che lo ha progettato grosso modo
quaranta anni fa e che nel frattempo il panorama e' cambiato non poco.
Il che vuole dire che se alla fine degli anni settanta Wirth lo ha
creato cosi' non vuole dire che *oggi* lo avrebbe creato cosi'.
Poi in informatica, come in ogni scienza, il principio di autorita' e'
la cosa piu' triste e ridicola che si possa immaginare.
Motiva perche' Pascal e' il *miglior* linguaggio di programmazione oggi.
Se proprio vogliamo divertirci con il principio di autorita', motiva
anche il perche' in buona parte delle migliori universita' americane
*non* lo usano per insegnare.
--
-riko
> > > e il sistema operativo che rende facile la programmazione: una
> > > qualsiasi distribuzione di linux, con tutti i compilatori.
> > Non condivido affatto che linux "renda facile la programmazione".
> Non ho mica detto che la rende facile.
> Ho detto che la rende possibile
Mi sembra strano che tu scriva così pur riportando il tuo stesso
messaggio che invece lo dice.
> Adesso tiri in ballo anche l'IDE.
"anche"? Cos'altro ho tirato in ballo?
> Stiamo parlando di programmazione o di linguaggi?
Programmazione, l'esempio era per sottolineare che il suggerimento di
usare un sistema su linux può richiedere risorse in termini di tempo.
> > Semmai usare un sistema basato su linux obbligherà il ragazzo a capire
> > prima certi meccanismi col risultato che troverà già assodati dei
> > concetti che prima o poi avrebbe affrontato comunque.
> E questo perche' non va bene?
Va bene, ho usato "semmai" per riformulare il concetto in una maniera
che mi semmbrava meglio motivata, non per confutarlo.
> > Stiamo parlando di programmazione o di linguaggi?
>
> Programmazione, l'esempio era per sottolineare che il suggerimento di
> usare un sistema su linux può richiedere risorse in termini di tempo.
>
Definiamo meglio il concetto di programmazione, perche' magari abbiamo
in mente cose diverse e per questo motivo non ci si capisce.
Dal mio punto di vista la programmazione e' l'elaborazione pura e
semplice e non comprende l'interfaccia che per me e' una cosa diversa.
La funzione, ovvero cio' che viene scritto dal programmatore, e' una
entita' che prende un input, lo elabora, e produce un output.
Fine.
Quando dico che per cominciare a prendere familiarita' con le funzioni
e' opportuno farlo in un ambiente unix lo dico per una serie di
motivi.
Il primo sono gli strumenti, che in unix ci sono gia', comprensivi di
documentazione.
Il secondo e' la presenza del terminale e la sua gestione nativa di
input e output, che consente di cominciare a scrivere semplici
funzioni, senza curarsi dell'interfaccia.
Una volta non c'erano dubbi su tutto questo.
Oggi, purtroppo, con la prepotente presenza di interfacce grafiche, di
strumenti di sviluppo troppo visuali, e della rete e dei browser,
l'interfaccia acquista una visibilita' tale da confondere chi si vuole
avvicinare alla programmazione, facendogli scambiare i concetti di
contenitore e contenuto.
Questa e' la mia opinione, basata sulla mia esperienza.
Se ci sono altri punti di vista, ben vengano.
E ce ne sono tanti cosi': buoni e capaci utilizzatori dello strumento
che usano.
Senza nessuna pretesa di capire quanto c'e' sotto.
Di fatto non e' un programmatore, e probabilmente nei suoi lavori e'
molto difficile fare della manutezione, a meno che non sia lui stesso
a farla.
Qui invece abbiamo un ragazzino che vorrebbe avvicinarsi alla
programmazione.
Facciamogli subito capire che cos'e' un programmatore.
Matematica, logica applicata, buona cultura generale.
Cosi' puo' dire: si' e' questo che mi piace imparare, oppure puo'
dire: no, io credevo che si trattasse solo di disegnare interfacce.
> C'è poi l'aspetto che si può arrivare a una meta
> tramite mille percorsi; premesso che si potrebbe
> identificare un nucleo minimo di capacità, le
> componenti che lo costituiscono possono non seguire
> un ordine *sempre* obbligato, insomma, se il
> marmocchio fallisce il test delle bisezioni ma è
> bravo lo stesso su altri fronti?
In tal caso fara' altre cose: io sono circondato da colleghi che non
sarebbero in grado di riordinare un array se non ci fosse la funzione
di sort gia' pronta, e che non sono in grado di effettuare una ricerca
in una struttura ordinata, e quindi si appoggiano ad Oracle anche per
tabelle di 10 record.
Eppure sono qui con me e mandiamo tutti insieme avanti la baracca.
Si puo' lavorare nell'IT anche senza essere buoni programmatori.
Ma intanto facciamo capire a questo ragazzino che cos'e' un
programmatore, come ragiona e che cosa fa.
> Se proprio vogliamo divertirci con il principio di autorita', motiva
> anche il perche' in buona parte delle migliori universita' americane
> *non* lo usano per insegnare.
Noi possiamo esprimere un parere sul Pascal e dire se secondo noi e'
un linguaggio utile o meno utile solo per una semplicissima ragione:
noi conosciamo il Pascal.
Chi il Pascal non lo conosce non puo' dire proprio nulla in proposito.
Inoltre tutti i programmatori il Pascal lo conoscono, magari non lo
usano piu', magari non lo hanno mai usato, ma lo conoscono.
Per questi semplici motivi un aspirante programmatore dovrebbe
confrontarsi col Pascal: perche' fa parte della cultura generale di un
programmatore.
[CUT]
> Questa e' la mia opinione, basata sulla mia esperienza.
> Se ci sono altri punti di vista, ben vengano.
Per essere chiari è anche il mio.
Se non ho capito male parli di interfacce perché il mio esempio
dell'ambiente di sviluppo ti ha suggerito "IDE" e "GUI builder" ma
ripeto che non era la mia intenzione. La scelta dell'esempio è stata
infelice nella discussione perché troppo vicina a questi due concetti.
Per _sostituire_ l'esempio poniamo che il ragazzo segua un libro che lo
guida ai primi passi in C e consideriamo i due casi in cui lo si mette
davanti ad un sistema che conosce (Win* per amore di statistica) e
davanti ad un altro sistema con linux che non ha mai visto e su cui non
sa muoversi.
La mia domanda (vagamente maieutica) è: su quale dei due sistemi il
ragazzo sarà in grado di compilare "hello world" per primo?
Spero sia più chiaro, fatto salvo questo anche io suggerisco un sistema
*NIX.
> Per _sostituire_ l'esempio poniamo che il ragazzo segua un libro che lo
> guida ai primi passi in C e consideriamo i due casi in cui lo si mette
> davanti ad un sistema che conosce (Win* per amore di statistica) e
> davanti ad un altro sistema con linux che non ha mai visto e su cui non
> sa muoversi.
> La mia domanda (vagamente maieutica) è: su quale dei due sistemi il
> ragazzo sarà in grado di compilare "hello world" per primo?
Linux, mentre quello che usa windows deve ancora trovare il sito per
scaricare il compilatore.
E poi, C, perche' tanto odio?
> Per questi semplici motivi un aspirante programmatore dovrebbe
> confrontarsi col Pascal: perche' fa parte della cultura generale di un
> programmatore.
Secondo la tua logica, anche il Basic?
Purtroppo il basic, essendo diventato il linguaggio per scrivere macro
di Office e OpenOffice, ed essendo anche il linguaggio di asp, e'
necessario anche lui.
Ma questo basic.
Non il basic anni '80 delle righe numerate e dei GOTO!
Quello assolutamente no.
A me il C piace, a prescindere dal fatto che lo uso.
Inoltre rispetto al pascal che utilizza Read e Write in modo
essenzialmente asettico, il C mette immediatamente in evidenza stdin e
stdout.
E questo a mio parere e' un bene: aiuta fin da subito a capire che
anche l'input e l'output sono oggetti come tutti gli altri.
In ogni caso io non farei proprio una questione di linguaggio, tanto i
primi approcci saranno tutti del tipo di:
1) acquisire un dato di ingresso
2) farci una elaborazione
3) visualizzare un risultato
e in questi tre step tutti i linguaggi sono talmente somiglianti che
credo di non essere il solo a scrivere un comando di un linguaggio
mentre sto scrivendo codice in un altro, quando si lavora con tanti
linguaggi diversi.
Per fare un classico esempio, la funzione che trasforma una stringa in
caratteri tutti maiuscoli: ogni linguaggio ne ha una, tutte hanno nomi
simili ma leggermente diversi, e io, regolarmente, ogni volta, mi
dimentico come si scrive nel linguaggio che sto usando in quel momento
e devo andare a verificare sul manuale.
Non capita solo a me, suppongo.
> Purtroppo il basic, essendo diventato il linguaggio per scrivere macro
> di Office e OpenOffice, ed essendo anche il linguaggio di asp, e'
> necessario anche lui.
E il PHP? Perl? Necessario per cosa? Un aspirante programmatore deve
confrontarsi con ASP? Io non sarei cosi' sicuro.
D'altra parte, se gli piacesse scrivere mod di Far Cry facendo pratica
con LUA, secondo me sarebbe sulla strada giusta.
Imparare a programmare significa imparare a gestire la complessita', la
*propria* complessita'.
IMHO, non significa mandare API a memoria, ne' far manutenzione delle
macro di Office, e neppure far pratica di lingue morte come Pascal,
COBOL, Perl e APL/1. Tutto puo' servire, tutto puo' essere divertente o
portare a casa la pagnotta, ma non aiuta a scrivere programmi migliori.
> Motiva perche' Pascal e' il *miglior* linguaggio di programmazione oggi.
non ho detto questo.
> Se proprio vogliamo divertirci con il principio di autorita', motiva
> anche il perche' in buona parte delle migliori universita' americane
> *non* lo usano per insegnare.
>
che gliene frega al tizio che ha iniziato il thread cosa fanno
nelle universit� americane? Mica ci deve iscrivere il figlio!
Appunto, ma la scuola l'hanno tirata in ballo altri nel thread, non io.
Io non ho mai parlato di scelte di vita, mi sono limitato chiedere
quale fosse l'approccio piu' corretto all'apprendimento dei rudimenti
della materia.
--
Bye
Alfredmann
Vero (almeno per me)
> Chi il Pascal non lo conosce non puo' dire proprio nulla in proposito.
Vero (in generale)
> Inoltre tutti i programmatori il Pascal lo conoscono, magari non lo
> usano piu', magari non lo hanno mai usato, ma lo conoscono.
Falso
> Per questi semplici motivi un aspirante programmatore dovrebbe
> confrontarsi col Pascal: perche' fa parte della cultura generale di un
> programmatore.
La logica! Forse conviene partire da l�
Noi conosciamo il Pascal (corollario: chi non lo conosce taccia)
=> tutti conoscono il Pascal
=> un aspirante programmatore dovrebbe conoscere il Pascal
Sorry, qualcosa non mi torna.
Enrico
Be' certo... è per questo che mi sono un po' tirato
indietro anche se continuo a pensare che dovendo
acchiappare il gomitolo e tirare un filo, con la
prospettiva di tirarsene dietro tanti altri se
piace, uno dei più comodi entry points sia Python.
Ma non ne faccio una questione di partigianeria,
tanto più che io faccio ogni cosa in C++. Il fatto è
che lo strumento e come si usa per un certo periodo
non saranno separabili. Per questo, visto che
comunque inizierà Alf a ravanare tra le varie
possibilità, poi capirà lui che pesci prendere.
Resto però sostanzialmente contrario a studiare
prima logica o valutare attitudini. In una prima
fase, qualsiasi cosa si stia facendo, molte delle
componenti che poi l'esperienza consente o obbliga a
separare, vengono insieme. "Assieme" ai rudimenti
del linguaggio, chi sta imparando implementerà il
suo primo bubble sort, eccetera. Poi si torna
indietro, si vedono le cose dalla distanza, e si
fanno altre scelte se è il caso.
Staremo a vedere che succede ^_^
> con LUA
Lua, sulla ml ti scorticano se lo capitalizzi così.
> Inoltre tutti i programmatori il Pascal lo conoscono, magari non lo
> usano piu', magari non lo hanno mai usato, ma lo conoscono.
Sono piuttosto convinto che questa affermazione sia piuttosto facilmente
falsificabile. Mi basta trovare un singolo programmatore che non conosce
il Pascal, sai. E credo di non avere difficolta' a farlo.
> Per questi semplici motivi un aspirante programmatore dovrebbe
> confrontarsi col Pascal: perche' fa parte della cultura generale di un
> programmatore.
Siamo passati dai giochini con le carte al dover imparare il Pascal.
Dopo di che, C fa parte della cultura generale pure lui. VisualBasic
della cultura generale di un programmatore Windows, shell, sed, awk e/o
perl di uno unix. Dopotutto ormai pure Java. E guarda, possiamo fare
molto lungo l'elenco.
Resta il fatto che da qualche parte deve cominciare. Il fatto che
"tutti[0] lo conoscono e poi non lo usano piu'" mi sembra scarsamente
rilevante per dirigersi in quella direzione.
-----
[0] come ti dicevo poi, quel "tutti" non sta in piedi.
--
-riko
> > Motiva perche' Pascal e' il *miglior* linguaggio di programmazione oggi.
>
> non ho detto questo.
Scusa, mi sono scordato un paio di parole.
Motiva perche' Pascal e' il *miglior* linguaggio di programmazione per
imparare a programmare oggi.
Comunque suppongo che visto il discorso si potesse inferire che questa
era la frase che dovevi motivare.
> che gliene frega al tizio che ha iniziato il thread cosa fanno
> nelle universit� americane? Mica ci deve iscrivere il figlio!
No. Tu suggerisci che dovrebbe imparare Pascal perche' Wirth lo ha
creato 40 anni fa a scopo didattico. Io ti rispondo che negli ultimi
quaranta anni i pareri su questa cosa sono nettamente cambiati. *Io* non
suggerirei di imparare a programmare in Pascal oggi. *Tu* suggerisci
invece di farlo, invocando il principio di autorita' come unica
giustificazione.
Io da un lato ti chiedo altre giustificazioni, dall'altro ti faccio
notare come probabilmente anche ammettendo (ma non concedendo, ben
inteso) il principio di autorita' nelle questioni tecniche, finirebbe
che Pascal *oggi* non e' una buona scelta.
--
-riko
> La logica! Forse conviene partire da l�
>
> Noi conosciamo il Pascal (corollario: chi non lo conosce taccia)
> => tutti conoscono il Pascal
> => un aspirante programmatore dovrebbe conoscere il Pascal
>
> Sorry, qualcosa non mi torna.
Quoto.
--
-riko
Ok, mi avete convinto.
In ogni caso da qualche parte bisogna pur cominciare.
E a parer mio bisogna cominciare da un linguaggio procedurale, che
permetta la ricorsivita', che gestisca tipi di dati elementari e che
consenta di creare tipi di dati piu' complessi.
Inoltre deve permettere di gestire con una certa facilita' l'I/O sullo
stdin e stdout magari in modo preferenziale.
I linguaggi con queste caratteristiche sono tanti.
Tutto sommato sarebbe ancora meglio cominciare con un interpretato
cosi' non c'e' neppure il problema di compilare.
Python, Perl, Ruby...
Butto lᅵ i miei due euro cent di consiglio un po' fuori dal coro.
Perchᅵ non cominciare con qualcosa di piᅵ piccolo di un PC?
Un oggetto del genere si programma in BASIC (che, fino a prova
contraria, resta il linguaggio per principianti per definizione):
http://www.parallax.com/tabid/295/Default.aspx
Ed ᅵ fatto apposta per chi vuole imparare e divertirsi.
Unisce alla programmazione anche qualche nozione di elettronica e,
soprattutto, la soddisfazione di vedere quello che hai realizzato che
"vive" (il termine ᅵ grosso, ma passatemelo!) indipendentemente dal PC.
Si realizzano cose semplici in poco tempo e, a differenza di quello che
accade lavorando solo sul PC, il tutto puᅵ anche essere un gioco
"manuale", come lo erano i vecchi lego, meccano etc.
Credo che aggiungere al software "puro" anche una dimensione "fisica"
(fosse pure un led che si accende e spegne) puᅵ rendere la
programmazione piᅵ appagante per un ragazzo (e cosᅵ ᅵ pure per il
sottoscritto che ormai ragazzo non ᅵ piᅵ da un paio di decenni :)).
Ci sono anche versioni programmabili dei lego ma, a quanto ho visto,
hanno costi davvero "da amatore".
Altri sistemi (arduino, ad esempio) si programmano in C (anche se con un
sistema molto semplice), potrebbero essere il passo successivo.
Certo che poi rischi di trovarti in casa un programmatore "embedded",
fili volanti, componenti dissaldati etc.
In quel caso... dimenticati il mio messaggio :)
--
Valter Minute
(the reply address of this message is invalid)
(l'indirizzo di reply di questo messaggio non ᅵ valido)
> Ok, mi avete convinto.
Ok.
> In ogni caso da qualche parte bisogna pur cominciare.
Esatto.
> E a parer mio bisogna cominciare da un linguaggio procedurale, che
> permetta la ricorsivita', che gestisca tipi di dati elementari e che
> consenta di creare tipi di dati piu' complessi.
> Inoltre deve permettere di gestire con una certa facilita' l'I/O sullo
> stdin e stdout magari in modo preferenziale.
Questa � un'opinione, sebbene una estremamente condivisa.
Complessivamente sono d'accordo anche io. Di qui si torna... lo studente
preferisce stare vicino al ferro e guardarlo lavorare oppure stare
vicino all'umano e poter raggiungere una maggiore gamma di obiettivi?
Credo siano entrambe posizioni valide, alla fine dipende molto dai
gusti. Ovviamente nella prima posizione suggerisco C, nella seconda...
essendo di parte, Python.
Io poi di fatto trovo molto intrigante anche fare iniziare con scheme...
che salvo il fatto che � prettamente funzionale invece che
procedurale... beh, ovviamente ha tutto quello di cui sopra. ;)
--
-riko