Hacker News new | comments | show | ask | jobs | submit login
Clojure inventor Hickey now aims for Android (techworld.com.au)
47 points by rayvega on Mar 23, 2012 | hide | past | web | favorite | 11 comments

Didn't know Clojure 1.4 was going to have reader macros. That's awesome, one of the last features I was really missing from Common Lisp.

It's not general reader macros. He's talking about "tagged literals". See http://dev.clojure.org/display/design/Tagged+Literals

Clever attention-grabbing title, based on just 3 or 4 offhand sentences about people optimizing Clojure for Android.

Personally, I'd say misleading rather than clever.

My first thoughts too. If you go to the dev site (http://dev.clojure.org/display/design/Android+Support), however, you'll see that Android support is actually one of their core issues (well, it's under the 'core' list) right now.

Not excusing the editor/writer of the article for anything; that was a low trick to get readers.

Rich Hickey: "It's like traditional databases in being consistent and transactional, and it's like these new databases in being oriented toward flexibility for the application developer. It's bridging those two worlds."

Doesn't the CAP theorem [1] say that consistency, availability and partition tolerance cannot be achieved in a single system? How is Datomic giving us consistency, transactions and scalability? What are they sacrificing? How are they getting the 'best of all worlds'?

[1] http://en.wikipedia.org/wiki/CAP_theorem

As I understand it, datomic sacrifices write availability by serialising all writes through a single server.

Wow! That sounds like a huge sacrifice (Unless its a read heavy DB).

In addition to what jamii said, you can also have multiple write servers (called "transactors) and can join data between them. Furthermore, that transactor isn't serving queries, so it can have higher write throughput than a traditional database.

Assuming hot failover, it's a perfectly reasonable approach for pretty much all places a traditional SQL database was reasonable before.

Not really. All the writes go through a single server (which can have a hot failover). If you can't talk to that server then you can't write.

In theory it should still be able to handle at least the same write load as a traditional db whilst offering more flexible modelling and distributed queries.

This isn't really 'Hickey saying Android is then next target for Clojure and is at the forefront of the 'roadmap' for the language.

He's just mentioning the work some people have done in the Clojure community to get Clojure running on Android (with performance/startup issues)

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact