Alle Scoperta di Elixir – 02 – 5 Motivi per Scegliere Elixir

This entry is part 2 of 2 in the series Alla Scoperta di Elixir

La domanda è legittima: perché mai, tra tutte le tecnologie/linguaggi/framework che ci sono in giro, ho scelto proprio Elixir?

Una scintilla che fa scattare qualcosa c’è sempre: in questo caso è stato il mio collega Claudio, che mi ha spinto a guardare questo linguaggio con curiosità. Ci è riuscito alla grande, poi però mi sono spinto verso un’altra riflessione.

Supponiamo che io non abbia colleghi intelligenti e preparati che mi spronino a guardare le cose giuste. Scopro casualmente Elixir, ma non so ancora cosa c’è sotto di preciso. Perché diamine dovrei esserne interessato?

Così ho fatto una ricerca semplicissima. Query basilare: “why use Elixir?

Ecco cosa ho scoperto.

I Miei 5 Motivi per Scegliere Elixir

Questione di Origini

Sono uno sviluppatore. Amo scoprire nuove tecnologie, nuove metodologie. In un certo senso il mio lavoro non è scrivere codice, ma studiare costantemente per avere a disposizione nuovi strumenti per risolvere problemi.

Vengo dal Web, il mio stack di riferimento è PHP / JS. L’OOP non manca. Un sacco di sviluppatori Elixir lo dicono chiaramente: per imparare ad usare Elixir devi ignorare tutto quello che conoscevi prima, perché entri in un altro mondo in cui ci sono altre “regole”.

Si entra nel mondo della programmazione funzionale, quindi un sacco di cose cambiano. Tra l’altro, non penso ci sia bisogno di specificare che un developer che conosce più paradigmi può sicuramente risolvere problemi in modi migliori. The more you know…

Non male come inizio, vero?

Old Traditions, New Methods

Un’altra cosa molto affascinante che mi ha colpito particolarmente è la natura di Elixir: hanno preso un linguaggio come Erlang, creato ad-hoc per ambienti di altissimo livello, e lo hanno reso più comprensibile e meno verboso.

Insomma, una piccola rivoluzione sulle spalle di un gigante: Elixir infatti gira sulla Erlang VM, che è ormai nata più di 30 anni fa! Con tutti i vantaggi che ne derivano, se consideriamo quanto può essere stabile e battle tested una VM su cui migliaia di persone lavorano da decenni.

Il Fascino dell’All in One

Nel suo articolo Why Elixir Language has Great Potential, Adrian Philipp gioca una carta molto interessante: la VM di Erlang è versatile e si presta ad un sacco di usi diversi.

Quanto diversi? Guarda questa tabella…

Forse, in qualche caso, qualche “estremizzazione” c’è… certo non è male pensare di poter gestire (quasi) un intero stack con una singola tecnologia, vero?

Se lavori con un linguaggio come PHP dovresti saperlo bene…

Processi e Messaggi

Un’altra cosa che cattura l’attenzione, non appena inizi a scendere nella tana del bianconiglio, è il concetto di processo. Anche qui tocca disimparare quello che già sai: un processo della Erlang VM è qualcosa di totalmente diverso rispetto a quelli che già conosci.

I processi hanno infatti una struttura molto più leggera ed ogni VM può reggere senza nessun problema, letteralmente, milioni di processi contemporaneamente.

Tutto bellissimo, ma cosa significa all’atto pratico?

L’articolo di Philipp riportato più in alto riporta, a sua volta, ad un interessante articolo sul sito di Phoenix, il Web Framework di Elixir che racconta come nei loro test sono arrivati a gestire, senza problemi, due milioni di connessioni websocket contemporaneamente con un solo (potente) server.

Il che ci porta all’ultimo punto…

Velocità

La velocità di Elixir è qualcosa di assurdo. Qualche tempo fa ho provato ad installare Elixir + Phoenix in locale, per giocarci un po’ e capirne di più. Il primo test mi ha lasciato di stucco: le risposte del server erano tutte nell’ordine inferiore al millisecondo.

Ingenuamente ho pensato fosse un bug o qualche problema della mia (modesta) macchina. Invece no: dopo aver riavviato tutto mi sono ritrovato a guardare lo stesso identico risultato.

Centosessantuno. Microsecondi.

A questo punto… ho la tua attenzione, vero?

Series Navigation<< Alla Scoperta di Elixir – 01 – Si Parte!

Sliding Sidebar

Who?

Francesco, born 1990 in Vasto, Italy.

A developer who likes to study new languages, frameworks and techniques. A curious who likes to stumble upon new interesting things and an enthusiast.

Actually:

  • Developer @ AdEspresso
  • Author (details here)
  • Founder @ Laravel-Italia
  • Author @ Sitepoint

Both english/italian posting here.

Categories