Какой язык программирования стоит учить? Подчас от правильности ответа на этот вопрос зависит будущее разработчика. Существует много факторов, которые следует учитывать при выборе языка программирования, к тому же не стоит забывать, что настольные и мобильные приложения имеют различные требования. Стоит также учесть, что технологии развиваются быстрыми темпами и со временем ваши знания могут просто устареть. Нужно также принять во внимание, что языки программирования различаются в плане функциональности и сложности. Поэтому ответ на вопрос о том, какой же язык выбрать, будет зависеть от того, какую задачу вы хотите решить.
Например, если вы разрабатываете статическое веб-приложение, вы должны знать обычный HTML. И, наоборот, если вы хотите создать динамичное приложение с расширяемыми возможностями, вы должны выучить ASP.NET, PHP, Ruby on Rails или JavaScript и освоить соответствующий фреймворк. Издание InformationWeek предлагает ознакомиться с шестью основными языками программирования для мобильной разработки приложений.
HTML5
Если вы хотите разрабатывать веб-ориентированные приложения для мобильных девайсов, то определенно вашим выбором станет HTML5. Его базовые возможности позволяют упростить вставку различных типов данных в приложение, рационализировать вводные параметры, сглаживать различия при обработке данных приложения несколькими браузерами, а также настроить параметры программы под различные разрешения экранов. HTML5 уже превратился в отраслевой стандарт, поэтому поддерживается разработчиками разными способами и большинством веб-обозревателей.
Поддержка стандарта HTML5 обеспечивается практически на всех современных мобильных платформах, включая iOS, Android и Windows Phone, в чём заключается ещё одно его важное достоинство. Веб-мастеру уже не нужно размещать несколько версий медиаконтента для «полноценных» компьютеров и мобильных устройств. Известно, что с Flash система iOS несовместима полностью, а Android совместима лишь частично. В случае с HTML5 эта проблема полностью снимается.
Тем не менее, тем программистам, которые занимаются версткой веб-страниц на HTML5, стоит напомнить, что в ближайшие нескольких месяцев в HTML5 могут появиться существенные изменения, влияющие на обработку кода браузерами.
По соотношению эффективности и трудозатрат HTML5 имеет преимущество, поскольку он проще в освоении, чем другие языки. Если вы желаете строить веб-ориентированные, браузерные приложения, то очевидно, что вашим выбором станет HTML.
Java
Предварить рассказ о языке Java стоит с того, что встречаются и другие языки программирования, в имени которых присутствует слово «Java» — JavaScript или Enterprise Java Beans, но все это различные системы. Из них троих непосредственное отношение к мобильной разработке имеет Java. Это объектно-ориентированный язык программирования, разработанный в Sun Microsystems. Java, как впрочем, и остальная собственность Sun Microsystems, в настоящее время принадлежит Oracle. По мнению большинства экспертов, Java является одним из наиболее часто используемых языков программирования, навыки владения им пригодятся не только для частной разработки софта, но также требуются предприятиям.
Одной из отличительных особенностей Java является его универсальность. Будучи компилируемым, язык может работать двумя различными способами: либо в окне браузера, либо запускаться в виртуальной машине, которой для работы не требуется браузер. Такая гибкость играет важную роль, когда дело доходит до повторного использования кода и обновления ПО. Если вы рассматриваете Android в качестве приоритетной платформы разработки, то почти наверняка ваш выбор падет на Java. Но что касается другой популярнейшей мобильной платформы — iOS, то для написания софта под нее часто выбирают языки Objective-C или Swift. Так или иначе, но если вам требуется создать кодовую базу для работы с различными ОС, то, безусловно, в этих целях лучше использовать Java.
JavaScript — это, как следует из названия, язык сценариев для приложений веб-браузера. Его можно использовать для добавления функций на веб-странице, но как цельное решение для разработки мобильных приложений это решение не пригодно.
C++
Для того, чтобы более основательно проникнуть вглубь Android или Windows, потребуются навыки работы с языком программирования С++. Являясь объектно-ориентированным, он может быть использован для разработки приложений практически для любых целей и на любой существующей платформе, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, виртуальные функции. С++ нельзя назвать ультрасовременным средством программирования, он прошел длинный путь развития и существует множество его реализаций, как бесплатных, так и коммерческих и для различных платформ. Одно из наиболее значимых достоинств C++ то, что он сочетает свойства как высокоуровневых, так и низкоуровневых языков.
Objective C
В то время как в большинстве стран мира для разработки программного обеспечения используется C++, Apple решила пойти своим путем, избрав в качестве основного языка программирования Objective C. Как и C++, Objective C является надмножеством языка Cи. Поэтому любая программа на Си является программой на Objective-C. Тем не менее, последний имеет ряд функций, которые специфическим образом взаимодействуют непосредственно с графикой, функциями ввода/вывода и отображения. Objective-C является частью среды разработки Apple и полностью интегрирован во все фреймворки iOS и MacOS.
Swift
У Apple имеется и собственный язык программирования — Swift. Первая версия Swift была представлена Apple на прошлогодней конференции WWDC, на нынешней компания заявила, что текущая версия — Swift 2 — получит открытый исходный код компилятора и всех поставляемых с языком программирования библиотек. Это позволит программистам изучить язык глубже и начать создавать инструменты, используя переработанные библиотеки. Вполне вероятно, что при помощи Swift разработчики смогут создавать и приложения для других операционных систем, отличных от iOS, OS X и watchOS.
Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C, но очевидно, что американская компания намерена предложить Swift в качестве языка программирования полного цикла. Изначально его разрабатывали как более устойчивый к уязвимостям, чем Objective-C.
К слову, Swift не должен отпугивать начинающих программистов. Он схож по своей сути со скриптовым языком. Swift поддерживает так называемые playground’ы, которые позволяют программистам экспериментировать с кодом, видя результат в режиме реального времени без необходимости компилировать и запускать приложение.
C#
В экосистеме Microsoft язык C# играет ту же роль, что и Objective-C для Apple: по сути C# является надстройкой языка Cи, который непосредственно управляет спецификой рабочей среды. Платформа Windows Mobile так и не смогла занять на мобильном рынке соответствующего ее создателю статуса, но нет никаких сомнений, что этот язык имеет притягательность для разработчиков софта как минимум на нескольких платформах. Если ваш парк мобильных устройств работает на Windows, то при выборе используемых языков программирования вы также должны опираться на C#.
***
Так какой язык является лучшим для мобильной разработки? Очевидно тот, который наилучшим образом отвечает вашим потребностям. Если вы хотите сделать нативное приложение для iOS — выбор ясен: Objective-C или Swift. Если вы хотите создать приложение с браузерным фронт-эндом, то для этого в Сети есть достаточно примеров, которые помогут это сделать. Разумеется, нужно принять во внимание опыт ваших программистов, потребности ваших клиентов и бюджет проекта.