Programming has changed, in the past we could just rely on computers getting faster year after year. This is proving to be more and more difficult; so, hardware manufacturers are taking a different approach. Now, they are embedding more processors into computers. Nowadays, it's not uncommon to see phones with just or four cores.
This calls for a different way of writing software, one in which we are able to execute some tasks in other processes, explicitly. The modern languages are trying to make this task feasible and easier for modern developers, and Clojure is no exception.
In this chapter, we will see how Clojure enables you to write simple concurrent programs by reviewing Clojure's core concepts and primitives; in particular, we need to understand the concept of identity and value that Clojure has embedded into the language. In this chapter, we will cover the following topics:
Using your Java knowledge
The Clojure model of state and identity
Promises
Futures
Software...