КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ
Есть два принципиально различных типа программ: самостоятельные приложения и исполняемые файлы, которые запускаются только при наличии установленной в устройстве специальной среды - интерпретатора.
В первом случае для «перевода» текста программы на язык, понятный какой-либо платформе (в нашем случае S60), необходим компилятор - специальное приложение, которое, как правило, входит в состав средств разработчика. Итак, пропускаем написанный код через компилятор и на выходе получаем самостоятельное приложение для совместимой платформы. Достаточно скопировать его на соответствующий аппарат и элементарно запустить. Поясним. В случае с Windows XP компилятор выдает EXE-файл. Все, что требуется от пользователя для запуска, - это двойной клик. Компилируемые языки программирования в освоении сложны, зато творческих возможностей предоставляют больше. C++, например, - стандарт де-факто при разработке ПО, в том числе и для многих мобильных платформ.
Плюсы
+ максимальная скорость и минимально потребляемые ресурсы
+ для работы программы требуются только ее собственные файлы
+ удобное средство для создания коммерческих продуктов
Минусы
- сложные для освоения языки
- необходимость создания различных версий продукта для разных платформ
Интерпретатор занимается тем, что объясняет данному устройству, как следует выполнять код программы. Пожалуй, самый известный пример интерпретатора - виртуальная машина Java, которая, кстати, по умолчанию наличествует не только в смартфонах, но и практически в любых современных телефонах. Интерпретатор Java - универсален. Одна и та же Java-программа, как правило, выполняется и на Windows Mobile коммуникаторе, и на каком-нибудь музыкальном телефоне Sony Ericsson.
Минусы интерпретаторов - в относительно медленной скорости работы, а кроме того, они обладают изрядным аппетитом в плане потребления ресурсов. Зато такие языки просты для изучения. Помимо Java, к интерпретаторам можно отнести, например, «настольный» Basic, который преподается почти во всех школах.
Плюсы
+ легкость освоения
+ в ряде случаев - возможность написания и отладка программ на самом устройстве
Минусы
- зависимость программы от интерпретатора
- медленная работа и большое потребление оперативной памяти
- трудность создания коммерческих продуктов