Off topic: regexp, python, java, perl, ovvero: ignoring good theory leads to bad programs


Cronologico Percorso di conversazione 
  • 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.

§