Pubblicità


L'autoerotismo informatico

Posted by chitarrista on Mer 15 Aprile, 2009 19:47

Questo è un articolo che avevo in mente da tanto tempo. L'avevo nominato su MSN, mentre parlavo con alcuni amici, ed ebbi l'idea di pubblicare qualcosa sul blog, ma poi ho rimandato per tante ragioni.

L'autoerotismo informatico è proprio di chi ha a che fare con l'informatica, e questo è abbastanza evidente.
Ne esistono diversi tipi, in base alla specializzazione dell'informatico, ma quello di cui vado a parlare riguarda la programmazione.

Tanti sono i programmatori, pochi sono quelli seri. E, generalmente, quelli seri non lasciano spazio all'autoerotismo, per dedicarsi maggiormente alla corretta scrittura del codice.
Quelli un po' meno seri, invece, provano emozioni indicibili quando riescono a produrre del codice particolarmente funzionante, particolarmente bello a vedersi, particolarmente utile (almeno per il creatore) o particolarmente interessante. È interessante analizzare fino in fondo ciascuna di queste possibilità.

Il codice particolarmente funzionante

Non è frequente che un programmatore "meno serio" scriva del codice che funzioni. È sicuramente più frequente che il codice funzioni, ma non serva assolutamente a nulla. Partendo, dunque, dai meravigliosi esempi di "Hello World" scritti in qualsiasi salsa (in tutte le lingue, usando sintassi oscure, eccetera), possiamo gettarci direttamente tra i programmi inutili.
Se la casa del programmatore poco serio fosse simile alla casa di Archimede Pitagorico, probabilmente trovereste mucchi di fogli che riportano codice assurdo, inutile, malfunzionante, eccetera. E poi, un mucchietto, lì in fondo, che è la delizia del proprietario. Di fronte al mucchietto c'è una targa che recita "Codice funzionante". Qui troverete tanti fogli scritti, ma ripieni - ancora una volta - di codice completamente inutile. Funzioni che trovano il quadrato di un numero, funzioni che verificano una terna pitagorica, funzioni che calcolano la possibilità che il mucchietto di carta sparisca per autocombustione.
Ma la scena forse più raccapricciante è sicuramente il programmatore. Il padrone di tutto quel disastro informatico che è il mucchietto di carta sta lì, col fucile in mano, pronto a sparare contro chiunque contesti l'utilità del suo codice "particolarmente funzionante". O, caso ancor peggiore, contro coloro che si offrono di debuggare il codice per scoprire eventuali falle, rischiando anche di far venir meno la ragione prima dell'autoerotismo. Alla fine, però, arriva la redenzione sotto forma di un rilassante bagno nei suoi prodotti, proprio come farebbe Paperon De' Paperoni nelle sue adorate monete.

 

Il codice particolarmente bello a vedersi

Probabilmente, è ancora più raro trovare del codice bello da leggere, specialmente se prodotto da uno di questi programmatori "meno seri". Infatti, costui tende, nella stragrande maggioranza dei casi, a "dimenticare" quali sono le regole per scrivere del codice che possa risultare leggibile a chiunque. E così, finisce per tralasciare indentazioni e spazi bianchi, incollando i parametri delle funzioni ai nomi delle funzioni stesse, i valori delle variabili al nome delle stesse e così via. Facendo così, egli produce un minestrone di variabili, valori, funzioni, definizioni che non ha capo né coda, non ha leggibilità né stile. Sostanzialmente, non ha nulla. E, probabilmente, non funziona per niente.
Fortuito è il caso del programmatore poco serio che si impegna per produrre del codice leggibile (ma non è detto che sia funzionante), evento che gli provoca - immancabilmente - svariate sensazioni di benessere. Benessere spesso turbato dai soliti debugger, che osservano attentamente il codice e scoprono che non fa assolutamente nulla o non funziona del tutto (o, peggio, non è codice).

Il codice particolarmente utile

Caso differente da quello del codice funzionante, è il caso del codice particolarmente utile. È facile autoconvincersi che il codice che si è scritto abbia una vera utilità. Esponenzialmente più difficile, però, è stilare un elenco dei luoghi dove potrebbe essere usato. E così, il codice resta "utile" indefinitamente, ma nessuno lo userà perché non avrà alcuna idea di come usarlo, dove usarlo, cosa farne. In alcuni casi, queste "piccolezze" non sono sufficienti a scalfire la felicità del programmatore, che continuerà per la sua (cattiva) strada, produrrà ulteriore codice "utile" che, magari, sarà anche bello a vedersi o, addirittura, funzionante.

Il codice particolarmente interessante

È molto difficile da definire, ma una affermazione potrà spiegare molte cose: «Ehi, Joe, guarda qui! Questo codice fa qualcosa di interessante...»
La definizione di "interessante", in questo caso, è piuttosto ampia. Si spazia dalle funzionalità veramente utili (ma, allora, il codice non sarebbe scritto da un programmatore "meno serio", e dunque cadremmo in un paradosso che dimostrerebbe che il codice è stato scritto da un programmatore serio) ai risultati inattesi prodotti da una funzione o da un oggetto.
Ad esempio, una funzione "interessante" potrebbe fornire un valore numerico piuttosto che una stringa, o un array invece di un intero, e potremmo andare avanti per ore, se non sapessimo che è del tutto inutile sfruttare una funzione che restituisca risultati del tutto randomizzati (laddove, ovviamente, questi non siano richiesti). Allora, il programmatore "poco serio" che si è impegnato per la stesura di questo codice sarà definito "caso" e qualcuno, con poca stima nei confronti del suddetto, vi aggiungerà l'aggettivo "umano". Allora costui sarà studiato come tale, verranno analizzate le sue funzioni cerebrali e si scoprirà che, in realtà, nella sua scatola cranica non v'è altro che una nocciolina ansiosa di fuggire da lì.
Se non altro, i responsabili di una tale scoperta saranno felici di aver salvato una innocente nocciolina da un destino orrendo.

 

I quattro casi analizzati in questo intervento sono decisamente pochi, ma sono sufficienti per definire - seppur in parte - quale sia la differenza tra programmatori seri e programmatori meno seri.

 

Detto ciò, io ricomincio a scrivere codice utile, funzionante, bello a vedersi e interessante...
Ciao ciao!

Condividi:These icons link to social bookmarking sites where readers can share and discover new web pages.
    BlinkList blogmarks co.mments connotea del.icio.us digg Facebook feedmelinks Furl LinkaGoGo Ma.gnolia NewsVine Netvouz Reddit Simpy Spurl YahooMyWeb

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.



Aggiungi un commento