Изучение языка под мобильные разработки с дальнейшей перспективой?
====================================================================

 Здравствуйте, я давно хочу заняться мобильной разработкой, уж очень хочу.  
  

Даже MBP купил.  
  
  

Но хочется выбрать не Objective-C (не хочу привязываться к одной компании), а С++ (или С (в эту сферу никогда не лез, выбор сложен)), чтобы разрабатывать так же нативно, как, скажем, obj-c для apple дейвайсов, но чтоб это распространялось и на android (а может и на WinPhone7). То есть, выбрать один универсальный язык. Думал о Java, но Java, как известно, не покатит для яблок. :) По этому пока думаю лишь о С/С++ (можно и в большие компании по этому языку устроится, вроде актуален).   
  
  

Сам я крайне мало знаком с этими направлениями, занимаюсь RoR разработкой (и есть не большие познания в РНР), поэтому очень хотел бы узнать, что могут сказать люди, кто работает с этим рынком. Что посоветуете? Много вакансий на objective-c, но мало кто работает именно с С++ для мобильных приложений. А это ведь и разработка игр, поисковых служб, да и много чего другого. 

> Много вакансий на objective-c, но мало кто работает именно с С++ для мобильных приложений. А это ведь и разработка игр, поисковых служб, да и много чего другого.  
> 
> 

  

  

На самом деле разработка на С++ для мобильных устройств сейчас не актуальна на мой взгляд. Большинство мобильных платформ имеют очень качественные фреймворки на своих языках.  

Если брать разработку под WP7, то разработка игр там на XNA (С#).  

Под Android действительно игры пишутся на С++ (NDK), но так или иначе, там все равно нужна Java (основной язык платформы).  

Под iOs не знаю на чем пишутся игры, но думаю, что тоже на Obj-C, как и обычные приложения.  

  

Написание на сейчас возможно, на мой взгляд, только для устройств Windows Mobile 6.5 и младше. Но они отмирают потихоньку. Для других устройств — это получиться уж очень платформозависимые приложения.  

  

Мне кажется надо учиться либо под iOS, либо Android — Obj-C и Java соответственно.  

  

P.S. Для справки: Objective-C — по производительности не уступает обычному C++ (ну разве что чуть-чуть). Это компилируемый в машинный код язык. 

 Obj-C является полным надмножеством C, существует также диалект Obj-C++ (соотв. C++). Любой работающий код, который вы напишете на C/C++, можно откомпилировать и запустить на iPhone.  

  

Посмотрите в сторону PhoneGap, это легковесная библиотека, позволяющая разрабатывать ПО для iPhone/iPad и Android на JS. 

 Язык зависит от платформы и желания писать именно «родные» приложения. Официальные языки:  

WP7 и прочие Windows (Microsoft) — C# и .net  

Android (Google) — Java  

iOS (Apple) — Objective C  

Symbian, Maemo, MeeGo (Nokia & Intel) — C++ и Qt.  

  

Первые два — не совсем «родные», поскольку компилируются в байт-код, а не команды процессора.  

Objective C — только Apple.  

C++ и Qt позволяют разработывать приложения не только для мобильных устройств, но и для настольных Windows и Linux. Кстати, есть неофициальный порт Qt для Android и iOS, правда, пока он недоделан и вообще вряд ли такое приложение пройдёт в «сторы».  

Очень удобно, когда есть возможность использовать один и тот же фреймворк и на десктопе и на мобильном устройстве. Осваивать значительно легче. 

 Универсального решения нет.  

Хотите писать под аппараты Nokia? Учите Qt. Язык не важен, хоть Python. И имейте ввиду, что Qt для этого еще активно пилят.  

Хотите Apple? Ну тут вроде как выбора нет.  

Под андроид не писал, не подскажу.  

Под остальное писать смысла нет. Но если некрофил — то JME (вроде андроид тоже ведь умеет?).  

  

Только я смотрю вы уже определились, купив MBP :) 

 C совместим и с С++ и с Obj-C   

Только нужно ли оно. 

 В общем не слушать тех, кто кричит о том, что С++ не актуален. Это бред, даже на Андроиде многие юзают native код. Далее есть такая штука Qt, её тут пару раз упоминали, так вот она позволяет разрабатывать софт для Symbian, Maemo, MeeGo — это уже достаточно большой кусок рынка. При некотором скрипе можно разрабатывать для Андроида.  

Ну а iOS и ObjC или Win Phone и C# это вещи в себе. 

 Я работал в конторе, в которой за использование Objective-C++ вместо Objective-C в некритичных к перфомансу местах увольняли нахер.