Fork me on GitHub
#clojure-italy
<
2018-08-14
>
reborg09:08:00

Buongiorno

reborg09:08:19

Benvenuto @andrea.imparato, dall'Italia o dal mondo?

Andrea Imparato09:08:23

italiano ma vivo a berlino 🙂

reborg09:08:43

Ah, mi sembra sei il secondo nel channel da Berlino! Che si fa di bello la'?

Andrea Imparato09:08:24

programmo rest api in php 😞

reborg09:08:07

Argh, cioe' in realta' non ne so molto, assumo "argh" 🙂

reborg09:08:54

L'altro berlinese e' un altro Andrea, @andreabenfatto

Andrea Imparato09:08:17

ah ok! magari lo beccherò al meetup mensile di clojure che si fa vicino al mio ufficio 🙂

reborg09:08:48

Come mai l'interesse per Clojure?

Andrea Imparato09:08:29

perchè è lisp 🙂

Andrea Imparato10:08:12

e perchè php sucks fondamentalmente 😄

Andrea Imparato10:08:20

ok, domanda, se ho una funzione che ritorna una stringa, come faccio a salvare il suo ritorno con let ?

skuro10:08:24

@andrea.imparato nel senso di

(let [s (str "one" "two")]
  (... code goes here ...))
?

Andrea Imparato10:08:19

no + nel senso

let [s string-fun]

Andrea Imparato10:08:31

dove string-fun è una funzione che ritorna una stringa

skuro10:08:32

probabilmente non capisco la parte dove dici salvare il suo ritorno con let, mi sembra che ci sei gia' abbastanza vicino

(defn make-string [] "foobar")
(let [s make-string]
  (println (s)))

bronsa10:08:57

@andrea.imparato let e` per uso locale, def definisce Var globali

Andrea Imparato10:08:02

ho trovato! mancavano le parentesi attorno a string-fun

Andrea Imparato10:08:15

non sono ancora abituato 😄

Andrea Imparato10:08:53

non invocavo la funzione praticamente

bronsa10:08:59

basta che ti ricordi che ogni volta che vuoi invocare una funzione, la sintassi e` sempre (funzione arg1 arg2 ..)

bronsa10:08:27

altrimenti funzione e` il valore della funzione stessa

Andrea Imparato10:08:28

usate tutti emacs qua?

reborg10:08:21

eh eh (mosca bianca) vim-diehard since 2007

bronsa10:08:36

io emacser dal 2009

bronsa11:08:06

consiglierei cursive (intellij) se non sei abituato a vim o emacs

Andrea Imparato11:08:50

no uso anch'io emacs ma solo per i progetti non lavorativi

Andrea Imparato13:08:09

ho scritto il mio primo slack bot in clojure 💪 mi sento mega potente lol

🚀 8
Andrea Imparato14:08:24

ho un'altra domanda, quanto è "performante" clojure rispetto a java od altri programmi compilati?

reborg15:08:29

E' relativamente facile rispondere per quanto riguarda Java, visto che i due linguaggi possono essere comparati sulla stessa JVM. Clojure va veloce quasi quanto il relativo codice Java, con tutta la piacevolezza di non scrivere Java. Riguardo altri linguaggi non c'e' una risposta assoluta, dipende dal tipo di applicazione. Per applicazioni general purpose (cioe' l'80% dell'industria) e' un linguaggio "performante". Cioe' non dovresti sentire commenti tipo "Clojure e' lento".

👍 4
Andrea Imparato15:08:19

diciamo non ci fai applicazioni realtime di sicuro però, giusto?

reborg15:08:02

E no, soprattutto per via del garbage collector (ci sono hack vari). Ma non e' la prima cosa che ti viene in mente. Andrei di C.

Andrea Imparato15:08:11

yep, la mia azienda per fare app realtime usa D

Andrea Imparato15:08:29

dovrebbero esserci tipo massimo 3 aziende in tutto il mondo che lo usano lol

reborg15:08:41

uh D, spetta che wikipedo

bronsa15:08:27

anche se con l'avvento di go e rust non ci vedo piu` molto spazio

reborg15:08:06

Anche una bella sintassina per lambda g = (x) => x * x;

bronsa15:08:31

IIRC ha un sistema di compile-time metaprogramming niente male

bronsa15:08:18

l'ultima volta che l'ho usato (si parla di 4-5 anni fa) il compilatore e l'intera toolchain erano completamente instabili -- e` ancora cosi` @andrea.imparato?

reborg15:08:54

ehm, colpo di tosse, decent standard library docs, https://dlang.org/phobos/std_parallelism.html

Andrea Imparato15:08:49

@bronsa non so dovresti chiedere agli altri dev nella mia azienda 🙂. A quanto so hanno riscritto molte delle librerie