Programmare in Javascript 1

JavaScript è il linguaggio di programmazione più incompreso del mondo, tanto che neanche chi ci programma, spesso, ha la consapevolezza di quali siano i suoi limiti. Con limiti non intendo indicare le limitazioni, che pure sono presenti, ma i suoi confini.

Non è un linguaggio semplice da utilizzare, da un lato perché è un linguaggio potente ed espressivo, dall’altro perché i tentativi dei progettisti di renderlo amichevole hanno, a mio parere, reso più difficile per chi si occupa di programmazione gestirlo al meglio.

Breve escursus storico

In principio era il Browser. Il più vecchio che ricordi di aver mai usato è Mosaic, un programma molto semplice che non prevedeva il supporto a JavaScript ma mostrava già tutte le potenzialità del web a chi era abituato a dividersi tra gopher, ftp e fidonet.

In seguito venne Netscape e, con esso, la prima incarnazione di JavaScript. Si trattava di una rivoluzione nella rivoluzione di cui non avevo ben compreso in mezzo alla confusione che regnava sovrana negli anni ’90 del secolo scorso. Tra Applet Java e pessime implementazioni degli interpreti associati ai browser JavaScript si costruì la pessima, e non del tutto immeritata, fama che lo accompagna ancora oggi.

Continua a leggere “Programmare in Javascript 1”

Portarsi mootools dapertutto

Scrolliamoci un po’ di ruggine di dosso dopo più di un mese di fermo con un post piccolo piccolo ma utile a rimettermi in carreggiata.

In questi giorni sto leggiucchiando tonnellate di documentazione su HTML5 e spesso mi trovo a voler fare esperimenti sulle strutture mostrate.

Finora la procedura consisteva nel copiare la pagina, inserire il tag per l’inclusione di mootools e richiamarla in locale per le sperimentazioni del caso. finora.

La soluzione a questa impasse l’ho trovata utilizzando un semplice script javascript da utilizzare come bookmarklet.

Continua a leggere “Portarsi mootools dapertutto”

Mootools: Selezionare un elemento

Tra i compiti più comuni che un programmatore javascript si trova ad assolvere c’è sicuramente la selezione di uno o più elementi all’interno del DOM.

Javascript propone diversi metodi: getElementById e getElementByTagName sono i più conosciuti e supportati. Mootools estende queste funzionalità fornendo dei propri metodi “wrapper” che permettono di operare selezioni più complesse con semplicità. Non mi stancherò mai di ripetere, inoltre, che i framework come Mootools hanno il metodo fondamentale di uniformare il supporto a javascript dei diversi browser (nei limiti del possibile). Ad esempio, nel caso della selezione permettendo di utilizzare una funzionalità simile a getElementByClassName anche per quei browser che non ne sono provvisti.

Darò per scontato che sappiate cosa siano xpath ed i suoi assi di selezione; chi non sapesse di cosa sto parlando può colmare la propria lacuna facilmente e rapidamente utilizzando, per esempio, la pagina della w3c school che parla degli assi.
Continua a leggere “Mootools: Selezionare un elemento”

Campi privati in Javascript

Con la traduzione di quest’ultimo pezzo penso di concludere la serie di traduzioni dei testi presenti sul sito di Douglas Crockford. Si è trattato di pezzi interessanti che hanno coperto aspetti del linguaggio Javascript che solitamente misconosciuti. Almeno per me lo erano, e non potrò mai ringraziare abbastanza l’autore per averli scritti ed avermi concesso di pubblicarne la traduzione.

In questo post Crockford illustra la possibilità di utilizzare le chiusure per dotare gli oggetti Javascript di membri privati. Al solito non si limita a riportare un pattern di programmazione ma si sofferma sulla sua implementazione e sui meccanismi che gli stanno dietro.

Buona lettura.

Continua a leggere “Campi privati in Javascript”

Riviste: Dev – Non fraintendere Javascript

Dev Anno 15 numero 4

E’ uscita da qualche giorno DEV, di Infomedia. Chi ha qualche anno sulle spalle ne ricorderà la presenza in edicola fin dalla notte dei tempi, non penso che in Italia ci sia stata una rivista informatica più vecchia, a parte Computer Programming, sempre di Infomedia, e qualche rivista degli albori,metà anni ottanta, specializzata in cassette per l’Atari, il Commodore 64 e lo Spectrum. Ah, quanti ricordi.

Questo numero ha la copertina, e diversi articoli all’interno, dedicati a Javascript, quello di Douglas Crockford, un interessante articolo sulla progettazione di un algoritmo per la soluzione di sudoku, soluzioni per migliorare la programmazione in openoffice ed altro ancora. Quanto meno val la pena dare un’occhiata, almeno al sommario.

Ed il contenuto della rivista non è l’unico motivo per farlo.

Questo scampolo di 2009 dovrebbe essere il momento in cui Infomedia, dopo aver abbandonato la scena editoriale per qualche tempo, e dopo essere stata rifondata, cerca di recuperare anni di esperienza nel campo che rischia di andare perduta per sempre (aggiungerei — come lacrime nella pioggia — se non fosse una citazione troppo ovvia).

Continua a leggere “Riviste: Dev – Non fraintendere Javascript”

Javascript: Ereditarietà basata su delega (Eredità prototipale)

Dopo la traduzione dell’illuminante divertissement sull’ereditarietà classica in Javascript. Douglas Crockford arriva a commentare il suo stesso articolo (a distanza di qualche anno) affermando che l’ereditarietà prototipale è di gran lunga più potente ed espressiva di quella basata su classi e che più si conosce Javascript e meno si utilizza ed apprezza quest’ultima. Ragione per cui ho deciso di tradurre anche il pezzo di Crockford che tratta l’ereditarietà prototipale. Ho invertito la posizione delle date rispetto alla versione originale mettendole all’inizio del parte di testo a loro associato, piuttosto che alla fine, perché la cosa mi lasciava un pò perplesso. Si tratta solamente di gusti personali, però.

Buona Lettura

Continua a leggere “Javascript: Ereditarietà basata su delega (Eredità prototipale)”

Ereditarietà classica in Javascript

E’ arrivato il momento di tradurre inheritance di Douglas Crockford. Si tratta del testo che più mi ha affascinato tra quelli che sono presenti sul suo sito. Mostra con semplicità le potenzialità del paradigma prototipale che sta alla base di Javascript. Se polimorfismo non fosse un termine troppo carico di significati in questo ambito lo userei.

Un appunto alla nota conclusiva aggiunta al pezzo da Crockford stesso, la trovate in fondo alla traduzione nel riquadro dal bordo nero. Sono daccordo solo parzialmente con l’autore quando scrive che i suoi tentativi di introdurre i pattern propri dei paradigmi dell’ereditarietà classica possono essere stati un errore. A parte la dimostrazione che Javascript può supportarli, non dobbiamo dimenticare che la stragrande maggioranza parte dei programmatori che si accingono ad utilizzare Javascript non lo acquisiscono come primo linguaggio e quindi hanno un’eredità di conoscenze che è una bella zavorra da portarsi dietro. Avere qualcosa di familiare a cui aggrapparsi mentre si svecchiano le proprie tecniche e si comincia a pensare in a Javascript way non può essere che un aiuto.

Ed ora non mi resta che augurarvi buona lettura

Continua a leggere “Ereditarietà classica in Javascript”

Javascript: Il piccolo programmatore Javascript

Una traduzione “di servizio” che completa, nel senso che traduce uno dei link che si incontrano, il primo a voler essere pignoli, nella traduzione precedente.

Il tutto in attesa di arrivare alla traduzione di un pezzo sull’ereditarietà in javascript che è una piccola perla di rara concisione e chiarezza (ovviamente a mio parere).

Al solito i commenti sono aperti d in attesa di suggerimenti e correzioni.

Buona lettura

Continua a leggere “Javascript: Il piccolo programmatore Javascript”

Javascript: Il linguaggio di programmazione più incompreso del mondo

Crockford mantiene le specifiche di JSON. Crockford da parte del comitato ECMA per la standardizzazione di Javascript. Crockford ha scritto una serie di post su javascript che mi sento di condividere e che sono stati tradotti in diverse lingue tra cui il cinese ed il turco (con buona pace dei leghisti) ma non in italiano. Google non mi ha indirizzato ad altre traduzioni del pezzo che troverete di seguito. Non mi resta che ringraziare Douglas Crockford per la pronta e positiva risposta alla mia proposta di traduzione.
Continua a leggere “Javascript: Il linguaggio di programmazione più incompreso del mondo”

Libri da scaricare: javascript (wikibook)

Il libro di questa settimana si occupa di javascript. Bisognerà aspettare un po’ per la copertina ma non preoccupatevi, tra qualche ora ne disegnerò una o ridurrò quella attuale.

Torniamo al libro, si tratta di una delle migliori ebook gratuiti disponibili in italiano sul linguaggio che fa da motore della stragrande maggioranza delle pagine web che visitate ogni giorno. Se c’è qualcuno che conosce qualcosa di meglio non ha altro da fare che farsi avanti e sarò contentissimo di ospitare la segnalazione in questa rubrica.

Il libro, devo costringermi a parlare del libro, è una buona guida introduttiva al linguaggio. Ottima per il principiante, inutile per chi ha già un’infarinatura di javascript e volesse fare il grande salto e sfruttare tutte le potenzialità del linguaggio.Non fraintendetemi. Si tratta di un buon libro, che sarebbe stato formidabile qualche anno fa, ma che oggi mostra qualche limitazione.Non che sia scritto male, non lo avrei segnalato, ma penso gli manchi una seconda parte.

Gli oggetti, che sono la parte peculiare del linguaggio sono semplicemente accennati mentre meriterebbero ben altra attenzione. Sui prototipi, altro mattone fondante del linguaggio, sicuramente non alla portata di un programmatore con poca esperienza, non si spendono che due righe e gli scope, fonte di continui mal di testa anche, e soprattutto, per i neofiti, non sono neanche mai nominati.

Detto questo: se avete idea di quello che ho citato nel paragrafo qui sopra non scomodatevi a scaricare il file, a meno di curiosità o per regalarlo a qualcuno, nel caso meglio inoltrare il link (non sono sicuro della licenza) agli interessati.

Se quello che ho scritto invece vi sembra sanscrito allora il libro potrebbe fare al caso vostro e merita un’occhiata più che approfondita.

http://it.wikibooks.org/wiki/JavaScript

Se data un’occhiata alla homepage dell’ebook, ci trovate la versione html che magari è più aggiornata di quella in pdf, non è immediato trovare il link diretto alla versione pdf. E quindi lo riporto qui di seguito

http://upload.wikimedia.org/wikibooks/it/d/d0/JavaScript.pdf