kika: (Default)
[personal profile] kika
Major leap forward - операционная система на iPhone из PalmOS превратилась сразу в Windows 3.1 !

Date: 2010-04-10 11:55 am (UTC)
From: [identity profile] mff.livejournal.com
Тоже подумал про win3.1

Date: 2010-04-10 12:24 pm (UTC)
From: [identity profile] xfyre.livejournal.com
ну, это все-таки некоторое преувеличение, если объективно :)

треды-то там, например, были с самого начала, да и многозадачность была, просто не для 3rd party apps.

(да и вообще сравнивать мобильные платформы с десктопными некорректно, но это чуть отдельная тема)

Date: 2010-04-10 12:33 pm (UTC)
From: [identity profile] kika.livejournal.com
да и многозадачность была, просто не для 3rd party apps

Ну то есть не было. Как и приборов, которые мы никому не покажем.

да и вообще сравнивать мобильные платформы с десктопными некорректно

Care to elaborate? Чем дальше в лес, тем больше функционала десктопных приложений перебирается в карманы. Функциональность железа и ОС следует за этим трендом вынужденно. Да, тупо переносить некоторые решения с десктопа в карман бессмысленно (например фуллсайз клавиатуру и мышь), но это не значит что не надо разрабатывать им адекватные заменители, а не просто тупо кастрировать прикрываясь "народу это не надо".

Date: 2010-04-10 07:44 pm (UTC)
From: [identity profile] xfyre.livejournal.com
да и многозадачность была, просто не для 3rd party apps

Ну то есть не было. Как и приборов, которые мы никому не покажем.


есть определенная разница между отсутствием многозадачности by design (DOS vs. Win3x) и невозможностью использовать ее сторонними приложениями (очевидно искусственное ограничение, которое тоже было введено из вполне рациональных соображений)

да и вообще сравнивать мобильные платформы с десктопными некорректно

Care to elaborate? Чем дальше в лес, тем больше функционала десктопных приложений перебирается в карманы. Функциональность железа и ОС следует за этим трендом вынужденно. Да, тупо переносить некоторые решения с десктопа в карман бессмысленно (например фуллсайз клавиатуру и мышь), но это не значит что не надо разрабатывать им адекватные заменители, а не просто тупо кастрировать прикрываясь "народу это не надо".


это не про "тупо кастрировать", а про другие usability patterns. и про разработку адекватных заменителей - судя по анонсу версии 4.0, эппл с тобой вполне согласен. просто для них вполне очевидный приоритет - удобство массового юзера. поэтому, например, в первом айфоне с технической точки зрения все что можно было зарезать - было зарезано под самые помидоры. принцип тут очень простой - если некая продвинутая фича может негативно повлиять на стабильность/позитивный user experience, нахуй эту фичу, пока мы не придумаем как сделать это правильно. вот они и делают.

их логику вполне можно проследить, если посмотреть последовательно разницу между 2G, 3G, 3GS и анонсированной четверкой. это совсем не про "народу это не надо", а скорее про "мы это до конца не продумали, у кастомеров могут вылезти проблемы тут, тут и тут, потребность в этой фиче есть у 5% потенциальной аудитории, поэтому НАМ это пока не надо, лучше подумаем еще и сделаем как следует".
Edited Date: 2010-04-10 07:44 pm (UTC)

Date: 2010-04-11 09:42 am (UTC)
From: [identity profile] cameloid.livejournal.com
ну а что, маркетинг у них работает отлично. продать одну и ту же технологию столько раз - это тоже надо уметь. "теперь банановый!"

а с мультитаскингом, мне кажется, ботлнеком тупо было железо. я немного ковырялся с хакнутым iPhone 2G (судя по видам, открывающимся из командной строки, там внутри что-то типа Open/FreeBSD) и, конечно, с точки зрения ОС там нет вообще никаких проблем с многозадачностью. но даже на выполнении нескольких консольных приложений деваййс тормозил так, что страшно подумать, как выглядели бы 2-3 GUI-программы, работающие одновременно. видимо, на более современных процессорах с этим стало полегче.

кроме того, как пользователь айфона могу сказать, что важность этого мультитаскинга сильно преувеличена так называемыми блоггерами. там же не многооконный GUI, и по факту в каждый момент времени пользователь все равно взаимодействует с контекстом только одного приложения. нормально написанный софт умеет вполне адекватно сохранять/восстанавливать свой стейт. фактически, неудобства возникают лишь со специфическим софтом, типа "нештатных" плееров, вроде всяких iRusRadio или SPB TV. есть еще мессенджеры, но с точки зрения экономии батарейки push notifications гораздо эффективнее, чем приложение с какой-то сложной логикой, висящее в бэкграунде и жрущее CPU. в общем, проблема многозадачности на айфоне во многом высосана из пальца, как мне кажется. что, впрочем, не отменяет того факта, что с ней лучше, чем без нее.

Date: 2010-04-11 08:09 pm (UTC)
From: [identity profile] kika.livejournal.com
там внутри что-то типа Open/FreeBSD

Оно и есть. Не совсем один в один, но для юзера и программиста это Фря.

но даже на выполнении нескольких консольных приложений деваййс тормозил так, что страшно подумать, как выглядели бы 2-3 GUI-программы

Как-то это странно. Тасксвитч сам по себе недорогая операция. Возможно раннее железо просто не имело совсем никакой аппаратной поддержки оного и все приходилось делать руками, что на небыстром процессоре доставляло. С другой стороны, системные процессы-то там вполне тасксвитчатся.

там же не многооконный GUI

Многооконный и не надо. Достаточно сделать как сделано у Pre, мне (по крайней мере на эмуляторе) очень нравится. Многозадачность (за пределами очевидной необходимости в поддержке IM) мне лично нужна, я например иногда пишу заметки, поглядывая в почту. Очень неприятно писать в нотепаде, постоянно его закрывая и запуская небыструю почту. Приходится писать как бы ответ на письмо, а потом копипастить, что попахивает немного идиотизмом.
Push notifications насколько я понял реализованы тоже через поллинг. Что жрет трафик и батарейку совершенно без всякого смысла.

А ждущее приложение фактически бесплатно. Программа, заснувшая на блокирущем сисколле, не стоит н-и-ч-е-г-о. Кроме занимаемой памяти, если система не поддерживает своп.

Date: 2010-04-11 08:53 pm (UTC)
From: [identity profile] cameloid.livejournal.com
Как-то это странно. Тасксвитч сам по себе недорогая операция.

тасксвитч конечно недорогая. я имел в виду приложения, которые все-таки что-то делали в фоне, а не просто висели в idle. вообще, ARM не самая производительная архитектура-то, а там еще и системных процессов немало - на приложения остается не так много.

Push notifications насколько я понял реализованы тоже через поллинг.

ну не совсем поллинг. там просто держится persistent connection с эппловским сервером, и если приходит notification, то сервер шлет клиенту сообщение. но наверное они еще обмениваются иногда какими-то keepalive-пакетами.

А ждущее приложение фактически бесплатно.

ну это требует определенной культуры программирования. вообще instant messenger занимается много чем, даже когда выполнятеся в фоне - шлет пинги серверу для поддержания presense-статуса, обрабатывает всякие события от сервера (типа, десериализует пакетики, пересортировывает и перерисовывает контакт-лист, если кто-то из контакт-листа изменил presense-статус и т.д.). то есть это все-таки менее тривиальная логика, чем просто ждать пакет от сервера, как в случае с push notifications.

Date: 2010-04-11 09:00 pm (UTC)
From: [identity profile] kika.livejournal.com
менее тривиальная логика, чем просто ждать пакет от сервера, как в случае с push notifications.

Можно подумать что push notifications будут вместо приложения "пересортировывает и перерисовывает контакт-лист, если кто-то из контакт-листа изменил presense-статус и т.д" :-)
Никто не мешает приложению, если оно ушло в фон, перестать заниматься всем этим housekeeping'ом (ибо его все равно никто не увидит), и обрабатывать только реально важные события.

Push notifications - это многозадачность для бедных. Вместо того чтобы самому спать на select()'е, мы поручаем это системе, которая покажет нам кино окно и запустит наше приложение заново. А оно в свою очередь восстановит свой контекст из заботливо сохраненных данных. То есть все тоже самое что при обычной преемптивной многозадачности, только все-все делаем сами и вручную.

Единственное что при этом существенно экономится - это оперативная память, потому что свопа-то у нас нет.

Date: 2010-04-11 09:31 pm (UTC)
From: [identity profile] cameloid.livejournal.com
Можно подумать что push notifications будут вместо приложения

запустившись, приложение частично восстановит стейт само, частично получит недостающие данные от сервера.

Никто не мешает приложению, если оно ушло в фон, перестать заниматься всем этим housekeeping'ом (ибо его все равно никто не увидит), и обрабатывать только реально важные события.

ну, это только теоретически так. :) в реальной клиент-серверные протоколы того же IM (известные мне, во всяком случае) обычно не расчитаны на сценарии типа "сервер, я тут пойду посплю - присылай мне только вот эти события" или "сервер, я тут просунлся - расскажи, чего тут было без меня". так что сервер будет слать в коннекшн всё подряд, и чтобы отличать важные пакеты от неважных нужно обрабатывать абсолютно все (что само по себе может быть не очень дешево, особенно если там еще криптография или надо парсить какой-нибудь XML). кроме того, все события (даже если и не визуализировать их) все равно надо складывать в некую очередь и как-то менеджерить ее (чтобы при выходе из айдла не разбирать все накопившиеся события, а получить актуальное состояние). и т.д..

то есть решения, конечно, есть (особенно если писать какой-то софт с нуля и изначально заморачиваться под мобильные платформы), но боюсь, что в реальности во многих случаях дешевле поддержать тупые push notifications. :)

Date: 2010-04-12 04:57 am (UTC)
From: [identity profile] xfyre.livejournal.com
так ограничения на многозадачность и были сделаны из соображений экономии памяти, насколько я понимаю. а почему их эппл так странно озвучивал - хз, чужая душа потемки.

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 17th, 2026 07:31 pm
Powered by Dreamwidth Studios