Friday, May 6, 2011

The rise of concurrency

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.

Wednesday, April 6, 2011

The most difficult bugs in C++

The most difficult bugs to find reason are:

  1. Libraries, built with different settings for the same configuration.
  2. Different configurations saving output in the same folder.
  3. Memory corruptions.
  4. Multithread bugs.
  5. Memory corruptions in multithread applications.