O'Reilly logo

Clojure Applied by Alex Miller, Ben Vandgrift

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Make Reasoned Choices

Clojure was developed using reasoned choices. Every decision that went into its features had trade-offs that were carefully weighed after time was taken to fully understand the consequences.

For example, compare Clojure’s state-management facilities to the message-based protocol you find in Erlang. Clojure focuses on concurrent processes implemented on one host, whereas Erlang focuses on distributed systems. Clojure’s atoms, refs, agents, and core.async library are a more efficient fit for that concurrency model than message-passing. This decision yields simple, robust concurrency at the cost of nearly transparent distributability. Horizontal scaling is more difficult, vertical scaling more effective.

Adopting this approach ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required