Fork me on GitHub
#clojure-italy
<
2017-03-02
>
nilrecurring09:03:30

L'ho appena letto

bronsa09:03:47

non sono minimamente d'accordo con molti dei "grandoise claim" che nathan fa

bronsa09:03:29

specter e` una libreria molto utile in certi use-case, che tuttavia non sono d'accordo siano cosi` comuni come lui cerca di far passare

bronsa09:03:38

e` certamente abbastanza generica e molto ottimizzata

bronsa09:03:05

ma non e` minimamente una cosa nuova o un missing piece, librerie che fanno la stessa cosa esistono da molto tempo e in molti altri linguaggi

bronsa09:03:12

vedi le varie astrazioni di lenses/zippers e astrazioni simili

nilrecurring09:03:17

IMHO lui sta cercando rilevanza e riconoscimento: se la sua libreria viene inclusa nel core non ci sarà un'altra libreria che tra 5 arriva e fa la stessa cosa ma va più di moda

bronsa09:03:28

non verra` mai inclusa in core

bronsa09:03:47

sono estremamente confuso dal fatto che sia sorpreso dal rifiuto

nilrecurring09:03:07

Perché sei confuso?

bronsa09:03:24

perche` la pretesa di avere specter in core, vs avere ring in core, per esempio?

nilrecurring09:03:49

Quando ho scritto core intendevo contrib, sry

bronsa09:03:01

(tralasciando il fatto che il codestyle e le varie ottimizzazioni nel codebase di specter sono questionabili)

bronsa09:03:15

@nilrecurring ah, nessuno gli ha detto "no" a inculudere specter in contrib

bronsa09:03:25

lui chiedeva di includerlo in clojure itself

nilrecurring09:03:26

(Si la sintassi è in effetti un po' strana)

bronsa09:03:29

as in, clojure.jar

nilrecurring09:03:43

Sono d'accordo che è un po' troppo

reborg09:03:46

Ho anch’io seguito l’evoluzione di specter senza usarlo (visto presentazioni etc) e pensavo che fosse una lib con parecchio valore aggiunto per quei casi in cui uno deve fare i conti con uber-nested data structures. Ma faccio fatica a capire perche’ dovrebbe essere in core

bronsa09:03:31

trovo particolarmente fastidioso le false equivalenze che presenta per dimostrare quanto superiore sia specter a "vanilla clojure"

reborg10:03:43

me lo sto leggendo...

reborg10:03:05

il primo esempio richiede "esoteric knowledge of the internals of Clojure”… (reduce-kv (fn [r k v] (assoc r (keyword (str *ns*) (name k)) v)) {} m)

reborg10:03:55

ammettendo che sia anche vero… e’ premature optimization nel 90% dei casi

bronsa10:03:43

sia chiaro, una libreria che ottimizza update/navigation di default non e` niente male

bronsa10:03:02

ma e` semplicemente falso il claim che quelle ottimizzazioni siano spesso necessarie

bronsa10:03:22

o che quel tipo di nested data structure traversal/update sia "fondamentale" per come clojure viene utilizzato

reborg10:03:49

agree agree

reborg10:03:21

l’avesse presa in maniera diversa forse avrebbe ottenuto risultati migliori, tipo contribuire a “core” le patch per le pecche piu’ evidenti (se esistono…) Peccato per Nathan perche’ fino ad ora mi sembrava particolarmente pragmatico ed intelligente

bronsa10:03:35

ah ma niente da ridire eh

bronsa10:03:46

specter e` incredibilmente pragmatica come libreria

bronsa10:03:48

l'unico problema che ho con quel blog posto e le interazioni che nathan ha avuto con la ml di clojrue a riguardo e` la pretesa di aver "scoperto qualcosa di fondamentale" e che "sia indispensabile per ogni programmatore clojure"

bronsa10:03:21

95% dei casi, non ho alcun interesse in quei 10ms che specter mi farebber risparmiare

bronsa10:03:48

95% dei casi, non ho alcun interesse in scrivere una funzione che agisca su sorted maps

reborg10:03:13

anyway, attendo risposta sulla ML 🙂

bronsa10:03:55

95% dei casi, non ho deeply nested DS da aggiornare/traversare

bronsa10:03:14

@reborg la risposta di Alex Miller c'e` stata ed e` stata "no interest."

reborg10:03:27

al “missing piece” che per ora ha zero answers

reborg10:03:47

che se rimanesse tale sarebbe probabilmente una risposta eloquente 🙂

mbarbieri16:03:39

io dal basso della mia esperienza in clojure, quando mi capita di navigare o trasformare strutture dati highly-nested, mi viene prima di tutto il dubbio di aver creato la struttura dati in modo sbagliato... prima di cercare un modo efficiente di usarla