La carenza di programmatori Ruby

2012/7/2 Marcello M. [email protected]

meno completo che faccia vedere cosa succede realmente, come
C/C++/C#/DOS shell in terza - con programmazione imperativa classica,
Java/C#/Bash in 4 - con programmaziona a oggetti, e PHP/mysql/access in

L’idea di introdurre Ruby mi tenta, ma come? La cosa che mi sembra pi
plausibile quelle di sostituire bash con ruby, ma non tanto
giustificabile didatticamente. Sostituire Java? Poi vanno all’universit
e gli fanno Java+Swing in 2 mesi e non capiscono nulla.

Personalmente togliere C++ che non mi pare il linguaggio pi adatto per
introdurre la programmazione ad oggetti, veramente un osso duro, e
metterei Ruby, visto che la programmazione procedurale l’affrontano con
il
C e con esso l’aritmetica dei puntatori che mi apre assai importante, il
DOS che ci fa ancora li?

Poi sinceramente mi sembra veramente tanta roba… personalmente
metterei
un linguaggio procedurale (C), uno ad oggetti tra (Ruby, Java, C#) e la
Bash che effettivamente fa comodissimo… meglio che imparino bene il
paradigma di programmazione che, come mi pare adesso, 3 linguaggi
diversi
solo sulla programmazione ad ogggetti, rischian di far confusione e
linguaggi ne cambieranno tanti nell’arco della vita lavorativa se
quello
che faranno.

Per questo avevo invece pensato a Rails in 5, dove almeno le basi ci
sono, e si rimuoverebbe una parte pesante di DB realzionale.

Assolutamente no i DB relazionali saranno usati ancora per moltissimo

[CUT]


Riccardo

L’esperienza quello che ottieni quando, non ottieni quello che
desideri.

Riccardo L. wrote in post #1066984:

2012/7/1 Marcello M. [email protected]

Hey ragazzi! Mi avete subissato di reply. Provo a rispondere un po0 a
tutti.

non obbligatorio insegnare anche Rails subito, un framework
personalmente lo eviteri in un corso scolastico, meglio forse qualcosa
di
meno completo che faccia vedere cosa succede realmente, come
interagiscono
i vari componenti ecc…

Poi la programmazione ad oggetti ormai abbastanza anziana e
consolidata,
che in un corso di programmazione ci sia la necessit di dare cenni
storici
sulla stori dell’informatica concordo, che ci sia la necissit di passare
dalla programmazione procedurale, meno.
Io insegno a dei programmatori, il cui corso attulmente prevede
C/C++/C#/DOS shell in terza - con programmazione imperativa classica,
Java/C#/Bash in 4° - con programmaziona a oggetti, e PHP/mysql/access in
5°.

L’idea di introdurre Ruby mi tenta, ma come? La cosa che mi sembra più
plausibile è quelle di sostituire bash con ruby, ma non è tanto
giustificabile didatticamente. Sostituire Java? Poi vanno all’università
e gli fanno Java+Swing in 2 mesi e non capiscono nulla.

Per questo avevo invece pensato a Rails in 5°, dove almeno le basi ci
sono, e si rimuoverebbe una parte pesante di DB realzionale.

  1. Ruby va a braccetto con tecniche di programmazione come TDD/BDD/agile
    che sono poco diffuse in generale e in particolare in Italia

Questo un grandissimo PRO

Vero, ma come per tutte le cose occorre TEMPO.

Ho Visto RoR for Kids, ma non fa mer me. Non deveo introdurre la
programmaizone a degli allegri ragazzini, ma devo introdurre concetti
“pesanti”, come la programmazione event-oriented, multithread e simile.

Si possono scrivere cose brutte in ogni linguaggio, concordo. E’ anche
vero che (almeno) metà dei miei ragazzi va a lavorare subito, per cui
“fare Ruby” vuol dire anche “NON fare Java”. va bene che magari in un
futuro mi ringrazieranno, ma al momento rischiano di restare
disoccupati…

Come capite, non ho le idee molto chiare…

Puoi tranquilllamente insegnare il paradigma OO utilizzando Ruby ma
eviterei tecniche come Monkey Patching o Hooking.Anche i C++ template
(per intenderci tamplate class …) possono essere insegnati tramite
il metaprogramming di Ruby, unica cosa eviterei anche in questo caso
argomenti stile la generazione dinamica di metodi e funzioni tramite
class_eval().Non potr mai ringraziare abbastanza il mio prof
d’Elettronica, il quale mi fece letterarmente innamorare del linguaggio
macchina e dell’Assembly, non avrei mai immaginato, anni dopo, di
scriverci un’intero sistema operativo per gli embedded, se fossi in te
lo fare anche con i tuoi allievi.

Andrea M.

Program Manager MSN - Bing - Microsoft Corp

Ciao Marcello,

i miei 2 cent suoi tuoi 2 cent.

Ho letto il tuo messaggio l’altro giorno e mi fa piacere veder nascere
discussioni come questa: questa proprio una gran lista.

Se dovessi insegnare programmazione a ragazzi delle superiori,
lascerei da parte Rails e introdurrei Ruby come un ponte tra lo
scrivere un algoritmo usando pseudo-codice e implementarlo usando un
linguaggio come C, C++ o Java. A me piacerebbe (ed una curiosit che
ho da un sacco di tempo e, forse, per farlo, rischierei di usare i
ragazzi come cavie! :slight_smile: ) testare un approccio del tipo:

  • inquadrare un problema (magari semplice semplice all’inizio)
  • produrre un algoritmo in forma di pseudo-codice
  • produrre lo stesso algoritmo usando Ruby
  • riscriverlo usando linguaggi diversi, scendendo man mano i livelli
    di astrazione, arrivando anche ipoteticamente al linguaggio macchina

Come una specie di kata in cui ad ogni esecuzione ci si sporca le mani
un po’ di pi (ad esempio, all’inizio non mi preoccupo delle
variabili, poi le introduco senza tipizzarle e poi arrivo non solo a
tipizzarle, ma a capire che a variabile corrisponde posizione fisica
di memoria).

Ruby, poi, ha una sintassi molto elegante e se lo utilizzi solo come
linguaggio strutturato anche facilissimo da leggere (quasi
elementare direi): per me leggere codice di altri LA condizione per
migliorare il proprio approccio alla programmazione.

Certi costrutti di Ruby, poi, sono dannatamente vicini al linguaggio
(e credo al pensiero) comune: penso in particolare a scrivere cose
come “per ciascun elemento fai queste cose”, pi decifrabile del for
di C e compagnia.

Ciao,
Silvano

2012/7/1 Marcello M. [email protected]:


Posted via http://www.ruby-forum.com/.


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Considera l’ambiente prima di stampare questa email. Be a total user
rather than a complete waster.

. . . Silvano S. . . .
email: [email protected]
site: http://www.sistrall.it

2012/7/2 Marcello M. [email protected]:

Ciao Marcello…

Io insegno a dei programmatori, il cui corso attulmente prevede
C/C++/C#/DOS shell in terza - con programmazione imperativa classica,
Java/C#/Bash in 4 - con programmaziona a oggetti, e PHP/mysql/access in
5.

Perdonami ma se in un anno tu insegni a sviluppare C, C++, C# e DOS
shell insegnare Ruby una bazzecola.
Per carit io non sono un docente ma forse non meglio focalizzarsi
sui concetti alla base, quello che nei libri The Art of Computer
Programming tanto per dire e fare nei 3 anni 1 o 2 linguaggi?

L’idea di introdurre Ruby mi tenta, ma come? La cosa che mi sembra pi
plausibile quelle di sostituire bash con ruby, ma non tanto
Didatticamente semmai sostituirei PHP con Ruby.

giustificabile didatticamente. Sostituire Java? Poi vanno all’universit
e gli fanno Java+Swing in 2 mesi e non capiscono nulla.
No vanno all’Universit e semmai fanno Eiffel, e altre amenit come
informatica teorica, teoria dei compilatori e altri astrattismi che

Vero, ma come per tutte le cose occorre TEMPO.
Ok, ma visto che cmq TDD, BDD e Agile non sono legate a ruby, tanto
vale usarlo come canovaccio per tutti e 3 gli anni.
Far vedere ai tuoi ragazzi come scrivere codice partendo dai test in
maniera indipendente dal linguaggio…

Dico cos perch alle superiori io feci Turbo Pascal ed un po’ di C…
e di sicuro non abbastanza per scrivere codice networking.

Si possono scrivere cose brutte in ogni linguaggio, concordo. E’ anche
vero che (almeno) met dei miei ragazzi va a lavorare subito, per cui
“fare Ruby” vuol dire anche “NON fare Java”. va bene che magari in un
futuro mi ringrazieranno, ma al momento rischiano di restare
disoccupati…
Questa frase mi lascia tante perplessit.

Perch quello che tu fai a scuola di Java non li prepara al mondo
Enterprise, parola che tutti odiamo. Non li prepara tuttavia,
tecnicamente intendo, ad essere dei freelance.
Semmai puoi dare loro strumenti per approcciare i problemi, per
scegliere gli strumenti pi appropriati… ma non credo che le nozioni
da scuola superiore siano sufficienti per essere utili in progetti di
glue code da grande consultancy tanto per dire.

Con tanto di codice pessimo che mi capita da rivedere in ottica
security e che viene 95% da fior fior di laureati.

Parti con TDD, BDD. Insegna Ruby, insegna C e insegna Perl.
Innova.
Miei 2 cents


$ cd /pub
$ more beer

The blog that fills the gap between appsec and developers:

Aggiungo anch’io i miei due centesimi.

All’inizio farei usare degli strumenti al più basso livello possibile,
ma senza esagerare (non facciamogli implementare le librerie http). Un
framework nasconde troppe cose che poi non si capiscono e diventano
“magiche”. E’ capitato che dei junior mi chiedessero “come mai va in
errore dicendo che la variabile è nil?”, “ma l’hai inizializzata?”, “e
dove lo devo fare, io avevo copiato il codice da quell’altra view”.
Capisci che dover fare tutto da soli permette di toccare con mano come
funzionano le cose. Alla terza iterazione si inizia a capire cosa
potrebbe essere fattorizzato in una libreria e alla quinta si riconosce
cosa fa il framework e perché.

Quindi, indipendentemente dal linguaggio gli farei scrivere da zero
un’app web che faccia il routing delle richieste ai metodi delle classi
che le servono e gli farei usare direttamente l’sql. Poi in una seconda
fase inizierei a presentargli le scorciatoie implementate dai vari
framework.

Possibilmente non gli farei usare php che è veramente orribile. Se poi
gli servirà se lo impareranno facilmente, ma almeno avranno visto
qualcosa di meglio e di già funzionante. Come linguaggi per il web gli
mostrerei Java e Ruby. Java è più conosciuto dall’industria, con Ruby
svilupperanno più in fretta. Non gli farei usare C# per non costringerli
ad usare un preciso sistema operativo che magari non tutti hanno a
disposizione (vero che c’è Mono, ma non è la stessa cosa).

Stesse considerazioni per lo sviluppo lato client: all’inizio JavaScript
puro senza librerie e facciamogli sbattere la testa contro le
incompatibilità tra i browser, poi passiamo a jQuery.

Paolo

Propongo di continuare all’infinito questo thread alla ricerca della
risposta a questa domanda:

“Quante mail puo’ supportare un thread in Mail” (con questa siamo a
139) con l’app GMail di android comincia a diventare un poco complicato
arrivare in fondo al thread.

quando arriviamo a MAX UNISIGNED INT secondo me riusciamo a spaccare
Mail :slight_smile:

Ciao Marcello,
anche io manterrei i db relazionali, molto importanti. Eviterei rails
come qualsiasi altro framework, troppo presto. Mi focalizzerei sui
concetti ed un solo linguaggio ad oggetti tra Ruby, python, java e c#.
Ruby è molto didattico, il problema semmai è adattarsi a ciò che
troveranno dopo, inoltre nel nostro paese è una scommessa.
E’ bello vedere appassionati come te che insegnano e ti auguro di
sfornare tanti campioni. Chiedo scusa x eventuali errori, colpa mia che
non sono abbastanza smart x il phone

Bh dai Marco… su questo nn sono d’accordo allora non insegnamo pi
a scrivere su carta perch ci sono i wordprocessor o i tabled “in da
claud”?
Secondo me a scuola formativo farti vedere l’assembler per mostrarti
come lavora la cpu… non tutti faranno gli sviluppatori web, magari
qualcuno scriver exploit di sicurezza o lavorer nel gaming e l
sapere come lavora la CPU serve.

IMHO
Paolo

2012/7/17 Marco M. [email protected]:


Posted via http://www.ruby-forum.com/.


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


$ cd /pub
$ more beer

The blog that fills the gap between appsec and developers:

Ho incluso C# perchè ha un ottimo amb.iente di sviluppo che può essere
un
valore aggiunto.
Immagino non sia semplice capire quanto in basso scendere per mostrare
le meccaniche ma nel contempo evitare concetti semi-inutili che
difficilmente verranno sfruttati. Ad esempio io alle superiori ho usato
l’assembly dello z80… un pomeriggio per fare una moltiplicazione,
qualcuno pensava fosse utile mostrare come lavora una cpu ma forse era
meglio concentrarsi solo sul c.

Mah guardate
io prenderei in considerazione
anche python se non fosse per sti cavolo di underscore che
mi danno sui nervi

Io sono d’accordo con la riforma. Secondo me è troppo complesso ed
inoltre servirà a pochissime persone che se lo potranno eventualmente
studiare in maniera molto più approfondita.

Buona fortuna!

Ciao, due centesimi sulla discussione…

Volevo segnarlarvi che nella riforma della scuola superiore
(erroneamente denominata Gelmini) nelle scuole di informatica,
l’assembler è stato totalmente eliminato. IMHO non è un male perché i
ragazzi lo odiavano totalmente e quindi si ottenevano didatticamente dei
pessimi risultati e, di fatto, si possono ottenere gli stessi risultati
insegnando il C (non C++) a medio-basso livello.

Per il resto la riforma lascia molta (troppa) libertà agli insegnanti su
quale linguaggio/framework usare. In teoria è bello NON insegnare il
PHP, ma in pratica, non ci si riesce… molti ragazzi non vanno
all’università e vogliono essere immediatamente produttivi e
attualmente, in Italia, nel mondo della PMI “web-app” vuol dire “php”.
E’ da questa coniserazione che era nata l’idea di RoR… in modo da dare
loro qualcosa di operativo e diverso da PHP (dette per inciso i sistemi
di templating o framework in php non mi piacciono molto).

Ciao!