Fork me on GitHub
#clojure-italy
<
2019-07-01
>
manuel08:07:18

buon lunedì

reborg08:07:05

@andrea.imparato Ci sono un po' troppe affermazioni e domande tutte in una volta. Invece di cercare di classificare le API immaginandoti su cosa le potresti usare, ti consiglio di aspettare di trovare il primo problema che le richiede e concentrarti su quello. Dopo alcune iterazioni di questo tipo puoi cercare di astrarre una regola piu' generale. Se hai gia' un problema che stai cercando di risolvere, parliamo di quello.

👏 1
👌 2
Andrea Imparato09:07:05

la mia domanda era generica appunto perchè non sto risolvendo nessun problema al momento ma sto solo cercando di documentarmi un po' 🙂

reborg09:07:39

Non ti voglio scoraggiare, posta pure quante domande vuoi, non e' che ci sono problemi e le leggo volentieri.

reborg09:07:52

Se sono leggermente piu' specifiche rispondo anche, ma non sono l'unico in lista e qualcun'altro potrebbe rispondere.

Andrea Imparato09:07:02

il mio problema principale è che ho sempre programmato backend in php e con php non hai problemi di concorrenza e/o memoria perchè il processo php nasce e muore e chi sè visto sè visto 🙂

reborg09:07:13

in un certo senso non e' molto diverso in Clj. E' vero che e' un thread che nasce a muore (non un processo), ma grazie al fatto che Clojure e' immutable e largamente thread safe, te ne puoi (quasi) fregare

Andrea Imparato09:07:55

si, a meno che devi mantenere uno stato dell'applicazione ma cmq in quel caso ti basta usare atoms/refs e te ne puoi fregare lo stesso

reborg09:07:57

parlando molto grossolanamente si'...

manuel10:07:03

@andrea.imparato puoi provare a buttar giù un progetto di test e provare un po' di operazioni che non ti tornano. Col codice in mano è magari più semplice capire cosa non ti torna.

Andrea Imparato10:07:22

posso provarci ma cmq le mie domande sono + teoriche che d'implementazione

manuel10:07:53

certo, ma dai un senso alla teoria se la metti in pratica. Tutto qua. 🙂

Andrea Imparato10:07:25

eheh hai ragione 🙂. forse ho trovato un buon blog post che può rispondere alle mie domande: https://www.rubberducking.com/2018/05/the-various-kinds-of-io-blocking-non.html

mdallastella10:07:11

Se vogliamo rimanere sul teorico, c'è un detto "Premature optimization is the root of all evil" (Knuth).

mdallastella10:07:45

Quindi, a meno che la parte di concorrenza/asincronicità non sia essenziale, parti single thread/tutto sincrono e poi individui le parti che hanno bisogno di ottimizzazione

Andrea Imparato10:07:15

yep ed è per questo che amo clojure perchè è proprio la sua filosofia

mdallastella10:07:31

Tra l'altro siamo fortunati che Clojure è immutabile e la concorrenza è molto più semplice da gestire

helios08:07:47

buongiorno ragazzi 🙂

mdallastella10:07:56

Namaste clojuristi