Везде.
На С++ пишут вообще все (ну почти). Контроллеры например на Си (и ассемблерах) программируют, на С++ - вряд-ли.
Руби и джаваскрипт - интерпретируемые, поэтому всякие низкоуровневые штуки на них не пишут (Операционные системы, драйвера, не программируют контроллеры вообще никак).
Руби - относительно универсальный язык, на нем пишут почти все, под мобильники в т.ч.
На джаваскрипте обычно пишут скрипты, которые исполняет браузер, и всякие плагины. Ну, например, плагины для фотошопа можно писать на джаваскрипте.
Для языка С++ есть библиотека Qt, частью которой является QML. Вот в QML можно описывать поведение объектов на джаваспите.
Кроме того, в Qt есть скриптовый язык (Qt Script) и с ним тоже можно описывать поведение объектов в программе на С++, хотя скрипты там тоже на джаваскрипте.
Javascript используется достаточно часто, поэтому все мастера должны знать, как его использовать в своем коде. Для размещения скрипта (будь то Java или любой другой) используется код <script></script>. Если вы прописываете скрипт в коде, он будет располагаться между этими тегами. Если подключаете извне, между скрипт-тегами нужно прописать адрес, по которому браузер сможет найти ваш скрипт.
function y() {
for (var x=0, result=[]; x<=5; x+=0.5) {
result.push(x*1.5);
}
return result;
}
alert(y());
Как понимать ваш вопрос о том, что на смартфоне нет интернета? Сейчас, в любом пакете, любого оператора сотовой связи есть интернет. Если есть связь на смартфоне, значит есть и интернет.
Ну а если вы принципиально не подключаете интернет на своем смартфоне и даже не пользуетесь бесплатным "Вай-Фаем", который сейчас есть практически в любом кафе, на любом автовокзале и даже в метро. То браузер может вам понадобится только для того, чтоб открывать файлы. Допустим кто-то пришлет вам с помощью ММС, понравившуюся ему картинку в интернете, но сохранит не как картинку, а как страницу целиком, вот тут вам и может пригодиться браузер, чтоб открыть эту картинку на своем смартфоне.