Comment Re:Maybe because programmers like to be clear (Score 1) 878
Irreducible complexity is irreducible.
Still, I'd like to stress that picking the right language for your task can greatly reduce problem complexity.
For instance, algorithms are much more compact and easier to understand using a functional programming language. E.g. compare quicksort in Haskell and C - see http://www.haskell.org/haskellwiki/Introduction.
Complex concurrent programs remains challenging even with an excellent (IMO) concurrency library like the one in Java 1.5+. But switch to Erlang, and you'd find many concurrency patterns are expressed more naturally.