clojure-italy

🇮🇹
reborg 2021-03-11T11:32:51.016200Z

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

Lu 2021-03-11T12:20:51.016900Z

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

Andrea Imparato 2021-03-11T13:20:14.017900Z

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

william 2021-03-11T16:58:17.019200Z

@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)

william 2021-03-11T16:58:23.019400Z

come mai succede secondo voi?

reborg 2021-03-11T17:22:42.019600Z

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 Imparato 2021-03-11T17:24:17.019900Z

c’e’ piu’ voglia di parentesi 😄

william 2021-03-11T17:35:17.021900Z

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?

reborg 2021-03-11T21:11:07.024100Z

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

william 2021-03-11T21:50:04.026900Z

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

reborg 2021-03-15T09:15:11.031100Z

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.

reborg 2021-03-15T09:19:19.031300Z

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)

reborg 2021-03-15T09:21:03.031500Z

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.

reborg 2021-03-15T09:21:48.031700Z

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