GolfScript, CJam, or Pyth? Which language usually produces shorter golfed code: Pyth, CJam or Golfscript?

In asking this, I do not mean which has a prettier syntax or which has the most useful commands, I mean overall, which one is usually the shortest? What types of problems would we expect each language to have an advantage in?
There is no simple answer to this question.

GolfScript almost never beats CJam. It has a lot less built-ins than CJam and the overall syntax is a bit more verbose. For example, print and {+}* become 
o and :+ in CJam.

The only exceptions are extremely trivial problems where the fact that GolfScript implicitly reads from STDIN is an advantage and the few occasions where block concatenation is useful (example).

With CJam and Pyth, it's a bit more complicated. Both languages can beat the other in particular challenges, although, by my completely unscientific observation, Pyth seems to have the upper hand on more occasions.

A few particular cases where picking one over the other is rather easy:


Choose Pyth if it has a built-in that CJam lacks and significantly simplifies the task.

For example, Pyth has r&lt;iterable&gt;2, which is Python's swapcase(). If that's useful in a challenge (example), it will be hard to beat with CJam.
On occasions, you have to build the output piece by piece. After finishing the program, CJam implicitly prints the entire stack, so you can just dump the pieces and let the interpreter do the rest.

For example, ascii-art challenges are usually won by CJam.
The length of a single built-in may be a decisive factor in a challenge.

Here, Pyth's C, which is shorter than CJam's 256b, was enough to outgolf CJam.

This would be longer in Pyth, partly because trigonometric functions are 3-character built-ins in Pyth and 2-character built-ins in CJam.


To sum it up, there is no single language that will magically make you win all code golf competitions. You haven't even considered APL, J, K, O, Q, TI-BASIC, Retina, Perl, sed and Mathematica, which all have beaten both CJam and Pyth in a few occasions.

You have several options:


Learn Pyth and CJam. Use the one that's more suited for each task.
Learn the one (first) you like better.

Personally, I'm crazy about stack-based languages, which I find much more easier to write and read.
Learn the one suited better for the challenges you enjoy.

ascii-art is your thing? Go with CJam. Nothing beats array-manipulation? Forget about both and learn J.