Fork me on GitHub
#clojure-greece
<
2017-05-03
>
greenonion09:05:17

πολυ ενδιαφερον αυτο

gtsiftsis09:05:07

But realistically, I'd pick Erlang (for preemptive scheduling + share nothing + Dialyzer + repl) or Haskell (for strong typing with no hassle) instead.

gtsiftsis09:05:26

δεν έχω εικόνα από Erlang, ξέρει κάποιος να εξηγήσει;

stathissideris09:05:59

Erlang τα πάντα γίνονται με actors χωρίς shared state ακόμα και αν τρέχει σε ένα host

stathissideris09:05:21

Αυτό είναι το share nothing που λέει

gtsiftsis09:05:50

repl φαντάζομαι είναι αυτό που καταλαβαίνουμε όλοι

stathissideris09:05:22

Αυτή την άποψη περί scaling του codebase την έχω ακούσει πολύ, παράδειγμα από τον Martin Trojer (που έχουμε δουλέψει και μαζί σε μεγάλο clojure codebase)

gtsiftsis09:05:35

Δεν νομίζεις ότι είναι λιγο υπερβολική;

gtsiftsis09:05:58

Εχοντας δει ruby codebase να κάνει scale γιατί να μην μπορεί Clojure codebase;

stathissideris09:05:31

Ναι εγώ πιστεύω ότι είναι υπερβολικό

gtsiftsis09:05:35

Σίγουρα το maint φορτίο είναι μεγάλο, αλλά δεν είναι μεγάλο σε C++ codebases ή Haskell

stathissideris09:05:58

Αλλά μάλλον έχει να κάνει με τα hashmaps

stathissideris09:05:25

Που είναι τα de facto objects της clojure

gtsiftsis09:05:07

κοίτα, το επιχειρήμα που γράφει ένας, ότι δλδ εφόσον έγινε scale PHP όλες γίνονται

gtsiftsis09:05:14

είναι σχεδόν ανίκητο

stathissideris09:05:36

Ναι συμφωνώ, απλά είναι και θέμα idiom

stathissideris09:05:55

Δηλαδή ruby, php, c++ κλπ έχουν idiomatic τρόπο να περιγράφουν τα data που κυκλοφορούν στο σύστημα

stathissideris09:05:11

Και να κάνουν enforce το shape τους

stathissideris09:05:32

Μέχρι το spec η clojure δεν είχε κάτι τέτοιο

stathissideris09:05:51

Αυτό ενοχλεί/ανησυχεί κάποιους

stathissideris09:05:43

Από την άλλη η επιλογή των hashmaps δεν είναι τυχαία, έχει να κάνει με την λογική του openness. Και αυτός είναι ο λόγος που το spec δεν κάνει enforce το να έχει ένα map ακριβώς κάποιο key set

stathissideris09:05:27

Κάνει validate τα values που αναφέρονται στο spec αλλά σε αφήνει να βάλεις κι αλλά keys στο map

greenonion09:05:39

ειχε το record θα πω εγω

greenonion09:05:04

δεν κανει enforce αλλα τουλαχιστον κανει πιο καθαρη την αναγνωση

palladin10:05:14

"Due to Haskell’s strong type system, we had to get rid of our free-form Clojure maps. The end result is a more structured and readable codebase."

palladin10:05:11

An agapiseis to Haskell type system diskola mporeis na kaneis FP se dynamic Lisp family glosses

palladin10:05:11

Ena palio paper tou Wadler (protou sxediasoun tin Haskell) pou anaferete pano sto thema https://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf

gtsiftsis10:05:47

έχει πλάκα που γυρισαν το sicp σε python 🙂

stathissideris10:05:13

@palladin έχω έναν φιλο, hardcore common lisper, που αντιπαθεί τις strongly-typed λόγω inflexibility

stathissideris10:05:48

Η "Αγία τριάδα" του είναι Common Lisp, Smalltalk, Forth :D

greenonion10:05:56

εχω την υποψια οτι ειναι και στον ανθρωπο ολο αυτο παντως

palladin10:05:13

profanos uparxei kai auti i sxoli

palladin10:05:24

eimoun megalos opados tis

palladin10:05:51

to "The art of meta-object protocol"

palladin10:05:09

einai apo ta kalitera vivlia pou exo diavasei

stathissideris10:05:30

@greenonion ναι, μπορεί να είναι σχεδόν νευρολογικό!

palladin10:05:11

alla apo tote tou ekana typed FP

palladin10:05:39

there is no way back

palladin11:05:05

@stathissideris Btw mias kai aneferes gia tin agia triada tou filou sou

palladin11:05:56

Gia tous filous ton types exoume kai emeis tin dikia mas