We are living in the second generation of concurrency tools. When first were mainly extensions to existing languages, the new languages, primary designed for concurrency programming appeared.
I guess Erlang was the first swallow in such kind of languages, but now, as far as I know, we have two more:
Clojure (http://clojure.org/) and Go (http://golang.org/).
They explore interesting ideas about future of the languages: built-in thread safety with transactional memory for shared data in Clojure and goroutines - very lightway "threads" that runs in parallel and have a nice concept of channels and callbacks that allows goroutines to coordinate.
Friday, May 6, 2011
Wednesday, April 6, 2011
The most difficult bugs to find reason are:
- Libraries, built with different settings for the same configuration.
- Different configurations saving output in the same folder.
- Memory corruptions.
- Multithread bugs.
- Memory corruptions in multithread applications.