giovedì 15 settembre 2011

Douglas Crockford DZone risposte alle domande su JavaScript


CoffeeScript, node.js, ECMAScript, e anche di Google il nuovo Duel lingua usurpatore sono stati gli argomenti di discussione la scorsa settimana quando ho avuto l'occasione unica per incontrare uno dei maggiori luminari del mondo di JavaScript mentre parlava alla North Carolina State University. L'oratore era Douglas Crockford, e il suo discorso è stato chiamato "Programmazione e il tuo cervello." Per quelli di voi che non sanno di Crockford, ha una lunga lista di successi in diversi settori, ma le sue più recenti includono diventando il capo JavaScript Architetto a Yahoo, essere l'autore del libro definitivi JavaScript: "JavaScript: le parti buone", e scoprire JSON.

Programmazione e il tuo cervello


Il discorso è stato ispirato dal libro "The Science of Fear", che hypothosizes che il cervello, in termini semplici, può essere diviso in due parti: il "capo" e il "Gut". Il capo è dove la nostra logica e razionale analisi da cui proviene, e la Gut è presumibilmente evoluta dal nostro 'lotta o fuga' di risposta, il che significa che è molto veloce, e spesso possono sopraffare la nostra testa più razionale. Ecco come, per esempio, la pubblicità può tendere a lavorare contro il nostro giudizio migliore. Che cosa ha a che fare con la programmazione? Beh, se si guarda la storia di come JavaScript è stato creato, si comincia a capire. Brendan Eich, mentre lavorava a Netscape, scrisse JavaScript in soli 10 giorni al fine di soddisfare le esigenze del business. Mentre chiunque abbia usato JavaScript sa che questo rapido sviluppo indubbiamente portato ad un sacco di problemi brutto, ma ha anche portato ad alcune grandi intuizioni.

Come si programma con l'aiuto del nostro "gut"


Crockford ritiene che parte "Gut" del nostro cervello che ci permette non solo di rendere possibile la programmazione, ma anche a fare grandi progressi della conoscenza. Lingua Eich aveva una montagna di problemi, ma ritiene anche che Crockford JavaScript è stato per molti versi un linguaggio più evoluto di quello che avessi mai visto in programmazione.Qui erano alcune delle cose che crede Crockford ha mantenuto JavaScript sul trono come la lingua del browser:
  1. Le funzioni sono oggetti di prima classe in JavaScript
  2. Portò lambda nella corrente principale della programmazione
  3. Classi diventato inutile in JavaScript

"I programmi sono uno dei più (se non il più ) cose complesse che rendono gli esseri umani ", ha detto Crockford. "I programmi devono essere perfette, ma gli umani non sono bravi a perfetto". Crockford ritiene che se gli esseri umani non ha avuto "Gut", che non avevano mai release del software, perché il software (insieme con le lingue che si è costruita su) non può mai essere perfetto. 

Suggerimenti per JavaScript e qualsiasi programmazione


Da qui, il discorso si trasferì in temi specifici con JavaScript, e come ridurre al minimo il loro effetto sui programmi:
  • In JavaScript, ci sono meno errori quando si mette il parentesi graffe sulla destra. Per le altre lingue, che si preoccupa! Basta essere coerenti! (Un altro tema chiave del discorso)
  • Usare sempre ===
  • Evitare multi-linea stringhe letterali
  • Le variabili globali sono il male

JSLint


Crockford ha anche incoraggiato i programmatori ad utilizzare uno strumento chiamato ha creato JSLint , che mette in risalto le sezioni del codice JavaScript che potrebbe essere problematico o buggy. Questo aiuta a mantenere il codice mantenibile a lungo termine e la mantiene facile da leggere. E 'uno strumento umiliante secondo Crockford. In realtà ha usato JSLint sul codice JSLint e si avvicinò con gli errori, quindi il suo utile anche per gli esperti come Crockford.  "E 'vi farà piangere", Crockford ha detto in riferimento alla JSLint. ". Ho letteralmente visto gente piangere dopo averlo usato" In sintesi, questo è un tema importante che vedete nel famoso libro Crockford: "JavaScript: le parti buone". L'obiettivo è quello di utilizzare le parti migliori di un linguaggio, evitare la confusione per coloro che dovranno leggere il codice, e in generale fare solo cose che si muovono le probabilità a tuo favore per la costruzione di un pozzo in esecuzione del programma.





Douglas Crockford: le parti buone

Ora per la parte in cui ha risposto ad alcune domande del pubblico, e la mia. La grande domanda su un sacco di mente della gente è stato: Cosa ne pensi di lingue come CoffeeScript e ClojureScript quella striscia via le parti cattive di JavaScript e quindi compilare a JS ? risposta Crockford è stato mixato - gli piace decisamente molto. E 'molto elegante e vuole che JavaScript è stato più che come in molti modi. Infatti, il comitato direttivo ECMAScript è in realtà cercando di rendere più simile a JavaScript CoffeeScript . Tuttavia, in linea con il tema del discorso, Crockford ha detto che come tutte le lingue, ci sono parti buone e parti cattive di CoffeeScript. Al momento, la lingua non è stabile e tutto il codice potrebbe diventare inutile se un altro importante cambiamento passa attraverso. Così al momento non raccomanda CoffeeScript per la produzione. successiva, abbiamo ottenuto il suo parere su node.js - che pensa è "brillante". Ha detto che Yahoo YUI 3 biblioteca ora gira su node.js. Ti dà molte più opzioni su dove eseguire le cose (server o client), in modo da avere le migliori prestazioni, che si tratti di Chrome 13 o IE7.  Crockford dice anche che gli piacerebbe vedere una maggiore cooperazione e integrazione tra gli sforzi del W3C e dei comitati direttivi ECMA . Unfortnunately, le due parti hanno avuto un incontro nella loro storia e non è andata bene. Il comitato ECMA è pronto, ma il W3C non vede la necessità di sincronizzare.  Crockford ritiene che il browser è un modello orribile, soprattutto a causa del W3C . Qui erano le domande da me che ha risposto:
ECMAScript.next / prossima versione di JavaScript

DZone: Siamo nelle fasi iniziali di una nuova revisione per ECMAScript chiamato ECMAScript.next. Qual è il tuo coinvolgimento in questa revisione sono in questa revisione standard e quali sono alcune delle idee che sono entusiasti di te? Quali sono le ultime che avete sentito parlare il suo progresso? 


Crockford: io rappresento Inizio a ECMA TC39, il comitato che è l'amministratore dello standard ECMAScript. Ci sono un sacco di cose interessanti proposte, ma io non sono certo quello che finirà dentro la prossima edizione. spero che conterrà un sistema modulare che permetterà di unità di codice per avere interfacce bene. Attualmente, tutte le variabili globali avere gettato insieme, il che è male per affidabilità e sicurezza. Sono anche impaziente di avere chiamate coda corretta. Questo consentirà l'uso dei modelli di programmazione in JavaScript stupefacente come stile di continuazione Passing.

Nuovo punto di riferimento Crockford JS e IE10


DZone: Penso che sia stato in aprile quando si ha pubblicato un nuovo punto di riferimento JS (JSMeter?). Potrebbe dirmi un po 'il punto di riferimento (forse rispetto al SunSpider in carica) e perché la IE10 anteprima finito per essere il più veloce ? Microsoft è finalmente sulla strada giusta con IE? 

Crockford: La maggior parte dei benchmark JavaScript non prevedere le prestazioni reali del programma. Ho creato il punto di riferimento JSLint misurando il tempo necessario JSLint di analizzare se stesso. V8 è stato inizialmente più lento in questo benchmark, ma hanno rapidamente corretto. JSLint aiutato mostrano che messa a punto di riferimento non necessariamente aiutare le prestazioni reali. Sono impressionato da quello che Microsoft ha fatto con IE10. Spero che sostituisce rapidamente tutti i precedenti edizioni terribile di IE.

Nuvola / Web IDE 


DZone: Come trovi "Cloud" o IDE web-based, come Skywriter di Mozilla (ex Bespin?) 
Crockford:
 JavaScript ha ottenuto abbastanza veloce che può essere utilizzato per sostituire le applicazioni tradizionali.Ciò significa che l'insieme di applicazioni che possono essere consegnata dal web è ancora in espansione .

La caratteristica più interessante della cosiddetta collezione è HTML5 Canvas, che ci permette di abbandonare completamente HTML, evitando il DOM e costruire i nostri display proprio fuori di pixel. Questo dimostra come misfeatured il DOM è. Il DOM deve essere sostituito. E 'lento, mal specificato, scomodo e insicuro.

Duel in sostituzione di JavaScript?


DZone: Infine, cosa pensa della notizia di Google il nuovo linguaggio "Duel" per sostituire JS ? 

Crockford: Google non ha condiviso le informazioni con me. Dei bit poco che hanno trapelate, alcuni dei quali sembra buono. Alcuni di essi sembra molto, molto male. E 'troppo presto per trarre conclusioni. 
__ Nel complesso, un gran parlare e alcune opinioni interessanti da uno dei leader mondiali nella programmazione JavaScript.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.