- From: Giuseppe Bianchi <
>
- To:
- Subject: Off topic: regexp, python, java, perl, ovvero: ignoring good theory leads to bad programs
- Date: Thu, 18 Jun 2009 20:32:59 +0200
Off topic, ma ESEMPLARE (lo so, non dovevo, ma non ce l'ho fatta a
non girarvela... piu' forte di me).
Si parla di automi a stati finiti. Cose che tutti gli informatici
dovranno forzatamente fare (penso nell'ambito del corso ALT), ma che
non tutti vorrebbero fare (ho il vago sospetto che qualcuno tra voi
preferirebbe fare ben altro al posto del sopracitato ALT).
E cose che in questi giorni pure a me tocca fare. Non pensiate che
fare il retista voglia dire giocare tutto il giorno con router o
WLAN... regular expressions ed automi a stati finiti servono anche a
noi quando cerchiamo di fare algoritmi per deep packet inspection o
per intrusion detection.
Ebbene, in questo ambito, cercando tutt'altra cosa, mi sono imbattuto
nel seguente CAPOLAVORO.
http://swtch.com/~rsc/regexp/regexp1.html
Anche se non ve ne importa nulla e/o se odiate gli automi a stati
finiti, e/o se non sapete ancora cosa sia ALT e di cosa sto parlando,
COMUNQUE leggetevi le prime 30-40 righe. Senza preoccuparvi degli
aspetti tecnici tipo cercare di capire cosa sia una regexp o cosa
siano le NFA o le DFA. Non serve. La morale arriva infatti in fretta,
molto in fretta. Ed e' ottimamente sintetizzata dalla frase:
Today, regular expressions have also become a shining example of how
ignoring good theory leads to bad programs.
e dal fatto che nella lista dei bad programs appare parecchia roba
moderna che piace a molti di voi, tra cui Python (il linguaggio
preferito dai miei giovani, a cui ovviamente non ho fatto mancare
questa email), Perl, Java, ...
Questa lettura mi conferma quanto ho sempre sospettato. C'e' una
differenza sostanziale tra le generazioni dei nonnetti come me,
generazioni in cui si studiava TANTO prima di sviluppare, e le nuove
generazioni in cui a volte (non sempre, ovviamente, e sicuramente non
voi ;-)) si programma prima di studiare, o meglio si programma INVECE
di studiare. Generazioni in cui trovo spesso gruppi di sviluppatori
che privilegiano la manualita' nella programmazione (aho, quello
"coda" (*) da sballo) piuttosto che i fondamentali e lo studio.
Meditateci anche voi: molto spesso vi lamentate che all'universita'
vi riempiono di teoria che (pensate) non serve a nulla. Ma poi vedete
che capita di scoprire che invece la teoria serve... Ma capita non
troppo frequentemente, anche perche' molti, invece di cercare ed
imbattersi in queste scoperte, continuano a "codare" contenti e
felici. Con risultati pessimi, come dimostra questo post....
Buona lettura! GB
(*) "coda" = voce del verbo "codare", che vuol dire "programmare";
neologismo non mio ma sentito in ambienti di sviluppatori in zona
roma sud/ovest ;-)
- Off topic: regexp, python, java, perl, ovvero: ignoring good theory leads to bad programs, Giuseppe Bianchi
Archivio con motore MhonArc 2.6.16.