23 marzo 2014

Floppy canterini

Tu dimmi se costui non è un genio? Certo le finalità potranno essere anche discutibili (ognuno col proprio tempo può farci quello che vuole), ma tutto il resto no...



05 marzo 2014

LA SINTASSI DI PYTHON: L'indentazione

Quando ci si avvicina per la prima volta ad un linguaggio di programmazione ancor prima di pensare a flussi, condizioni, costrutti, moduli e/o concetti avanzati, ci si ritrova davanti al primo scoglio da affrontare rappresentato dalla sintassi del linguaggio. Una delle paure che attanaglia il programmatore in erba è proprio quella di non ricordarsi esattamente quello che il linguaggio pretende di sapere da lui e, purtroppo per noi, senza grosse deroghe.

Però avete la fortuna di avere il vostro amico Python al vostro fianco e la sua sintassi leggera ed intuitiva vi farà entrare subito nel mondo della programmazione con pochi sforzi mnemonici.

PHP
echo "Hello World";

Python 2.x
print "Hello World"

Python 3.x
print ("Hello world")

Tralasciando per un attimo il "veicolo" che permette la stampa di questo semplice messaggio, come vedete sono poche le differenze tra il nostro amico e il diffusissimo linguaggio di programmazione web (che presto abbandonerete, sappiatelo). Abbiamo fatto un classico Hello World e non ci ha dato delle grandi soddisfazioni, perché non si intuisce una delle meraviglie di Python: l'indentazione, che però potrebbe disorientare i neofiti. Essendo parte del linguaggio, l'indentazione ci aiuterà a scrivere codice pulito e ordinato, ma non dovete credermi sulla fiducia, vi faccio dei facili esempi per capire di cosa sto parlando:

PHP
[...]
if ($variabile == "Qualcosa") {
$altra_variabile = "Altra cosa";
$stupida_variabile = "Stupida cosa";
[...]
} else {
$altra_variabile = "Qualcosa di default";
}

Python 2.x e 3.x
[...]
if variabile == "Qualcosa":
    altra_variabile = "Altra cosa"
    stupida_variabile = "Stupida cosa
    [...]
else:
    altra_variabile = "Qualcosa di default"

Grida di giubilo e manifestazioni collettive in piazza ed un solo urlo si alza al cielo: "La sintassi di Python è bellissima...". Chi ha detto no? Scusate quel rubista in fondo alla stanza può smettere di dar fastidio per cortesia? Ma analizziamo i due piccoli script e vediamo se vi convinco...

Come notate, ci sono delle notevoli differenze principalmente dovute al posizionamento delle varie righe. Se per inciso modificassimo lo script in PHP in questo modo:

[...]
if ($variabile == "Qualcosa") {
        $altra_variabile = "Altra cosa";
              $stupida_variabile = "Stupida cosa";
            [...]} else {
    $altra_variabile = "Qualcosa di default";
                                                               }

...questo funzionerebbe ugualmente. Ma non su Python, perché se producete un codice come il sottostante, attirerete l'ira funesta su di voi e verrà restituito un errore:

[...]
if variabile == "Qualcosa":
    altra_variabile = "Altra cosa"
   stupida_variabile = "Stupida cosa
  ^^^
  [...]
else:
altra_variabile = "Qualcosa di default"
^^^

Bene penserete, quella del PHP è flessibilità... NO E' MALE.

Quando scriverete applicazioni complesse di centinaia di migliaia di milioni di righe, ringrazierete di farlo con Python, perché vi obbligherà ad essere scrupolosi ed attenti, ed un buon programmatore deve esserlo (pausa scenica guardando il rubista a fondo sala).

Non sottovalutate il fatto che il vostro codice potrà in futuro essere utilizzato anche da altri programmatori. Trovandosi di fronte all'uniformità nel metodo di scrittura, questi saranno in grado di essere subito produttivi senza dover perdere tempo ad insultare tutta la vostra famiglia fino alla terza generazione solo perché il martedì indentate ed il giovedì no.

Piccola digressione normativa. Se vi state chiedendo se il formato dell'indentazione sia a libera interpretazione, sappiate che la risposta è sì perché potete usare quello che vi è più comodo (4 spazi, 1 tab, 8 spazi, etc...), basta che nello stesso file siano uguali (Python 3 non accetta nemmeno l'alternanza tra tab e spazi). Se poi volete vincere il premio del programmatore del mese, sappiate che la PEP8 suggerisce l'utilizzo di quattro spazi.


Ma torniamo per un attimo ai due script dove notiamo che in Python siamo liberi da ogni orpello sintattico. Niente "( )" e "{ }" per definire il ciclo, niente " ; " a fine riga (pena la decapitazione se dimenticati), insomma nulla se non l'indentazione ed il " : " dopo l'invocazione del ciclo.

Sia chiaro, non è un confronto né tantomeno un attacco a PHP, è solo un esempio e lo avrei potuto fare con altri mille linguaggi. Quello che deve restarvi è l'estrema pulizia con la quale Python permette di scrivere e "manutenzionare" il proprio codice.

Questo è il primo approccio di una lunga serie al nostro linguaggio, prossimamente parleremo dei tipi di dati, dei cicli e delle funzioni vitali Built-in.

02 marzo 2014

Meccanica di tiro in slow motion

Amo il basket ed amo tutti quei piccoli particolari che lo rendono unico. Sono sempre stato fanatico della meccanica di tiro, che per raggiungere la perfezione deve essere ripetuta fino allo sfinimento.

Proprio per questo il video qui sotto mi manda già di testa...

01 marzo 2014

Sono uno zombie

Sia chiaro i ragazzi del video sotto hanno estremizzato il discorso, ma non tanto poi. Sono entrato al ristorante qualche ora fa ed ho visto una scena apocalittica: tutte le teste chine sul telefono e praticamente nessuno che interagisse con la persona davanti o col cibo. Incredibile ho pensato, ed era evidentissimo ai miei occhi, ma appena mi sono seduto al tavolo come se avessi dimenticato l'alienazione appena riscontrata, ho tirato fuori il mio smartphone e ho controllato messaggi e posta. Nooooo, sono anche io uno zombie.

Tondo è bello...

Tondo è bello...