Fork me on GitHub
#clojure-italy
<
2021-03-11
>
reborg11:03:51

Notavo, c’e’ una bella esplosione di lavori in CLJ… ho perso il conto.

Lu12:03:51

Sarà un mese e mezzo che dura questa esplosione :rolling_on_the_floor_laughing:

Andrea Imparato13:03:14

Noi stiamo cercando se qualcuno conosce qualche clojurista in Germania ;)

Carlo16:03:17

@reborg infatti io ho cominciato a studiare Clojure proprio 2 mesi fa, e mi sono stupito di quanto movimento ci fosse rispetto al mercato dell'Haskell (che pure ha preso piede negli ultimi 2 anni, ma meno di #jobs e #remote-jobs in questo periodo)

Carlo16:03:23

come mai succede secondo voi?

reborg17:03:42

mmmh, posso azzardare qualche ipotesi... si intravede la fine del lockdown, i budget per il 2021 sono stati allocati, c’e’ voglia di espansione?

Andrea Imparato17:03:17

c’e’ piu’ voglia di parentesi 😄

Carlo17:03:17

mi chiedevo un'altra cosa sul mondo del clojure: se ci fosse un tool che fa analisi del codice - diciamo basato su spec e generative testing, quindi idiomatico per il mondo del clojure, e quindi vi aiuta a trovare piu' facilmente gli errori che derivano da un refactoring, sareste disposti a pagarlo, o e' una cosa che non vi sembra utile?

reborg21:03:07

In linea di principio, se il requisito capita una volta ogni tanto, forse si’. Ma chi sceglie dynamic typing lo fa anche per ragioni di vantaggio competitivo. Quindi consiglierei a chi ha quel requisito di usare OCaml o Haskell. Comunque mi ricorda di https://github.com/arohner/spectrum

Carlo21:03:04

grazie @reborg, ci tengo a precisare che non immagino un type system tipo clojure.typed, credo che la communita' clojure si sia gia' espressa. Si diciamo che immagino qualcosa forse ancora piu' clojuresco di spectrum (nel senso di best effort, immaginatelo piu' come un linter piu' potente che non un tool di analisi statica). Ma quindi non senti comunque il desiderio di questa cosa, se ho capito bene

reborg09:03:11

No, mi sono adattato, piu’ disciplina specialmente per progetti piu’ grossi, ed uso di spec-related libs per ogni data structure che viene scambiata tra i vari componenti dell’applicazione.

reborg09:03:19

Un code-smell che ho imparato a riconoscere e’ l’abuso di get-in, update-in & friends. Non e’ sufficiente avere spec per specificare i dati di scambio, ci vuole anche un minimo di incapsulazione (cioe’ un API) in modo che quei dettagli (la struttura interna dei dati, nome delle chiavi, etc) non se ne vada in giro nell’applicazione (o esternamente)

reborg09:03:03

Con static typing in haskell, java, etc. questa disciplina non serve, perche’ quei dati diventano classi e ci pensa il compilatore. Pero’ di devi anche sorbire tutta la cerimonia del caso.

reborg09:03:48

Non riuscirei ad immaginarmi di lavorare con serializzazione json come ho visto fare in Haskell, mi viene il latte alle ginocchia al solo pensiero