4 ms·
I suspect it's just a tool, and the Datomic folks thought they'd make it available. No one said it was going to change the world, right? What does it buy "us"?
by mattdeboard 14y ago
I suspect it's just a tool, and the Datomic folks thought they'd make it available. No one said it was going to change the world, right?
What does it buy "us"? Well, it doesn't buy "us" anything. They needed a data interchange format and I assume it made more sense to use Clojure's primitives than parsing up JSON. Why would a project written using a homoiconic language use anything but that language to exchange data between its components?
edit: Said best by this tweet by fogus:
"Clojure devs have been using #Clojure data as an interchange format all along. ..."
https://twitter.com/fogus/status/243913831242399744 https://twitter.com/fogus/status/243913831242399744
- d0m 14y agoI suppose the "buy us" part was meant because it was the first rank on HN. (I.e. As if it's a big deal.)
- dmix 14y agoPlenty of language / tookit specific articles reach the top of HN. There are quite a few people here interested in clojure and Rich Hickey's work.
- lloeki 14y ago> They needed a data interchange format and I assume it made more sense to use Clojure's primitives than parsing up JSON. Even in JavaScript it's better to parse JSON instead of eval'ing, because you don't want to execute stuff that would "happen" to be contained in the data interchange format.
- lucian1900 14y agoThey aren't evaluated in Clojure, they are read by the reader.
- Tuna-Fish 14y agoThe word REPL comes from lisp and means Read Eval Print Loop. The significance is that unlike in, say, python, Read and Eval are separate. Read reads a string and turns it into an in-memory data structure, Eval takes a data structure (not a string!) and evaluates it. Using Read in a lisp is typically safe, so long as you turn off reader macros and the like.
- lloeki 14y ago> The significance is that unlike in, say, python, Read and Eval are separate. They are separate: * http://docs.python.org/library/ast.html#ast.parse * http://docs.python.org/library/ast.html#ast.literal_eval