I was wondering why smartphone/mobile device OSs are not written to allow dynamic languages as the language of choice?  iPhone uses Objective-C, Google Android uses Java, Windows Mobile uses any manner of .NET language.
What would be the reasoning behind a mobile OS being written in Python, Ruby, or any other dynamic language?  I understand that at a low level they would not cut it but C or C++ would be fine for that and Python, for example, could be the layer on top to interact with it.  I mean, there is Jython or CPython.
I was just wondering why we do not see more dynamic language support in today's mobile OS's.
There are many reasons. Among them:

business reasons, such as software lock-in strategies,
efficiency: dynamic languages are usually perceived to be slower (and in some cases really are slower, or at least provide a limit to the amount of optimsation you can do. On a mobile device, optimising code is necessary much more often than on a PC), and tend to use more memory, which is a significant issue on portable devices with limited memory and little cache,,
keeping development simple: a platform that supports say Python and Ruby and Java out of the box:


means thrice the work to write documentation and provide support,
divides development effort into three; it takes longer for helpful material to appear on the web and there are less developers who use the same language as you on your platform,
requires more storage on the device to support all these languages,

management need to be convinced. I've always felt that the merits of Java are easily explained to a non-technical audience. .Net and Obj-C also seem a very natural choice for a Microsoft and Apple platform, respectively.
Python/Ruby as mobile OS