Object oriented languages lend themselves fairly well to this sort of modeling, and a strong programmer in any language should be able to take a good description of a well thought-out model and write some code for it.
However, by far the harder part is designing a good model. Asking whether all programmers are capable of that is sort of like asking whether all carpenters are architects. As for Python, it's a good language for prototyping. The development cycle moves very fast, so one can experiment with many different ideas more quickly than in Java or C++. The price, however, is execution speed. There are extension modules like the scipy suite which can reclaim some lost speed, but Python will generally be slower than compiled languages. -- http://mail.python.org/mailman/listinfo/python-list