Показаны сообщения с ярлыком Objective-C. Показать все сообщения
Показаны сообщения с ярлыком Objective-C. Показать все сообщения

Россия: спрос на разработчиков под Android вырос на 650%, iOS - на 150%

Публикация в новостях, цитаты:

За год спрос на разработчиков мобильных приложений вырос в три раза сильнее, чем спрос на обычных программистов. При этом спрос на разработчиков под Android вырос более чем в 7 раз, а под iOS - в 2,5 раза. Специалисты остаются на вес золота, что позволяет им самим диктовать условия при приеме на работу.

... Для сравнения, количество вакансий для разработчиков под Symbian выросло на 163%, под iOS - на 150%, под Windows Mobile (Windows Phone) - на 100%. 

Наиболее востребованы программисты, специализирующиеся на Java (J2ME), – доля соответствующих вакансий составляет 47% от общего числа вакансий для программистов под мобильные платформы. Следом идет программирование на C/C++/Objective-C – доля в 34%. Остальные языки занимают 19% структуры спроса.

Про Objective-C

Оригинал статьи.

Полный текст статьи:

Posted on 2009.06.15 at 10:22

 Пощупал (чисто умозрительно) язык из вотчины Apple. Делюсь некоторыми (строго субъективными) соображениями.

В далеких 80-х появилось два новых языка программирования, основанных на С, и поддерживающих ООП.

Первый, конечно же, C++. Страуструпу понравилась парадигма ООП, с которой он поработал в Simula, и он решал добавить ее в старый-добрый С, который, как известно, всех на свете быстрее. При этом выбор между динамическими штучками и строгой типизацией был сделан в пользу последней, ибо это скорость, а в той же Simula'е не нравился именно этот момент.

Второй язык, герой этого поста -- Objective-C. Тут за основу взяли относительно молодой ОО язык Smalltak с динамической системой типов.

Если попытаться перевести разговор в плоскость C++ vs Objective-C, то разговор будет трудный, ибо, на самом деле, языки очень разные. Возможно, если бы Obj-C родился не в Apple, а в какой-нить другой компании (ага, в AT&T), то сегодня именно он занимал бы место плюсов. А так -- "закрытая" политика компании привела к тому, что об этом языке мало кто слышал, не говоря уже о том, чтобы программировал. Помимо всего прочего, сам язык настолько крепко привязан к API Mac OS X "Cocoa", что программирование на нем вне этого окружения имеет мало смысла (аналогия -- программирование на C# вне .NET).

Главная проблема языка -- довольно высокоуровневую концепцию динамической системы типов прикрутили к очень низкоуровневому языку С (который, очень не далеко ушел от ассемблера). Получилось плохо. Python, Ruby или даже PHP в плане мощи и дуракоустойчивости делают Obj-C как ребенка, разумеется, потенциально проигрывая в скорости, которую можно получить в Obj-C просто путем вставки обычного сишного кода.

Возвращаясь к сравнению с плюсами. Динамические свойства в C++ вообще стремятся к нулю. Рефлекшена как не было, так и нет. Даже в новом стандарте, на который мы все молимся. Правда, миру известны довольно съедобные костыли, вроде того же moc из Qt.
Как язык со статической типизацией, C++ значительно сильнее Objective-C, тут даже не о чем разговаривать, одно слово -- "шаблоны". Плюс всякие другие вкусности, вроде пространств имен или парадигмы RAII ("ку" три раза!).

Более адекватно сравнение Obj-C с молодежью типа Java и C#. Молодежь у нас не динамическая (разве что C# 4.0), но зато с очень развитым рефлекшеном, который кроет Objective-C runtime ну просто как бык овцу. Serialization и remoting сделаны на качественно другом уровне. Плюс нормально работающий честный GC. Плюс generics. Говорить даже не о чем.

Чтобы понять, на каком уровне приходится работать с мета информацией в Obj-C, приведу маленький пример.
Вот функция, которая получает список свойств для класса:

objc_property_t * class_copyPropertyList(Class cls, unsigned int *outCount)

Ага, в outCount вы получите число элементов в массиве, который вам вернут как результат функции. А еще, ни в коем разе, нельзя забывать вызвать free() для этого результата.

Имея такой массив на руках, можно узнать имя свойства таким вот образом:

const char *property_getName(objc_property_t property)

В общем, полагаю, всем все понятно.

Резюмируя -- язык чисто для своих, которые ходят с айподами и думают, что от этого они think different. Судя по количеству приложений в AppStore, оригиналов хватает. Удачи им!

Многозадачность на мобильных платформах

Фанаты каждой платформы шумели и шумели на счет других платформ, но появилась разъясняющая информация, которую и приведу.

Если в двух словах, то и на андроидо-гуглофонах, и на iPhone, и на Windows Mobile 7 - все будет обстоять следующим образом - разработчик делает GUI-часть, которая может вытесняться из ОЗУ с сохранением или без сохранения состояния + разработчик делает часть, которую можно назвать как Service. Service работает постоянно, при любых условиях. ПОМИМО этого - вроде во всех трех платформах будут или уже есть - всплывающие сообщения/уведомления о фоновых задачах.

А если более подробно, то про Windows Phone 7 написано здесь, а по другим двум платформам попался на глаза такой комментарий в Интернете:

"> Коллеги, а как организованна многозадачность в андроиде?


упрощённо, есть два вида сущностей в приложении: Activity и Service.

Первое - полная аналогия с тем, что делает сейчас Apple. Activity фризится (если уходит в фон) и если требуется свободная память - выгружается. При повторном обращении пользователя, оно либо снова запускается, либо экземпляр пересоздаётся и запускается с нуля.

Service имеет право работать в фоне всегда. Поэтому относительно серьёзные приложения создаются в виде пары клиент (кучка Activity)-сервис (Service). Service ограничен только фантазией разработчика. Хошь в фоне считать число Пи - считай.

Ещё есть broadcast recievers и content providers. Они существуют только в момент определённых вызовов: получения Intent (грубо говоря, сообщения) и обращения к данным соответственно."

И вот еще несколько любопытных комментариев:

"Мда, чувствую что свою нокию (симбиан - многозадачен), менять кроме как на андроид больше ни на что не захочу.... Есть еще другие Linux-based, но они пока в зачаточном состоянии...."

"Делаем на iPhone джейлбрейк и скачиваем из Сидии Бэкраундер. В итоге получаем 100%-но полную многозадачность. Программы переключать, как вкладки в Safari листать. Работает абсолютно для всех программ, прям как на компьютере. Минус тока один, при запуске нескольких мощных приложений может начать жутко тормозить, ибо оперативная память не резиновая."

"> Итог: на сегодняшний день Windows Mobile 6.5.x по-прежнему остаётся единственной полноценной многозадачной системой для мобильных устройств.

не порите чушь. Блакбери ОС занимает доминирующее положение на американском рынке смартфонов и поддерживает до 64 задач в паралель.
"

Флешумобилкапец?

Публикация в блогах - "Война Apple versus Adobe: использование Flash ® для разработки приложений под iPhone® запрещено".

Полный текст публикации (перед прочтением запастись попкорном):

"Война Apple versus Adobe: использование Flash ® для разработки приложений под iPhone® запрещено
Сегодня компания Apple пересмотрела лицензионное соглашение для разработчиков iPhone (iPhone Developer Program License Agreement) с целью окончательно и бесповоротно придать анафеме преобразователи  двоичного ABC  (ActionScript bytecode) кода в двоичный ARM код, то есть в исполняемый код  iPhone.
На протяжении всего 2010 года, исполнительным директором Apple Стивом Джобсом (Apple CEO Steve Jobs) не раз были выдвинуты четкие и понятные заявления о том,  что они (компания Apple) не любят Adobe. Ну просто таки совсем не любят. Результатом такой открытой нелюбви стало то что новое устройство  iPad полностью лишено поддержки Flash и в качестве альтернативы предполагается внедрение и использование HTML5.
Все уже давно знают, что меньше чем через неделю Adobe выпустит Creative Suite 5, в инструментарий Flash которого входит утилита конвертор, позволяющая коросс-компилировать под такие устройства как iPhone и iPad, что позволит разработчикам создавать приложения,  используя Flash и переносить их на iPhone.
Нововведение в лицензионное соглашение для разработчиков iPhone, которое входит в выпущенный недавно iPhone OS SDK для разработчиков решительно меняет все. Изначально же часть 3.3.1 состояла всего лишь из одного короткого предложения. Сейчас же добавилась еще парочка.
Теперь формулировка норм выглядит так:
3.3.1 — Можно использовать только документированный программный интерфейс приложения (API) и только предписанным компанией Apple образом без какого либо использования сторонних программных интерфейсов приложения (API) или их вызовов. Изначально все приложения должны быть написаны на Objective-C, C, C++, или JavaScript и исполнятся на движке iPhone OS WebKit, и только код написанный на C, C++, и Objective-C можно компилировать и использовать для прямого доступа к документированным программным интерфейсам приложения (API) (e. g.  приложения ссылающиеся на документированные API посредством преобразованного для совместимости кода или использование других схожих утилит запрещены. )
В общем, с этого места об Apple app store можно забыть!  Ударим Jailbreak-ом по iPhone! Кстати, никто случайно не знает как сломать iPhone с прошивкой версии 3.1.3 (7E18) залоченного под  AT&T модели MC135LL и модемом 05.12.01 при версии загрузчика 6.4 ?"

Остается добавить, что под Windows Mobile предыдущей версии флеш-плагин не был выпущен (и не будет), но компания грезит выпустить свой плагин к Windows Mobile 7.

Итого - окончательно еще эту мобильную инициативу от Adobe - еще не зажали в углу, компания трепыхается как может... Да, и Стив Джобс вроде не видит и Java на своей платформе... Вот такой Objective-Джопс...

UPD 1. Публикация в новостях - "Adobe впервые признала соперника в лице Apple".

UPD 2. Публикация в Компьютерре - "Правило 3.3.1: за что выгоняют из App Store".

Что нужно для победы Linux?

В последнее время вышли 3 книги, переведенные на русский язык, по ядру Линукса. Достаточно увлекательные. По этому поводу - текст далее.

Если бы еще кто-то прислушался к моему мнению, что нужно переходить от С к чему-то, напоминающему Objective-C, то я бы даже попробовал спрогнозировать, когда придет ОН.  зомби  :)

Тут еще будет такой фактор - когда Oracle, купивший Sun, смог бы, в таком случае - "перевентить" средства разработки (по крайней мере на это нужно пару лет, при всех мощностях Oracle).

Пока этого всего нет и "будущее туманно".