This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-03
Channels
- # aws-lambda (6)
- # beginners (38)
- # boot (39)
- # cider (44)
- # cljs-dev (9)
- # cljsrn (96)
- # clojure (142)
- # clojure-dev (6)
- # clojure-dusseldorf (8)
- # clojure-greece (45)
- # clojure-ireland (3)
- # clojure-italy (7)
- # clojure-norway (6)
- # clojure-russia (26)
- # clojure-sg (16)
- # clojure-spec (31)
- # clojure-uk (39)
- # clojurescript (125)
- # cursive (38)
- # datascript (4)
- # datomic (18)
- # emacs (34)
- # figwheel (2)
- # hoplon (3)
- # immutant (23)
- # jobs (1)
- # lambdaisland (2)
- # lumo (13)
- # off-topic (77)
- # om (8)
- # onyx (9)
- # pedestal (2)
- # play-clj (1)
- # re-frame (52)
- # reagent (3)
- # rum (4)
- # spacemacs (2)
- # specter (4)
- # unrepl (37)
- # untangled (8)
- # vim (79)
- # yada (1)
https://www.reddit.com/r/Clojure/comments/68r4lz/one_of_facebook_projects_migrating_from_clojure/
πολυ ενδιαφερον αυτο
But realistically, I'd pick Erlang (for preemptive scheduling + share nothing + Dialyzer + repl) or Haskell (for strong typing with no hassle) instead.
Erlang τα πάντα γίνονται με actors χωρίς shared state ακόμα και αν τρέχει σε ένα host
Αυτό είναι το share nothing που λέει
dialyzer είναι http://erlang.org/doc/man/dialyzer.html
Αυτή την άποψη περί scaling του codebase την έχω ακούσει πολύ, παράδειγμα από τον Martin Trojer (που έχουμε δουλέψει και μαζί σε μεγάλο clojure codebase)
Ναι εγώ πιστεύω ότι είναι υπερβολικό
Σίγουρα το maint φορτίο είναι μεγάλο, αλλά δεν είναι μεγάλο σε C++ codebases ή Haskell
Αλλά μάλλον έχει να κάνει με τα hashmaps
Που είναι τα de facto objects της clojure
Ναι συμφωνώ, απλά είναι και θέμα idiom
Δηλαδή ruby, php, c++ κλπ έχουν idiomatic τρόπο να περιγράφουν τα data που κυκλοφορούν στο σύστημα
Και να κάνουν enforce το shape τους
Μέχρι το spec η clojure δεν είχε κάτι τέτοιο
Αυτό ενοχλεί/ανησυχεί κάποιους
Από την άλλη η επιλογή των hashmaps δεν είναι τυχαία, έχει να κάνει με την λογική του openness. Και αυτός είναι ο λόγος που το spec δεν κάνει enforce το να έχει ένα map ακριβώς κάποιο key set
Κάνει validate τα values που αναφέρονται στο spec αλλά σε αφήνει να βάλεις κι αλλά keys στο map
ειχε το record θα πω εγω
δεν κανει enforce αλλα τουλαχιστον κανει πιο καθαρη την αναγνωση
"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."
An agapiseis to Haskell type system diskola mporeis na kaneis FP se dynamic Lisp family glosses
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
@palladin έχω έναν φιλο, hardcore common lisper, που αντιπαθεί τις strongly-typed λόγω inflexibility
Η "Αγία τριάδα" του είναι Common Lisp, Smalltalk, Forth :D
εχω την υποψια οτι ειναι και στον ανθρωπο ολο αυτο παντως
@greenonion ναι, μπορεί να είναι σχεδόν νευρολογικό!
@stathissideris Btw mias kai aneferes gia tin agia triada tou filou sou