Please note that transactional memory does not require a functional language. In fact, the majority of publicly-available software implementations of TM target C/C++ applications.
Transactional Memory does not require functional languages
Posted Jun 17, 2009 6:53 UTC (Wed) by j1m+5n0w (guest, #20285)
[Link]
Very true, there's no technical reason why STM would require a functional language. The main advantage some functional languages have is purity, which means the type system can guarantee that a particular block of code does not cause side effects or otherwise interact with shared, mutable state in ways that aren't allowed by STM. In an impure language, the programmer would need to be extra vigilant.