lunedì 2 gennaio 2012

2011 - L'anno che è stato

La prima cosa che mi colpisce come mi metto a scrivere un resoconto personale di 2011 come è stato è come è successo infuso alcune delle trasformazioni nei miei lavori regolarmente mondo della programmazione. E 'stato diverso e sto iniziando a godere del rinnovato vigore in settori come i sistemi di tipo, Machine Learning, ecc Algebra Durante tutto l'anno che ho usato per lo più una sola lingua - Scala per la programmazione con alcune occasionali scorribande in Haskell e Octave per la Stanford Macchina corso di apprendimento. Ma non ho rimpianti nel non essere più polyglotic, perché ho ​​potuto trovare più tempo per scavare in profondità in alcune delle zone più fondamentali come teoria delle categorie algebra, e sistemi di tipo. preferite libri di lettura / iniziato a leggere

Tipi e Linguaggi di programmazione da Benjamin Pierce: sicuramente un libro di Knuth statura nella teoria dei sistemi tipo nei linguaggi di programmazione. E 'scritto con una visione molto pragmatica e contiene tutti i dettagli di implementazione necessari per completare la teoria di accompagnamento. Non ho ancora finito di leggere il libro. Io sono nel capitolo 20 e 21 facendo tipi ricorsivi, che sembrano essere uno dei trattamenti più esauriente del soggetto che abbia mai visto. Se e quando riesco a finire di leggere questo libro, il mio prossimo piano per la teoria dei linguaggi di programmazione è Design Concepts nei linguaggi di programmazione .
  • Matematica concettuale di F. William Lawvere e Stephen H. Schanuel - ho iniziato a leggere questo libro da raccomandazione da Paolo Snively come un precursore di Teoria Categoria Benjamin Pierce per gli informatici.Questo è un eccellente introduzione alla teoria Categoria e contiene un trattamento dettagliato delle idee unificanti della mathemetics, teoria degli insiemi e la teoria delle categorie.
  • Scopri Sei Haskell per Buono Ottimo da Miran Lipovaca - forse la lettura più raccomandati e aggiornato Haskell in forma stampata. I capitoli su Funtori applicative, Monadi e cerniere sono tratti reali.
  • La prova di lingua e logica da Jon Barwise e John Etchemendy - Inizia con una grande rassegna di logica e continua a discutere prove di solidità e
  • Un tributo ad un Mathemagician da Cipra, Demaine, Demaine e Rodgers - Un altro libro di una serie scritta da quei matematici illustri e puzzle che sono stati ispirati da Martin Gardner. E 'una affascinante collezione di saggi sulla enigmi matematici - ottenerlo se si ha piegato che della mente.
Esplorare nuove idee

  • Teoria categoria - Spesso discusso sulla sua utilità nel mondo pratico, la teoria di categoria che si dà la conoscenza di base del linguaggio di programmazione di progettazione, la semantica e la teoria del dominio. Ho fatto un sacco di letture sulla teoria Categoria quest'anno e questo ha portato a una comprensione più concreti dei sistemi di tipo pure. Spero di continuare ancora nel 2012.
  • Algebra - Qual è l'algebra dietro il termine Tipi algebrica dei dati? Ho preso qualche appunto, come ho iniziato a capire l'algebra dei tipi di dati ricorsiva. Dai un'occhiata alle mie note su GitHub .
  • Machine Learning - ho preso il corso online di Stanford per l'apprendimento della macchina. E 'stata una rivelazione per me trovare la pervasività del soggetto nel contesto applicativo di oggi. Anche il corso mi ha incoraggiato a guardare più in matematica che governano tutte le teorie che implementa ML.
Alcuni articoli grande letto

  • Teoremi gratis! da Philip Wadler
  • Transformers monade e Interpreti modulare da Sheng Liang, Paolo Hudak e Mark Jones
  • Discussioni pigro Stato funzionale da John Launchbury e Simon Peyton Jones
  • Un Domain-Specific Language per la manipolazione di dati binari in Dylan da Hannes Mehnert e Andreas Bogk
  • RRB-Alberi: efficiente Vettori immutabili da Phil Bagwell e Tiark Rompf
  • Programmazione categorico con i tipi induttivi e Coinductive di Varmo Vene
  • Programmazione funzionale con polimorfismo e sovraccarico di ordine superiore da Mark P Jones
Programmazione e Open Source

ancora una volta l'anno passato da dove ho fatto il 95% della programmazione a Scala. Scala ha in qualche modo colpito il punto debole di mio gradimento - OO, FP, JVM, sinteticità, ho tutti in Scala. Tuttavia, detto questo io ho tutte le intenzioni oneste di rinnovare tutta la mia amicizia con Haskell e Clojure nel 2012. Ho fatto un po 'di Haskell nel 2010 e ancora raccogliendo i ebnefits di essere un programmatore migliore Scala piggybacking sui miei pensieri Haskell. So Haskell è più puro, un pezzo di Haskell codice può essere poesia. Ma la pragmatica di essere sulla JVM Scala rende più attraente per la mia vita professionale. Due dei miei progetti open source sjson e scala-riscoperto sono ancora attivi. Ricevo richieste di tirare su base regolare e, naturalmente, un bel paio di richieste di nuove funzioni e bug segnalati su Github.Ho intenzione di fare alcune importanti aggiornamenti di sjson soprattutto quando la riflessione diventa più accessibile a Scala 2.10. Anche in linea sono previsti alcuni miglioramenti verso la composizione funtore base JSON in sjson, che ho intenzione di prendere molto presto. Ho provato ad aggiornare scala-riscoperto per tenerlo in sincronia con i vari rilasci di ridi. Grazie a tutti per aver provato sjson e scala-ridi. Di programmazione open source è divertente e mi considero fortunata ad aver l'opportunità di restituire qualcosa alla comunità, che mi ha dato tanto nel corso degli anni. Qualsiasi menzione della mia attività di programmazione nel 2011 sarebbe incompleta senza menzionare scalaz . Io ora lo uso in quasi tutti i progetti. E 'davvero una grande creazione di Tony, Runar, Jason, Paul e gli altri membri del team. Utilizzando scalaz, ho imparato molto sulla programmazione funzionale e il pensiero funzionale. Un'altra libreria che ho utilizzato regolarmente sin dal suo inizio è Akka . Messaggistica asincrona è la porta verso la scrittura di applicazioni scalabili e Akka fornisce la serie di batterie in quella direzione. È possibile ottenere la messaggistica, flussi di dati, agenti, STM e per tutto un bel set di API, sia in Java e Scala. Penso Akka è ben pronta a essere la killer application per spingere alla Scala nella corrente principale. Alcune pubblicazioni Nel 2011 ho ottenuto i seguenti due articoli pubblicati, uno di loro come parte del team stimato di Giustino, Kresten e Steve. Grazie ragazzi ..

  • Debasish Ghosh, Justin Sheehy, Kresten Krab Thorup e Steve Vinoski, "Programming Language impatto sullo sviluppo di sistemi distribuiti", FOME'11: Futuro Middleware a Middleware'2011.
  • Debasish Ghosh, "DSL per i profani," Communications of the ACM, vol. 54, no. 7, pp 44-50, luglio 2011
Alcune esperienze bello

ho frequentato 2 conferenze internazionali nel 2011 - QCon Londra e PhillyETE. Ho anche parlato a PhillyETE il Domain Specific Languages ​​. Entrambe le conferenze sono stati sorprendenti e ho avuto modo di conoscere di persona molti dei volti che vedo e parlare con regolarità su Twitter e Google +. Tra l'altro ho anche parlato a PhillyETE 2012 in programma che si terrà nel mese di aprile. mio libro DSL In Azione è uscito a fine dicembre 2010. 2011 è stato l'anno in cui ho avuto il primo controllo royalty da Manning. La scrittura del libro è stata un'esperienza incredibile e per arrivare a sentire buone parole da gente che usa il libro fornisce un ulteriore livello di soddisfazione. Grazie Manning per avermi dato l'opportunità.Guardando avanti al 2012 io non sono uno di risoluzione, ma ecco una lista dei desideri verso una maggiore geekery nel 2012 ..
  • Programma più in Haskell e Clojure
  • Blog più (E 'stato patetico nel 2011)
  • Fare di più per la matematica
  • Partecipare a più classi on line (attualmente registrati per l'elaborazione del linguaggio naturale, Algoritmi e probabilistica modellazione grafica a Stanford)
  • Cercare di fare più conferenze (attualmente registrato per giorni PhillyETE e Scala)
  • Per saperne di più algebra, teoria dei tipi e teoria delle categorie
  • Inizia con TAOCP Vol. 4A
  • Imparare Factor

Nessun commento:

Posta un commento

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