altre destinazioni

ultimi post

ultimi commenti

tag principali

categorie

archivi

powered by

  • WPFrontman + WP

elsewhere

friends

copyright

  • © 2004-2011
    Ludovico Magnocavallo
    tutti i diritti riservati

Erlang e i processi umani

30 agosto 2006

Dallla discussione virtuale di ieri (qui, qui e qui) è scaturito un link al bellissimo Concurrency is easy in cui Joe Armstrong sviluppa un’analogia tra l’architettura per processi e messaggi di Erlang e la vita reale. Una lettura illuminante per chi sviluppa, e decisamente consigliata anche a chi si occupa di altro.

Se non ne avete mai sentito parlare, Erlang è un linguaggio di programmazione nato in casa Ericsson verso la metà degli anni ’80, con caratteristiche specializzate per lo sviluppo di applicazioni e logiche di controllo per apparati di telecomunicazione: il funzionamento anche in caso di errori software o hardware, la possibilità di distribuire l’elaborazione su più sistemi e di svolgere processi in parallelo in maniera leggera ed efficiente. In Erlang la Ericsson ha realizzato i software di controllo di alcuni dei suoi apparati telecom più avanzati e di successo (centralini, switch ATM, ecc.) e verso la fine degli anni ’90 ha deciso di rilasciarlo con licenza Open Source.

Erlang è utilizzato, oltre che per applicazioni telecom, in tutti quei casi dove sono necessaria una scalabilità orizzontale a bassissimo costo, performance (Soprattutto di rete) eccezionali, e un’affidabilità spinta. Per avere un’idea di cosa è possibile in Erlang, date un’occhiata a questo benchmark vecchiotto ma sempre interessante tra Yaws (un server HTTP scritto, appunto, in Erlang) e Apache. Se volete capirne un po’ di più, trovate alcuni link a libri e documentazione sulla mia tag di del.icio.us.

Ci sto facendo un pensierino

15 febbraio 2006

Scorrendo i post di franklinmint.fm oggi mi sono imbattuto in un bell’esempio di Distributed Computing: un bilanciatore TCP realizzato in Erlang, il linguaggio realizzato dalla Ericsson per gli apparati di telecomunicazione e particolarmente adatto per applicazioni distribuite e in soft realtime (quanto siete disposti ad aspettare il tut-tut dopo aver alzato la cornetta del telefono?).

Seguendo il trail partito dal post di franklinmint ho letto di Mnesia, scaricato Making reliable distributed systems in the presence of software errors, salvato su del.icio.us un passaggio della bella intervista a Phil Smoot (Hotmail), aggiunto all’aggregatore il blog di Steve Jenson (Blogger/Google).

Ora sto pensando se iniziare a studiare Erlang, che ha un sacco di punti di contatto con alcune delle cose che si fanno qui nel nuovo lavoro, ma ovviamente essendo una tecnologia nuova e (almeno qui in Italia) sconosciuta ha poche probabilità di essere adottata, pur con un’azienda solida come Ericsson alle spalle a garantire supporto tecnico e update. E un po’ mi dispiace di non aver potuto frequentare il master in Distributing Computing di Tanenbaum, cui ero stato ammesso l’anno scorso…