This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-07-23
Channels
- # beginners (20)
- # boot (7)
- # cider (115)
- # cljsrn (13)
- # clojars (1)
- # clojure (122)
- # clojure-italy (23)
- # clojure-spec (60)
- # clojurescript (74)
- # data-science (7)
- # datomic (26)
- # emacs (8)
- # graphql (1)
- # lumo (26)
- # music (1)
- # off-topic (1)
- # re-frame (9)
- # ring (3)
- # rum (1)
- # spacemacs (4)
- # uncomplicate (6)
- # vim (7)
All'epoca ho finanziato Light Table (su Kickstarter, se ricordo bene) ma devo confessare che non l'ho praticamente mai usato...
@nilrecurring @richiardiandrea per quanto riguarda i vettori, first ha l'overhead di dover creare una seq mentre nth ha accesso diretto al vettore, per le liste, nth e` altamente polimorfico e ottimzzato per strutture indexed, le sequenze non lo sono e quindi pagano overhead per lo slow branch
nello specifico, devono effettuare tutti i seguenti instance check prima di arrivare al loro branch https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java#L873-L891 che poi esegue essenzialmente lo stesso codice di first
Grazie @bronsa chiarissimo. Si per le sequenze ha senso (non sono indicizzate come dicevi)..ottimo a sapersi che first wrappa tutto in una seq
Vero vero mi e' tornato in mente la parte di Joy Of Clojure, dovrei darci una ri-occhiata every now and then
Joy of Clojure è ottimo e seppur datato lo consiglierei a tutti
La cosa da notare sopra è anche legata alla reflection: nth
è sempre il più veloce a seguito da .get
con type hint
Volevo solo sottolinearlo che magari sfugge, ma si, ovviamente
Sono d'accordo
E voterei per vederla, non che uno non debba fare profiling, ma nove su dieci la reflection va evitata come la peste 😀
Quanto è strano scrivere ste cose in Italiano comunque 😁 con @nilrecurring abbiamo faticato ah ah
Concordo sulla difficoltà nello scrivere di queste cose in italiano, alcuni termini non ce li abbiamo proprio 😄
E una flag per la reflection compilation failure sarebbe una cosa magnifica
@richiardiandrea grazie per il link su LightTable! Un sacco di buoni propositi e guidelines, ma a sei mesi dal post non c’è neanche un nuovo commit e le PR sono ancora unmerged, quindi sono un po’ scettico
@mdallastella LightTable è stato il mio primo editor clojure, e devo dire che l’onboarding è stato fantastico perchè ti costringe a fare repl-driven-development fin dall’inizio, quindi sono diventato produttivo molto in fretta. Poi ha cominciato a rompersi a caso e ho smesso di usarlo. Ho riprovato a installarlo da poco, ed fa cose un po’ buffe e in generale non funziona benissimo
Tutto sommato è una codebase vecchia, che i dev originali non sviluppano più, con zero documentazione per i dev, e un sacco di bug. Insomma il tipico blob legacy che uno si trova sempre a dover ereditare, con la differenza che non ha sponsor che ne finanziano lo sviluppo
Penso che una riscrittura possa avere senso, possibilmente integrando/convertendo in qualche modo i plugins di atom per i linguaggi, per non aver da mantere anche tutti quelli