Clojurians
#clojure-italy
<
2018-03-23
>

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

manuel06:03:25

buondì. Chas Emerick illuminato sulla via di Damasco? :smile: (@nilrecurring) https://www.reddit.com/r/haskell/comments/867dq2/haskell_has_grown_and_changed_in_amazing_ways/

reborg08:03:41

reddit sembra molto meglio di quello che mi ricordavo in passato, quando ho deciso di non leggerne piu'

manuel08:03:57

@reborg per quanto mi riguarda, dipende. /r/emacs è quasi illegibile, 9 volte su 10 le discussioni deragliano e perdo la voglia.

reborg08:03:30

oltre a r/clojure ed r/haskell che mi consigliate?

nilrecurring09:03:10

Io seguo anche r/rust, molto positivo

nilrecurring09:03:45

@manuel l’illuminazione si spande :smile:

manuel09:03:51

r/programming ogni tanto ha qualcosa di interessante

nilrecurring09:03:15

Penso che sia stato fondamentale il talk di Rich in questo senso, mi sembra che le community Clojure e Haskell si siano riavvicinate

nilrecurring09:03:49

Ovviamente anche l’introduzione di spec

reborg09:03:50

wow, pensavo si fossero allontanate dopo l'ultimo keynote

nilrecurring09:03:36

Potrebbe essere la mia bolla, ma vedo molti più crossover (e io stesso sto facendo circa 50%-50%)

reborg09:03:08

meglio cosi'! :slightly_smiling_face:

nilrecurring09:03:19

E portando la discussione più sul filosofico: penso ci siano due risposte comuni al problema del "refactoring su grandi codebases con dynamic typing è impossibile": 1. Uncle Bob way "dobbiamo educare i programmatori" 2. Static typing "perché devo faticare su un lavoro che il compilatore dovrebbe fare per me"

nilrecurring09:03:41

Mi sembra che stiamo finalmente transizionando dalla 1 alla 2 (o ancora, potrebbe essere la mia bolla)

skuro09:03:16

personalmente penso che spec, per quanto non la risposta finale, sia piu' vicino al trade off ideale tra tooling e flessibilita' che non haskell

reborg09:03:09

3. tooling per refactoring con dynamic typing e' possibile ma non (almeno con Clojure) non ci siamo

manuel09:03:46

@skuro ti va di elaborare? Sono ancora un novellino di spec :slightly_smiling_face:

nilrecurring10:03:25

@skuro quando hai usato Haskell l’ultima volta? Fare “speccing” è 10 volte meno verboso che con spec, e gli errori del compilatore sono effettivamente leggibili (cosa che non succede in spec, non ancora perlomeno)

skuro10:03:07

io sono un niubbo completo di haskell

skuro10:03:19

ho giusto un'infarinatura di alto livello

skuro10:03:44

ma come stile di programmazione, conosco lo static typing

skuro10:03:19

gli errori del compilatore che conosco io di haskell sono un poco meno esoterici di spec, ma magari sono io

skuro10:03:42

e compilatore != repl dal punto di vista di flow nella programmazione

skuro10:03:26

quest'ultimo punto e' per me piu' rilevante per quanto riguarda i trade off

nilrecurring10:03:20

Come il nostro Chas Emerick si è accorto, Haskell è evoluto parecchio ultimamente

nilrecurring10:03:04

Personalmente (e per quello che ho visto fare ad altri) uso la REPL in Haskell almeno quanto la uso in clojure, non è certamente la stessa esperienza di “static typing” che si ha in Java per dire

nilrecurring10:03:16

(con il vantaggio addizionale che se voglio sapere cosa mi ritorna una funzione anzichè provarla con un paio di casi, posso chiedere il tipo alla repl con :t myFunction)

richiardiandrea16:03:33

E questo è buono

nilrecurring21:03:19

È ottimo. E se il tipo che ti viene printato non ti dice nulla, si va su Hackage perchè lì puoi cliccare sui Tipi e ti porta alla definizione, dove sono anche raccolte le interfacce (che si chiamano TypeClass) che il tipo implementa

richiardiandrea21:03:40

Oh tipo ! :smile: :smiley: mi manca un po' l'Italia tamarra ahah

nilrecurring22:03:12

Ahah, idem :smile:

nilrecurring10:03:37

Gli errori del compilatore non sono il migliore dei mondi possibili (altri linguaggi come Elm, Rust e Dhall si stanno avvicinando all’ottimo), e richiedono un po’ di abitudine

nilrecurring10:03:01

Ma li trovo molto meno orribili di spec, che a volte mi suscita un po’ di table-flip-feeling

reborg11:03:22

Ho avuto un'esperienza Haskell di circa 8 mesi 4 anni fa. Il ricordo non gradevole che ho riguarda il processo di sviluppo che forza a pensare ai tipi prima di tutto (modello carta penna calma e gesso). Il processo poi diventa iterativo, ogni volta che l'astrazione dei tipi richiede estensione/evoluzione. A me sembra che la ragione principale per il type-first sia piu' che altro per ammiccarsi il compilatore. Non so poi come si arriva a pensare che il compilatore rimuove lavoro per me :slightly_smiling_face: Magari ho avuto cattivi mentors, ma il compilatore per ora lo vivo come distrazione, esattamente come il trattamento forzato dei side-effects.

mdallastella11:03:53

Io sono in linea con i pensieri di @reborg e @skuro

mdallastella11:03:13

anche se la mia esperienza con haskell è zero

mdallastella11:03:44

Cioè, ho letto solo YAHT

nilrecurring11:03:15

@reborg prima di arrivare al progetto attuale, l’ultima volta che avevo provato Haskell è stato 3 anni fa, e appunto l’esperienza non era il massimo. Ma nel frattempo è successo CommercialHaskell, ed è un altro mondo, sia come tooling che come maturità dell’ecosistema

nilrecurring11:03:17

E sono d’accordo anche sul fatto del mentore giusto: per come mi hanno abituato i tipi sono lì per definire le aspettative giuste più che per modellare il business domain

reborg11:03:23

Piu' che contento di lavorare ancora con Haskell in futuro. Passano anni, l'esperienza cambia cosi' pure l'atteggiamento verso certe cose.

manuel12:03:07

io per ora sono felice con Haskell. Ecco, boutade da troll. :smile:

manuel12:03:15

argomento meglio: non posso fare paragoni seri con Clojure finché non tiro su un progetto di piccole-medie dimensione (i.e. web app). Solo così posso fare un confronto ragionato. Però posso dire che Emacs+Intero non ha niente da invidiare a Emacs+CIDER per ora.

manuel12:03:53

coi tipi (per ora) mi trovo, e il REPL-driven development è soddisfacente come con Clojure.

richiardiandrea16:03:27

Questa per me è la cosa più importante di tutte ...se è come dici mi sa che ci inizio a giocare

nilrecurring21:03:21

Consigliato :slightly_smiling_face:

nilrecurring21:03:48

Dai un’occhio anche a PureScript, è un po’ il ClojureScript di Haskell

richiardiandrea21:03:30

Avevo dato un occhiata, ma mi piacerebbe produrre asm per una volta

manuel09:03:13

Intero merita, sì sì. C'è anche Dante, ma non l'ho mai provato.

manuel12:03:13

ma ripeto: niente paragoni seri senza un po' più di esperienza solida con Haskell sulle spalle.

gabriele.carrettoni14:03:08

qualcuno sa come abilitare la code completion inf-clojure? mi sa mi sto perdendo qualcosa

richiardiandrea15:03:59

@gabriele.carrettoni ti ho risposto in #inf-clojure. Ci sto lavorando da un po' e per ora è molto manuale

richiardiandrea16:03:33

Spero di avere un po' di tempo questo weekend

gabriele.carrettoni16:03:43

@richiardiandrea grazie per la risposta, aspetterò l'update allora.

richiardiandrea16:03:36

Purtroppo per ora pochi contribuiscono ad inf-clojure, sottovalutato :smiley: