Programming Languages

Playing with Agents

Clojure is a programming language with a rich set of features. The rationale behind Clojure and its set of features can be summarized with these 4 points: functional programming (which favors immutable structure) polymorphism, with global mutable reference, dynamic typing and multi-method dispatch transactional memory to see consistent snapshot of the world advanced concurrency mechanisms… Continue reading Playing with Agents

Programming Languages

A First Look at Clojure

Transactional memory (TM) offers the promise to simplify concurrent programming. Lock-based programming, the de-facto standard, is indeed hard to get right. Common problems with lock-based programming are deadlock, priority inversion, and lack of composition. Lack of composition refers to the fact that two structures correctly synchronized do not necessary compose to a new structure itself… Continue reading A First Look at Clojure