Как стать автором
Обновить

Комментарии 179

Сразу вспомнил браузер Opera и его знаменитый файлик browser.js, который фиксил работу разных сайтов (среди которых, кстати, было много гугловских сервисов). Вот даже на Хабре нашел старый пост.
По правде говоря причины существования его были две (был доклад по-моему на одной из конференций, вроде вот этот habr.com/company/opera/blog/195124):
1) Некоторые сайты по User-Agent детектили оперу и запрещали доступ (или как-то иначе влияли на поведение ресурса).
2) Несовершенство самого движка Presto. В нём было было очень много всяких багов и артефактов, так что пришлось фиксить сами сайты. Зачастую это проще было. А уже потом, в спокойной обстановке можно было разобраться в первопричинах проблемы.

Немного историй из своего опыта: Делали полифилл для вебсокетов с фоллбеком на в-то-ещё-время-живой-Flash. Каково же было моё удивление, когда в одной из минорных версий в Opera 12.хх появилась поддержка этих самых вебсокетов! Почти что полноценный объект в неймспейсе window! Молодцы, подумал я… За одним исключением… Вызов любого метода ничего не делал или возвращал сообщеньку о том, что это ещё не реализовано. С проверкой на поддержку этих самых вебсокетов, помнится, мы потратили уйму нервов.
НЛО прилетело и опубликовало эту надпись здесь

Опера была прекрасна, ятакщетаю. У нас в коде (старый и развесистый JavaScript фреймворк) до сих пор такие перлы встречаются:


function constructor() {
    // Opera has some problems returning from a constructor when Dragonfly
    // isn't running. The || null seems to be sufficient to stop it misbehaving.
    // Known to be required against 10.53, 11.51 and 11.61.
    return this.constructor.apply(this, arguments) || null;
}

И это ещё не самый забавный. Что там с поддержкой CSS творилось, мамадорогая. Лично знаю непьющих обычно людей, для которых новость "Опера — всё" была поводом крепко отметить. :)


Круче было только, когда провожали в последний путь IE6/IE7...

Ну в IE6 все баги хотя бы документированы были, а в опере — сдвинешь дивчик на один пиксель и всё нахрен раскорёживало. Я бы вообще выстроил вот таким образом всё:
1) Opera
2) Safari
3) IE6

Где IE на самом последнем месте из этой троицы забагованных по принципу «непостижимости багов». Там достаточно было придерживаться пары правил и всё. Нормально сверстаешь и никаких проблем.
Ну в IE6 все баги хотя бы документированы были,

Судя по всему, у вас был очень… эээм… оптимистичный опыт работы с IE6. :) Но в целом я соглашусь, этот браузер был гораздо предсказуемее той же Оперы. Старый Safari это отдельная песня (да и свежий тоже), но королём на пьедестал я бы поставил IE7.


Когда-то я мог книжки писать про этот браузер, в жанре хоррор. Сейчас уж только отдельные истории вспоминаются, навроде той, когда мне пришлось две недели ковыряться в потрохах браузера, чтобы найти баг, из-за которого у кустомера рушилось приложение по Invalid Access Error в msthml.dll. :) Помогли смекалка, помощь известной матери и слитые когда-то "на всякий случай" исходники Windows 2000. Помните, пробегали по сети в начале века? Там, конечно, код от IE 5.5 был, но я сопоставил с ассемблером от IE7 и оказалось похоже. Настолько, что и баг нашёлся, и способ его обойти в CSS тоже…


Но мороз по коже до сих пор, как вспомню.

Судя по всему, у вас был очень… эээм… оптимистичный опыт работы с IE6. :)


Ну у меня и от IE7 самые приятные чувства были после IE6, я ещё тогда в школе учился. Ну как же, нативная поддержка PNG без всяких чит-фиксов и можно было больше не извращаться с подгонкой гифок со скруглёнными уголками под фон =) (ну и табы добавили конечно же)

По сравнению с тем, как всё распид… кхм… разносило вёрстку в Опере (вроде как тогда 9ая была) по самым непредсказуемым случаям, да, IE был ещё норм.

Вообще, мне кажется что IE невзлюбили тупо за отсутствие в нём обновлений. Когда весь мир уже поддерживает какую-то мифическую «технологию Х» (например, отрицательные марджины), а IE, которому сто лет в обед, который не обновляется и всё ещё популярен, и просто не поддерживает эту фичу «Х» — конечно, в таких случаях его начинаешь потихоньку ненавидеть.

Тогда ещё FF был. Версия 3.5 — бомбезная. Но его можно не упоминать, там просто всё брало и работало без всякого лишнего шаманства. Иногда правда с inline блоками косячки, но фиксились они довольно оперативно парой строчек и никому не мешали потом.
Ну у меня и от IE7 самые приятные чувства были после IE6

Это скорее потому, что у нас с вами разный профиль. Я вёрсткой занимался постольку-поскольку; основной идеей нашего фреймворка всегда было дать возможность программистам строить приложение в JavaScript коде, не заморачиваясь на веб-специфику. Подобно Java, но на JavaScript: написано однажды, работает в любом браузере.


Ну, это в теории так. На практике всё это работало с большим скрипом, в т.ч. из-за разницы между браузерами и количеством багов в оных. Сколько седых волос на заднице было вырвано из-за кривой поддержки border-box в IE6/IE7, багов с position: relative, поломанного position: fixed, багов с обсчётом высоты элемента… Ну и т.д., и т.п. С утечками памяти, "unspecified error" при фокусировании и "проблемой 1.8 гиг" до сих пор бодаемся и в IE11 тоже.


Плюс практически полное отсутствие отладочного инструментария до IE8 включительно. Firebug? Курам на смех. DevTools for IE6? Совсем плохо. В общем, лучи поноса и ненависти IE получал и получает вполне по заслугам даже при отсутствии автоматических обновлений. Safari вот до сих пор обновляется по праздникам только, вместе с системой. А ничего, кривенький конечно браузер, но не так, чтобы очень. До Chrome/Android ему далеко-далеко...


Про Firefox ничего такого ужасного вспомнить не могу, кроме вечных неприятных косяков с обработкой pointer-events при фокусировании элементов. Но вроде починили уже, давненько не видел. И безобразно кривую поддержку фокусных событий тоже починили уже, хоть мозильщики и упирались рогом, пока я их с хромщиками лбами не столкнул… Гора с плеч и большой кусок корявого кода на выброс.


А вообще тема статьи мне близка и понятна. Чего только не сделаешь ради совместимости со всем, что движется. :)

НЛО прилетело и опубликовало эту надпись здесь
Когда-то я мог книжки писать про этот браузер, в жанре хоррор. Сейчас уж только отдельные истории вспоминаются, навроде той, когда мне пришлось две недели ковыряться в потрохах браузера, чтобы найти баг, из-за которого у кустомера рушилось приложение по Invalid Access Error в msthml.dll. :) Помогли смекалка, помощь известной матери и слитые когда-то «на всякий случай» исходники Windows 2000. Помните, пробегали по сети в начале века? Там, конечно, код от IE 5.5 был, но я сопоставил с ассемблером от IE7 и оказалось похоже. Настолько, что и баг нашёлся, и способ его обойти в CSS тоже…

Книжку не обязательно, но хотя бы хабрапосту с разбором того бага я бы весьма обрадовался.

Спасибо за интерес, но вряд ли получится. Сейчас из любопытства пробил по нашему трекеру, оказывается дело было в феврале 2013 (а не в мае, как мне почему-то помнилось). И если верить трекеру, то процесс занял неделю (а не две, как мне почему-то запомнилось). В компании с потрохами IE время растягивается и искажается...


В pull request вот такое мелкое изменение:


(было)


// This empty div solves an IE6/7/Quirks problem where the margin-top
// on the bodyEl is ignored. Best we can figure, this is triggered
// by the previousSibling being position absolute (a docked item).
// The goal is to use margins to position the bodyEl rather than
// left/top since that allows us to avoid writing a height on the
// panel and the body. This in turn allows CSS height to expand
// or contract the panel during things like portlet dragging
// where we want to avoid running a ton of layouts
// during the drag operation.
(Ext.isIE7m || Ext.isIEQuirks) ? '<div></div>' : '',

(стало)


// ...
// This empty div also has to be relatively positioned,
// otherwise it crashes IE6-9 Quirks when panel is rendered
// in a table-based layout.
(Ext.isIE7m || Ext.isIEQuirks) ? '<div style="position:relative"></div>' : '',

С удивлением обнаружил, что баг был не только в IE7, но и в других версиях тоже. Помню, что отлаживал на IE7. Почему? Скорее всего, кустомер на этой версии баг словил. А может, ещё по какой причине. Давно дело было.


Про сам баг припоминаю, что где-то в методе, обсчитывающем позиционирование элементов, происходило обращение к контексту позиционирования для этого <div>, а контекст почему-то не был инициализирован. Отсюда и NPE. Добавив position: relative я форсировал создание этого контекста для данного элемента, и проблема была решена.


А вот деталей на годный хабрапост я уже и не вспомню. :(

А можно название вашего продукта? Я так понимаю, какой-то большой фреймворк типа jQuery и аналогов?

Ext JS, очень большой фреймворк. Около 1.5 млн строк JavaScript + SASS.

Посмотрел, выглядит очень круто)

Конкретный вопрос — допустим, я хочу использовать этот фреймворк в связке с некоторым бэкэндом. В бэкенде много данных (реальное приложение, не демка). Как организована подгрузка данных? Там сказано что-то про минимизацию числа round-trips, но хотелось бы деталей. Надеюсь, код фреймворка не станет при старте грузить на клиент абсолютно всё?)

С другой стороны — а если не станет, как быть с поиском и сортировкой данных, не очень понятно.

Загрузку данных можно делать по-разному, в каких-то случаях имеет смысл загрузить весь набор данных, в каких-то нет. Фреймворк умеет работать с разрозненными данными и подгружать страницы по необходимости. Поиск и сортировка тоже могу происходить либо на клиентской стороне, либо запросом на сервер. Один из наших клиентов использует Ext JS для визуализации/поиска по базе данных размером около 7 млрд записей. Это самый большой пример, который я видел, могут быть и другие.


Документации у нас много и она довольно подробная: quick start guide.

Не очень понял, как у вас сошелся дизассемблированный код, если разные компиляторы выдают весьма разное? И как именно вы отыскали баг среди такой значительной кодобазы, даже не зная конкретно что хотите найти?
НЛО прилетело и опубликовало эту надпись здесь

Почему вы решили, что компиляторы были разные? Наоборот, у меня были все основания предположить, что для всех продуктов Microsoft используется компилятор производства Microsoft же. Какой смысл использовать что-то ещё? К 1999, когда выпустили IE 5.5, MSVC был уже матёрым и обкатанным компилятором, в который вряд ли будут вносить радикальные изменения. Обе версии IE были 32-битными, что тоже помогло.


А дальше всё (относительно) просто: есть пример с минимальной HTML/CSS/JavaScript разметкой, стабильно воспроизводящей баг. Проблема где-то в mshtml.dll, это видно из сообщения об ошибке. Ставим MS Visual Studio, оно добавляет системный обработчик ошибок с возможностью открыть программу на шаге, вызвавшем исключение. Вокруг этого шага есть дизассемблированная каша и немного ключевых слов: названия методов и т.д.


Я не помню, удалось ли мне найти и поставить отладочные символы для IE; скорее всего нет, иначе не потребовались бы пляски с бубнами вокруг исходников Win 2000. Но проблема была где-то в коде mshtml.dll, который, как я предположил, между IE 5.5 и IE 7.0 менялся несущественно. Мне ещё зверски повезло, что в "слитом" коде были исходники mshtml.dll, там вообще не так, чтобы очень много интересного было. Вовсе не "полные исходники Windows 2000", как об этом в своё время жужжали на всех углах. :)


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


Это я сейчас по памяти рассказываю, возможно что-то и не совсем так шло. Почти 6 лет назад дело было, да и баг был хоть и заковыристый, но далеко не самый важный/сложный, так что обращать на него много внимания не было смысла. Так, страшилка "из былого", чтобы было о чём с коллегами языками почесать за пивом. :))

>Где IE на самом последнем месте из этой троицы забагованных

Те кто писал собственный парсер CSS/view machine, будут категорически с этим не согласны.
IE на столько странно отображал багованные страницы (и некоторые CSS), что никакой логике не поддается.

А у юзеров только один критерий -> «ничего не знаю, в explorere мой ХТМЛ отлично виден, так что исправляйте ваш кривой вьювер».

Не помню уже какая контора, собирала подписи под петицией микрософту — «или делайте обработку багованных ХТМЛ по стандартам или хотябы дайте описание вашей обработки багов».
Неужели Опера была настолько плоха? Я в то время не вникал в работу браузера, но все проблемы почти всегда решались сменой user agent на «firefox». И гугл, до этого утверждавший, «что живой поиск в вашем браузере работать не будет», начинал его демонстрировать без ошибок. Это был самый яркий (врезался в память) пример того, что Оперу обижают незаслуженно.

Так вот, не глючила ли Опера как раз потому, что все сайты пытались исправлять баги, которые уже исправили разработчики движка?

Или всё-таки browser.js патчил каждый второй сайт в интернете?

Или всё-таки глючили старые версии, но никто из веб-мастеров не разбирался и не давал шанса новым версиям?
Я так понял, люди пишут про версии 9-10. Я пришёл в Оперу начиная с 11-ой альфы, и с этого момента багов никаких не ловил — ни у себя, ни на сайтах (пока Опера поддерживалась).
а в опере — сдвинешь дивчик на один пиксель и всё нахрен раскорёживало

Почему-то ни разу с подобным не сталкивался. Сверстал просто кучу сайтов в 2011-2015 годах под Оперу версий 11.50 — 12.16. Всегда всё вело себя идеально в соответствии со стандартами и ожиданиями…
А он и после перехода на моргалку никуда не делся, разве что покороче стал. Но, как и раньше, больше всего проблем с сервисами гугла. Кажется, треть их была из-за голубизны самих гугловцев — «увидел OPR в агенте — падай с громким матом».
Вспомнилось как хром меня бесил на ноуте с дискретной Nvidia GT620M — на десятой винде он принудительно использовал ее несмотря на добавление хрома в исключения в панели управления Nvidia, правда потом все же проблема решилась с выходом обновы для хрома
Как раз отсюда и идет популярная теория о том, почему не было Windows 9 — заплатки начнут работать как в DOS.
мне кажется, это какая то примета. типа как число 4 в китае.
о! нашел
Подобно числу четыре, которое имеет в китайском языке «несчастливого» двойника, в Японии боятся числа 9, поскольку оно звучит так же, как и слово «мучение» или «страдание»

а ведь windows 4, кстати, назвали windows NT :)

Windows 4 называется все таки Windows 95. NT это вообще отдельная ось, которой прикрутили программную совместимость и похожий интерфейс с веткой Windows 3.x. Да и если говорить о магии чисел, то Windows NT 4 очень даже существовала.

да. точно. NT — это 3.5 по внутренней нумерации
забыл уж про неё
Версия, возвращаемая Windows 95 — 4.0, но и версия, возвращаемая Windows NT 4.0 — тоже 4.0. Не думаю, что китайские предрассудки сильно волновали Microsoft в те годы.
Этот код появился в Java из-за применения антипаттерна «запихаем информацию в String в свободной форме, а потом будем его парсить». А Windows 95 легко отличался от NT4 по полю dwPlatformId в OSVERSIONINFO.
А как же NT 3.5? Напоминает глупую байку об устройстве con и прозвище БГ.
PS. Вот так не обновишь комментарии… В 95 ядро 4 и в NT 4 ядро 4, потому и NT
однако Palm 4 не было именно по причине приметы. притом официально
В немецком «9» звучит точно так же как «нет». Поэтому чего «нет», того нет.
всё больше «вроде бы правильных» гипотез :)
В немецком 9 — нойн. нет — найн.
Не так уж и похоже.
НЛО прилетело и опубликовало эту надпись здесь
да уж. десятка не радует. порой в wine работает повеселее.
Так Vista же dx10 притащила, 11 появилась на семерке же?
Кажется при релизе да, дх10, но и 11 потом стал доступен под висту. А под ХР не стал.
В статье говорилось что дх11 была основной фичей висты на «старте», т.е. по факту автор статьи немного ошибся. (скорее перепутал 10 и 11 версии, так как коробки с надписью «Ready for Windows Vista and DirectX10» действительно были)
Подводит память :)
DirectX11 был одной из основных фич Vista
Точно? DirectX 11 в Vista появился лишь после выхода Windows 7.

Windows 7 — 22 октября 2009 года
28 октября 2009 года DirectX 11 стал официально доступен для Windows Vista
Люди которые привыкли все поставлять по принципу As is ругаются на неполноту документации…
>> С другой стороны, не понятно почему они были угроханы в фиксы в кодовой базе Хромиума, а не драйверов или ОС (ведь у Гугла там достаточно высокий уровень контроля всего на всех этапах).

Быстрый просмотр показывает что тут глюки не Андроида, а конкретных GPU на конкретных драйверах. Пихать эти фиксы в ядро ОС, как то не очень правильно. Тем более, что пока вендоры обновят версию Андроида, телефоны уже успеют пять раз устареть и выйти из оборота.
Не «пихать эти фиксы в ядро ОС», а «пихать эти фиксы в ядерный драйвер конкретного GPU». И именно там всем этим костылям и место.

Но гугл тотально зафакапил обновление андроида на девайсах пользователей, поэтому не может запихать фиксы туда куда их надо запихать, а вместо этого пихает куда получается, заодно заставляя заниматься этим же разработчиков другого софта, которые тоже наступают на эти баги.
Разве гугл пишет драйвера для GPU? ЕМНИП, этим занимается создатель видеокарты.

Ответ на ваш вопрос содержится в посте. Вместо починки того софта в котором содержится баг, гугл предпочитает ввернуть еще немного подпорок в хром.

По вашему разработчик видеочипа будет править свои драйвера, а потом ещё просить производителей телефонов, чтобы они по новой сделали обновление для всех телефонов, только потому что-то у гугла в хроме пиксель не того цвета?
Ну вообще, в идеальном мире да. Ведь Хром сделал верные GPU-вызовы, которые должны привести к отображению пикселя вполне определённого цвета. Но этого не происходит. Значит, где-то в цепочке «Хром ->… -> драйвер видеокарты» есть ошибка. И если она-таки в драйвере, то его хорошо бы исправить. Ведь, поскольку это очень низкий уровень, это скорее всего не просто «один неправильный пиксель в хроме», это «неправильные цвета в случайных местах во всех приложениях в системе». Т.е. ошибка достаточно фундаментальная, просто обнаружили её в Хроме.
В том то и дело, что это в идеальном мире. В реальном же мире всё гораздо сложнее.
Даже если починят GPU-драйвер, будет самсунг делать из-за этого новую сборку операционки для S4, если они для него даже сам андроид после 5 версии не обновляют? Думаю вы понимаете, что ответ — нет. А мне как конечному пользователю на это наплевать, поэтому позиция разработчиков Chromium тут понятна и вполне логична.
В таком ключе да.
и именно в этом и факап гугла как разработчика андроида. Почему-то я до сих пор могу драйвера написанные в начале 2000х для winxp установить на win10 — и, в том числе, и обратный процесс тоже возможен (и даже иногда всё работает). А супер-пупер современный аппарат на андроиде превращается в тыкву через год после выхода в продажу — просто потому что всё, никаких апдейтов (включая апдейты безопасности — и это тоже факап именно гугла).

И вот эти костылики для андроида гугла в хроме от гугла очень красиво смотрятся. Симптоматично, я бы сказал.
и именно в этом и факап гугла как разработчика андроида.

Это не факап, это бизнес-модель: одноразовость телефонов заложена в процесс, как основной двигатель продаж. Зачем обновлять софт на старом телефоне, если можно вынудить пользователя купить новый?

Проблема в том, что в итоге пользоваться такими смартфонами банально опасно. Просто потому что шансы получить вирус с каждым днем после выхода смартфона только растут, а шансы получить заплатку — падают. И честно — меня это пугает…

Если вы посмотрите на ситуацию с другой стороны, то увидите: это вовсе не проблема, а отличная возможность продать вам новый телефон!


Зацикленность покупателей на марку это известный факт; люди, купившие один телефон на базе Android, с большой долей вероятности купят следующий тоже на Android. Поэтому и баги, и вирусы, и дырки в безопасности, и новостная шумиха вокруг этих дыр — всё играет в одни ворота. Человек обеспокоенный есть человек склонный к покупке.


А если это вас пугает, переходите на iOS. Там других косяков полно, но хотя бы с безопасностью получше и железки не настолько одноразовые.


Ну, или вообще не пользуйтесь смартфонами. Я вот не пользуюсь и отлично себя чувствую. :)

основная причина, почему я польззуюсь айфонами)
надоело каждые два года новый андроид покупать. а последняя ось под айфон спокойно на 5s(вышел 5 лет назад) запускается, причем не ухудшая производительности.
НЛО прилетело и опубликовало эту надпись здесь
ну тут как бы юзабельность различается в для обычного человека:
— Условно- рыться в 4пда, что-то там ручками качать, править, переживать
— Нажать 2 кнопки

Какой вариант выберет 99% пользователей?
У вас видимо какой то особенный айфон, у меня куча знакомых с 5s, которые после 9тки перестали обновляться специально, потому что с каждой итерацией операционной системы общая стабильность и «комфортность» устройства снижается.
Есть такое дело. Многие поэтому пропустили 11-ю, оставшись на чем-то более ламповом. Сейчас читают отзывы «как iOS12 оживила %device_name%»
Потому что не у всех есть деньги и желание покупать новый?)

Ага. Вот вам пример: https://bugzilla.redhat.com/show_bug.cgi?id=494390


Обычный пользователь жалуется на проблему с железом поставщику операционки. Информация передается разработчику драйвера. Тот чинит драйвер, фикс драйвера включают в ядро. Потом выходит новая версия ядра с исправленным драйвером. Потом ядро обновляют в дистрибутиве пользователя. Пользователь устанавливает обновление. Все счастливы.


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

НЛО прилетело и опубликовало эту надпись здесь
Можно пофиксить впаяв переменный резистор в провод вентилятора.
Не пишите ересь, это же хабр.
Нужно сделать систему мониторинга, с датчиками температуры, влажности, шума, углекислого газа с системой реального времени и логгированием. Светодиодная (цветовая) индикация режима работы плюс зуммер, как запасной канал оповещения о пожаре. Всё это делается не на ардуине (тьфу, как можно), а как минимум на STM (только на RTOS), а ещё лучше на малинке. Обязательно вставить возможность реалтайм обновления прошивки без перезагрузки. Запасной вариант — ввод новой прошивки через подключение USB клавиатуры. Контроль вводимых символов светодиодом. Азбукой морзе. Модифицированной, конечно, светодиод же цветной.
Впаять резистор. Ересь.
НЛО прилетело и опубликовало эту надпись здесь
То что такой сценарий невозможен с андроидом — недостаток экосистемы андроида, исправить который гугл вполне бы мог.
Не «мог бы», а «может». И исправит. Со временем.

Ссылку на известный опус тут уже приводили — но не объясняли почему всё так, как оно есть… А это, на самом деле, просто: смартфоны, вы не поверите, всё ещё разрабатывают компании, которые телефоны разрабатывали десятилетиями. И SOC'и для них всё ещё разрабатывают компании, которые эти SOC'и разрабатывали десятилетиями. Потому описанный по вышеприведённой ссылке «абсолютный водопад» — это единственное подо что они заточены. Раз выпущенный драйвер правится только тогда же, когда правится с тормозами какой-нибудь Тойоты: когда проблемы выползают уже не просто на страницу прессы, а начинают влиять на курс акций. А не когда «пользователь пожаловался».

Единственная компания, которая ведёт себя не так — это Apple, для чего ей пришлось купить достаточно компаний, для того, чтобы полностью с нуля всё разрабатывать.

Все же остальные — встроены в систему, вырваться из которой — они не могут. Microsoft попробовал «силой» выпихнуть — ничего хорошего не вышло (это не единственная причина провала Windows Phone, но одна из важных).

Что может сделать Google? Начать постепеннь закручивать гайки… но очень постепенно, а то ведь так и пользователи сбегут к производителям более цветных телефонов. Android — ведь OpenSource проект, не забыли?

Так что… всё будет. Своевременно или несколько позже.
Единственная компания, которая ведёт себя не так — это Apple

Поэтому костылей для мака в этом файле из статьи вдвое больше, чем костылей для винды?
А причём тут мак? Мак как раз на компонентах от сторонних фирм выпускается: CPU от Intel, GPU от Amd и так далее.

«Всё своё под полным контролем» у Apple только на iOS.

Мне казалось это очевидно из контекста.
Царь хороший, бояре плохие :)

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

На андроиде вообще жесть и ад. Мало того что баги в драйверах. Так еще они пропреетарные поставляются бинарными вендору андроид девайса. Project Treble должен решить проблему быстрого устаревания и отсутствия обновлений безопасности устройства. Ну если вы конечно не выбрали ASUS.
А что не так с ASUS?
Обновления «безопасности» раз в пол года, как выходит гарантийный срок устройство считается устаревшем. Никаких крупных обновлений по типа Android 6 > 7 нет, опять же из-за проблем с драйверами с поставщиками чипов. Если сейчас что и брать то только с поддержкой Project Treble.
Так ведь это не к является фирменной фишкой ASUS. Если брать бюджетки, то наверное везде так с обновлениями.
Обновления на новые модели прилетают регулярно, по крайней мере на средние и топовые модели, и содержат в себе не только фиксы безопасности. И на 4pda есть люди, которые утверждают, что на прошлые модели тоже были полноценные обновления, в том числе со сменой мажорной версии. Поддержка Project Treble у ASUS есть, по крайней мере на некоторых моделях.
Говорю как владелец zenfone 5 (2018).
Я согласен, что project treble должен быть обязательным требованием при покупке, но я не вижу, чем ASUS в этом плане отличается от других производителей.
Вот вот. Она (поддержка) только появилась недавно. Как asus будет пользоваться возможностями этой платформы нам только предстоит увидеть. В то время google поддерживает(и поддерживал ранее с 2013 года) все свои устройства своевременными обновлениями в том числе и новыми версиями андроидов.
Мой Nexus 5, у которого последнее официальное обновление безопасности было в 2016 году, а последняя версия Android, вышедшая для него, была Marshmallow, явно с вами не согласен
Гугол честно указывает сроки поддержки для своих аппаратов.
Впрочем, я вспомнил как они кинули пользователей Nexus 5X с ночным режимом для которого надо было модифицировать драйвер дисплея.

И далеко не сразу включили жесты на сканере отпечатков, где также пришлось обновлять драйвер.

У меня бюджетный (100$) сяоми (redmi note 5a). Обновления безопасности падают регулярно, почти каждый месяц, в октябре апнется с андроида 7 на 8, велика вероятность что и до 9 когда-нибудь в будущем. Будет. Апнутся или уже апнулись и модели 2-3 летней давности. Можно по разному относиться к этой компании, но то, что она при таком зоопарке модельного ряда не забывает об обновлениях — можно только приветствовать, в отличие от некоторых крупных компаний, которые плюют на свою продукцию, выпуская 2-3 модели.

У меня Asus Zenfone Max pro M1, вышел в 2018 с Android 8, я купил в 2019 с Android 9 из коробки, а сейчас есть бета-версия Android 10.

Проект Treble ничего в этом месте не изменит. Он уберет проблему устаревания андроида, чтобы можно было поставить новый блестящий андроид поверх старых бажных проприетарных дров. Лучшее, на что можно надеяться — что пользователи дольше будут использовать свои телефоны, что создаст давление на производителей по их поддержке.

По крайней мере, вроде как все девайсы, которые поставлялись с Oreo на борту, поддерживают его, и по сути дают возможность поставить AOSP GSI, чтобы не страдать от «интересных и функциональных» китайских оболочек, которые могут быть безумно забагованны, и пользоваться обычным «чистым» андроидом. И это выглядит очень интересно, если это будет работать.
Это очень интересно и это даже более-менее работает… но это как раз оставлят вас с новым Андроидом и старыми, глючными и бажными драйверами…
Project Treble должен решить проблему быстрого устаревания и отсутствия обновлений безопасности устройства.
Заметьте, однако, что проблемы, описанные в статье он только усугубит.
Драйвер вполне может быть закрытым.

То есть:

  • производитель чипа должен внести изменение в драйвер (MTK, насколько я помню, не заморачивается с поддержкой драйверов к старым чипам, если уже вышла новая линейка чипов)
  • производитель смартфона должен выпустить новую версию прошивки с этим драйвером (на это Google никак не может влиять, конечно, начиная с Android 8 драйверы отделены прослойкой, позволяющей использовать те же самые драйверы в новых версиях Android, но производитель может просто не захотеть переводить аппараты на новую версию)
  • пользователь должен её установить

Если хоть один шаг не выполнен — проблема у пользователя останется. Поэтому, другого варианта нет, кроме как подпереть костылём.
производитель смартфона должен выпустить новую версию прошивки с этим драйвером

Ответил веткой ниже. Ждать чего-то от производителя телефона нужно исключительно потому что гугл сделал процедуру распространения андроида до конечных устройств такой какой он ее сделал.

Тут изначально неверная предпосылка, что Гугл контролирует Андроид. В реальности это не так. Не, многое пишется Гуглом — спору нет. Но конечное устройство можно сделать как угодно. А HAL вообще по определению пишется производителями чипсета и допиливается производителями телефона. И почти никаких методов давления на этих ребят (которые, как водится, лажают) у Гугла нет. Телефон можно выпустить не спрашивая разрешения у Корпорации Добра.
Единственное, что Гугл контролирует — CTS. Это тест совместимости, который необходим для того, чтобы иметь возможность устанавливать на устройство Google Play Services. Но тест, скажем честно, не настолько крут, чтобы решать озвученные проблемы. Да и устройств, которые даже не пытались пройти CTS выше крыши (скорее всего в несколько раз больше, чем тех, которые прошли CTS). А Гугл, естественно, хочет чтобы Хром работал даже на них — для него это ключевой продукт на клиентской стороне.

Гугл имеет возможность контролировать андроид в той же степени в которой Canonical контролирует свою убунту. Не надо ничего ждать от производителей материнки/клавиатуры/колонок/SATA-контроллера/монитора/etc чтобы обновить убунту с 16.04 до 18.04.


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


Но, внезапно, надо ждать, чтобы сделать то же самое с андроидом.

Не надо ничего ждать от производителей материнки/клавиатуры/колонок/SATA-контроллера/монитора/etc чтобы обновить убунту с 16.04 до 18.04.

Да, но, например, если проприетарный драйвер nvidia не работает в 18.04, то придётся подождать. Или в новой системе в драйвере проявилась ошибка, от которой падает хром. Придётся гуглю потерпеть убытки и недовольство пользователей и подождать патч. Который может выпустят. Никаких же гарантий nvidia гуглу не дала.

Ну вот поэтому Торвальдс нвидии фак и показывал.


Только вы в сторону уходите, мы говорили про андроид. Браузер от гугла больше всего содержит костылей для работы под операционкой от гугла же. Потому что именно гугл сделал такую экосистему в которой у него нет хоть сколько-нибудь реальной возможности доставить до пользователя фикс операционки. И гуглу ничего не остается кроме как добавлять воркэраунды в хром и доставлять их через обновления хрома.

Баги в драйверах, а не в самой операционке. Драйверы Гугл не пишет, по этой же причине доставить их на может на конечное устройство при всем

Присоединюсь к предыдущему комментатору, и еще есть ньюанс: Архитектура PC открытая. Во всяком случае на порядки более открытая, чем у телефонов.
И жизненный цикл в смартфонах короче, чем у видеокарты.
Так что пока производители телефонов не согласятся на модульную единую систему, вариантов "просто обновите драйвер" не будет. Зная, как разрабатываются смартфоны, вангую, что этого не будет никогда.
А короткий жизненный цикл убивает эту идею на корню: зачем городить модульную систему, если через год все равно надо выпускать очередную "революционную" модель на полмикрона тоньше и на полтакта быстрее.

Зная, как разрабатываются смартфоны, вангую, что этого не будет никогда.
Не надо так ванговать. Конечно же это случится — но для этого сначала нужно, чтобы у разработчиков смартфонов никаких альтернатив не осталось.

в начале 1980х MS-DOS, вы не поверите, тоже поставлялась разработчиками PC и использовать версию для Olivetti на Dec вы не могли. А потом… потом Lotus выпустил 1-2-3, Microsoft выпустил Windows… и разработчикам железа пришлось плясать под чужую дуду.

То же самое будет и со смартфонами… но должно пройти некоторое время…

А короткий жизненный цикл убивает эту идею на корню: зачем городить модульную систему, если через год все равно надо выпускать очередную «революционную» модель на полмикрона тоньше и на полтакта быстрее.
К сожалению или к счастью, но «полмикрона тоньше и на полтакта быстрее» — это последний год или два. Флагманы 3-5 летней давности много чего «не тянут».

Когда эта гонка замедлится — тогда и начнут заниматься другими вещами…
в начале 1980х MS-DOS, вы не поверите, тоже поставлялась разработчиками PC и использовать версию для Olivetti на Dec вы не могли.

Э… Не совсем понимаю при чем тут это. Dec это архитектура процессора по большому счету. Да, она умерла. Да, на десктопах RISC архитектура не приживается уже который раз (из современного опыта Windows RT, и о массовом использовании десктопов на ARM пусть даже не Ubuntu я не слышал. Малинка не в счет — это игрушка для гиков даже после нескольких лет на рынке). И Apple перешел на Intel архитектуру с powerpc. Я же не об этом. Но это не имеет вообще никакого отношения к архитектуре PC (и ее модульности) в целом.
В мире мобильников уже лет так 15 минимум архитектура процессора тоже унифицировалась (ARM), хотя я помню времена, когда .cab файлы для windows mobile собирались и распространялись и под MIPS и че-то еще.
Но зоопарк шин/устройств/комбинаций их никуда не делся и деться ему, вроде, некуда.

То же самое будет и со смартфонами… но должно пройти некоторое время…

С архитектурой процессора я уже выше сказал — унифицировалось давно. А вот пытаться эту идею развить вообще на все устройство вцелом — тут все не так просто. Стандартизация интерфейсов в PC относительно простой процесс, т.к. мало физических ограничений. Есть место куда вставлять плату, есть место где поставить разъем «на будущее», есть постоянный источник питания.
А вот как только мы говорим о ноутбуках, тот тут уже могут начаться проблемы с совместимостью generic драйверов или производительностью их, т.к. производитель уже чутка вынужден был помучиться с компоновкой/охлаждением/батарейкой. А в телефоне эти проблемы на порядок круче, чем в ноуте.

Не, были попытки сделать телефон действительно модульным. Тот же Гугл, кстати, честно пробовал. Но Project Ara сейчас, увы, помнят только энтузиасты, пуская ностальгическую слезу по такой хорошей (в теории) идее.
Dec это архитектура процессора по большому счету.
Я думаю вы имеете в виду какой-нибудь другой Dec. Я про этот. Там был обычный 8088 и необычный MS-DOS. И это было нормально для середины 80х. Соотвественно все ваши дальнейшие рассуждения ваши — непонятно о чём.

Но зоопарк шин/устройств/комбинаций их никуда не делся и деться ему, вроде, некуда.
Есть куда. По той же схеме, что и с IBM PC и Microsoft'ом: вначале появляются несколько узаконенных конфигураций, потом, потихоньку, всё остальное отмирает.

Но это может произойти только если у разработчика OS очень жёсткая монополия и производителям, грубо говоря, «некуда деваться».

Я не уверен что Гугл сейчас может это сделать. Но со временем — это вполне может случится.

Но Project Ara сейчас, увы, помнят только энтузиасты, пуская ностальгическую слезу по такой хорошей (в теории) идее.
Всему своё время просто. Сейчас на ноуты Windows 10 встаёт «чисто». Никаких вещей специально под конкретный ноут ставить не нужно. Но да — чтобы до этого дойти потребовалось больше 20 лет под «жёсткой пятой монополии».
Я думаю вы имеете в виду какой-нибудь другой Dec. Я про этот.

Ой, да, я как-то перепутал 80-е и 90-е. Тут вы правы. Но позвольте вам рассказать, что случилось с DEC в 90-е (ибо я даже частично это наблюдал на практике):
DEC сделали свою DEC Alpha. И на ней даже запускался Windows (кастомная сборка). Где-то в эти же годы Apple, ЕМНИП, работала на PowerPC, много чего веселого было за пределами Майкрософта, поверьте…
Но все закончилось печально — все заглохло и перешло на x86. Но этот процесс закончился еще до массового появления смартфонов, а унификация общепринятой периферии, пожалуй, даже раньше.
Есть куда. По той же схеме, что и с IBM PC и Microsoft'ом: вначале появляются несколько узаконенных конфигураций, потом, потихоньку, всё остальное отмирает.

Угу, осталась одна незначительная малость — производитель софта и производитель железа должны занять главенствующую (практически монопольную) роль на рынке (как MS и IBM в то время), и определить стандарт. Ок, как только Гугл поглотит значительную часть производителей телефонов (или наоборот) — дайте мне знать.
Но это может произойти только если у разработчика OS очень жёсткая монополия и производителям, грубо говоря, «некуда деваться».

Ой, а, учитывая то, что железо уже давно SoC не означает ли это, что монополия будет абсолютной? Мне кажется вы не совсем понимаете причины успеха PC в 80-90-х
В действительности IBM не обладала монополией на все железо (точнее от нее отказалась). В действительности IBM и придумала и продвинула открытую архитектуру, которая оказалась в ее коммерческих интересах. IBM взяла на себя роль интегратора решений уровня бизнеса, а клепать платы отдала на откуп другим конторам. И за счет этого нихреново приуспела.

Всему своё время просто.

Т.е. мои аргументы по поводу того, что есть физическая разница между PC, ноутом и телефоном вы проигнорировали.
Ок, бывает…
Но позвольте вам рассказать, что случилось с DEC в 90-е (ибо я даже частично это наблюдал на практике):
DEC сделали свою DEC Alpha. И на ней даже запускался Windows (кастомная сборка)
А это — уже попытка обратить «время вспять». Она уже не так интересна.

Ок, как только Гугл поглотит значительную часть производителей телефонов (или наоборот) — дайте мне знать.
А зачем ему это? Стандарты (и очень многие стандарты) на рынке PC устанавливал как раз Microsoft, который (до самого недавнего времени) железа не производил (за исключением мышек и клавиатур).

Т.е. мои аргументы по поводу того, что есть физическая разница между PC, ноутом и телефоном вы проигнорировали.
Проигнорировал, потому что они к делу отношения не имеют. Кто и какое железо производит — неважно, если у вас есть какой-то софт, без которого это железо нельзя продать. Именно потому Microsoft (даже после потери рынка смартвонов) стоит вчетверо дороже AMD и Intel вместе взятых.

Но вот тут как раз у Google — большая «дыра» под названием «Китай». Примерно треть телефонов на андроиде — продаются без Google сервисов и, соотвественно, огромный процент разработчиков всё-таки выпускает программы, работающие на голом Андроиде. Как именно будет решаться эта проблема — пока неясно.

Но именно это не позволяет заставить производителей железа «ходить строем». А вовсе не «проблемы с охлаждением» или «ограниченность батареи». Пока Google не является действительно незаменимым завеном, а является всего лишь «первым среди равных» (а пока что это именно так) он не сможет «выкрутить руки» производителям — со всеми вытекающими.

В действительности IBM и придумала и продвинула открытую архитектуру, которая оказалась в ее коммерческих интересах.
В чьих интересах это всё оказалось — сейчас сложно сказать, но факт есть факт: начиная с разработки EISA IBM уже ничего не контролировала, а старндарты разрабатывали и продвигали Intel и Microsoft. В случае же с сотовыми пока всё застряло на уровне «каждый дудит в свою дуду», так как очевидного лидера пока нет.

Но это временное явление: рынок ОС естественным путём стремится к монополизации, как и рынок процессоров. Просто сейчас производители сотовых — это компании заметно крупнее производителей персоналок в 80е-90е, так что процесс идёт медленнее.
НЛО прилетело и опубликовало эту надпись здесь
Потому что именно гугл сделал такую экосистему в которой у него нет хоть сколько-нибудь реальной возможности доставить до пользователя фикс операционки.
Вот только не надо с больной головы на здоровую, а? Экосистема смартфонов была создана задолго до Гугла.

И тот факт, что драйвера на них не обновляются — было просто данностью. Собственно Гугл очень долго воевал за то, чтобы на телефонах вообще хоть что-то можно было обновлять.

Можно было сделать иначе? Да, можно. Сделать как разработчики Maemo и Ubuntu Touch, Openmoko и Windows Phone (не путать с Windows Mobile, который поддерживал «традиционную схему», но был варварски убит)… ну и проследовать вместе с ними на полки компьютерных музеем, да.

Но Гугл решил, что устройства в руках у людей несравненно полезнее устройств на полках музеев — и сделал как сделал…
Ну, справедливости ради, новая линейка телефонов обычно выходит примерно с такой же периодичностью, как и новая версия Андроида, не чаще :) Около раза в год. Так что если сделать такой фикс — как минимум для следующей линейки он пригодится, если там будет такой же видеочип (или очень похожий). Ну и для текущей обычно 1-2 апдейта всё же выкатывают.

Имел дело с Intel — это не массовость, это куча багов. В OpenGL во всяком случае.

Не знаю как сейчас, но лет 5 назад и в DX была гора проблем.
Они даже драйверы не могут нормально выложить — куча сборок под разные чипы, которые не всегда подходят к указанным моделям.
НЛО прилетело и опубликовало эту надпись здесь
Ну, такое. Идеи этой статьи витали у меня давно, тогда это было актуальной проблемой, мы даже с ней боролись в собственном продукте. Сейчас вроде да, исправлено. Но сама гибридная графика была представлена когда, в 2008 кажется? А приемлимо для Хрома стала работать в 2016-ом. Отличные темпы разработки.
Напомнило недавнюю статью про проблемы софта.

Все в одну копилку ложится.
Видел этот файл: )
У меня программа на qt, которая использовала web engine (у которого под капотом chromium), падала в линукс, долго разбирались в чем дело, выяснилось, что кривые драйвера от nvidia… падало в рендерере chromium… В qt был староватый chromium, в новом chromium эта карта была отключена, в дефекте было написано, что у драйвера проблемма с многопоточностью…

Линукс и нвидия та ещё история любви.

Помню даже как один, недавний пенсионер, показывал им палец.
Прочитал статью, задумался и обновиться захотелось…

Странно, поиском по Windows нашёл всего 5 вхождений, 1 из которых на самом деле Mac. И в основном это автопереключение разных версий DirectX.


В основном ошибки в драйверах для Linux/Android...

«type»: «win»

Вот это считать надо.

Спасибо, да,

Для статистики:
"type": "chromeos" // 8
"type": "win" // 26
"type": "linux" // 34
"type": "macosx" // 44
"type": "android" // 89

Ай, поторопился, в статье это уже указано.
Firefox умеет точно тоже самое. Рендриться на DirectX 11, на старых видеокартах с поддержкой DirectX 10(10.1) так же использует 11 в режиме совместимости. На еще более старых картах под которые драйвера последний раз обновились 10 лет назад можно заставить через опции работать в режиме directx 9 но возможны артефакты. Ну и конечно же software basic режим.

Как выйдет webrender там уже ограничения будут выдаваться возможностями ANGLE.
Я не сомневался, просто не видел в его кодовой базе столь хорошо структурированного файла с багами (но я, признаться, особо и не искал). И это ещё одна причина популярности сегодняшнего веба.

Кстати, у Хрома есть одна прикольная фишка, которой не было у ФФ: если его GPU-подпроцесс 3 раза крешился, то на четвертый он уже и не запускался, а Хром начинал всё рисовать в GDI. Файрфокс такого не умел по очевидным причинам (был однопроцессным). Теперь у него тоже подпроцессы, интересно, есть ли такая фича.
не понятно почему они были угроханы в фиксы в кодовой базе Хромиума, а не драйверов или ОС (ведь у Гугла там достаточно высокий уровень контроля всего на всех этапах).

Наверное потому что Google не пишит ВСЕ драйвера для ВСЕХ устройств на рынке? Ну знаете, чисто гипотетически.
Microsoft вот тоже не пишет все драйвера для всех устройств на рынке. Но она их подписывает и без её подписи вы в Вин10 никакой драйвер не поставите (ну, без сложных танцев с бубном). А для подписи драйвер должен пройти некоторую процедуру проверки. Что мешало Гуглу сделать так же? Нашли бак в каком-то квалкомовском чипе — вон не подписывать его драйвер, пока не пофиксят.
Могу предположить, что от такой политики цены на телефоны могут вырасти. И тут стоит выбор, что лучше.
Ну наверно то, что Android всё еще open source. Драйвер для него может писать кто угодно и устанавливать куда угодно. Проприетарны и закрыты здесь только google play services- они устанавливаются в прошивку по желанию вендора и договоренности с гуглом. Работу именно сервисов гугл и проверяет, к драйверам это не имеет отношения.
Например, китайские android-смартфоны прекрасно существуют без play services (всё таки там baidu монополист). И вот там с совместимостью проблем в разы больше.
В то же время ранее существовал покойный Яндекс.Кит. Андроид, сервисов гугла не было, на замену ему пришли сервисы от Яндекса. Покойный потому, что
1. Не смогли обеспечить достойной замены сервисам гугла (говорят, что там даже push было сделать проблемно)
2. Проблемы с софтовой совместимостью (ту не понятно, кто больше виноват- вендоры или оболочка Кит, драйверы вообще вряд ли кто-то проверял)
3. Ценовая политика- девайсы были дешевые (но, правда, очень лагучие), а вот цены на софт и место в магазине Яндекса были не очень привлекательными.

Если резюмировать- проблемы с драйвером еще не самое страшное…
А вот с (возможным в качестве замены) выходом фуксии всё может измениться.
А что мешает гуглу придумать какую-нибудь сертификацию «На поддержку оборудованием чего-то там» как необходимое условие установки гуглосервисов? Не ставится цвет пикселя — исправляйте или хрен вам, а не сервисы.
Как вы себе представляете эту проверку и какие ситуации должны при этом проверяться?
Бывает, что баги проявляются только при совершении большого количества действий в определённом порядке и ещё парочке сторонних факторов. Зашивать в проверку все хитровывернутые варианты действий? А если после сертификации пиксель снова появится не того цвета, т.к. не предусмотрели вариант, когда совершается последовательность 150 действий при наличии на телефоне приложений X, Y и Z?
Собственно, они пытаются. Android One, Project Treble и тд. Помимо совместимости еще и решить несколько других. Да и сейчас есть требования к вендорам по api драйверов. И, надо сказать, стало в разы лучше, чем на 4.х или 2.х.
Ответ на Ваш вопрос — вендоры мешают.
Дело в том, что samung- самый крупный производитель смартфонов и планшетов на сегодняшний день. Да, их мобильное подразделение имеет бюджеты скромнее, чем у компании из Купертино. Но, однако, сам samsung в разы крупнее и дороже apple (возможно, крупнее любой корпорации, которая производит микроэлектронику и комплектующие). Такому игроку сложно что-либо указывать. И если какая-либо сертификация не пропустит какие-либо маркетинговые фишки (некоторые завязаны на драйверах и ядре. Пример- KNOX) по любой причине- это может привести к тому, что огромный пласт устройств перейдет, например, на Tizen (который лежит у самсуга в кармане). Может пару раз вендор и пойдет на уступки, но терпение не бесконечно. Гуглу этого перехода не надо по понятным причинам. Да и пользователям тоже.
Потому стараются причесывать платформу мягко и постепенно
вообще у эпла доход за 2017 год больше чем у всего самсунга, целиком :)
Публичного- да. Есть не публичная часть. Например, оборона. Да, samsung строит танки, турели и много чего. Никто не будет это афишировать)
Насколько я понял, доходы от постройки крупногабаритных кораблей туда тоже не входят.
UPD. Почитал. Скорее всего речь именно о мобильном подразделении, а не уточняется во имя маркетинга. Слабо верится в то, что apple дороже корпорации, которая занимается если не всем, то очень многим (текстиль, автопром, фармацевтика, можно долго перечислять).
Таки Apple дороже. Хотя доходы стравнимы — у Samsung 225,2 млрд долларов, а у Apple 229.2 млрд. При такой крошечной разнице даже нельзя сказать кто больше: зависит от того на какой конкретно день взяли курс вона к доллару.

Однако тут есть некоторое лукавство: в прошлые годы Apple активно росла, в 2016м был спад, а в 2017 пошло уже выжимание денег из имеющихся клиентов путём повышения цены. Ясно, что в долгосрочной перспективе это тупик… но вот прямо сейчас Apple — дороже, чем Samsung…
НЛО прилетело и опубликовало эту надпись здесь
На мой личный взгляд — нет, не основная. Тех марок устройств, с которыми продавался Кит лично я больше в продаже не видел. И до начала продаж тоже)
ИМХО, если бы устройства на Ките покупали- то вендорам, которые на нем выпускались, было бы всё равно. А известные вендоры под это дело организовывали бы дочек. Был бы спрос. С такими то низкими ценниками. Но кому нужен тормознутый смартфон\планшет, у которого в маркете нет нужного приложения?.. А даже если поставить apk- не факт, что работать будет нормально (чаще- нет). А без нужных приложений- зачем оно вообще надо?..
А по поводу жалоб о монополии- если бы могли сделать конкурентоспособный продукт- то и жаловаться не пришлось бы
НЛО прилетело и опубликовало эту надпись здесь
Вы это пишите тому, у кого на смартфоне нет приложений от гапсов.
И как Вам живется без порядочной навигации, гуглокарт в приложениях, хранения учеток, push-уведомлений (да, можно организовать пушки руками, но ценой того, что они не будут работать в спящем режиме. А если и будут- то ценой слива батареи)? Может, конечно, для Вас это привычно, но для подавляющего большинства- нет. Очень многое зашито именно в гапсах, и сегодня минимум каждое второе приложение функционировать без них не будет.
Ничего, всё нормально работает
Во-первых это невозможно по описанным выше причинам. Если приложение ограничивает свой функционал по причине отсутствия гапсов- это уже не штатная работа.
Во-вторых- я щупал кит, когда он появился в продаже, на предмет возможности публикации. Отсутствие порядочной замены гапсам- это одна боль. Другая в том, что (если не углубляться в тех. детали) некоторые второстепенные api самого android framework работали некорректно на пробных запусках. Да, всё можно обойти и подобное встречалось ранее. Но зачем? Аудитории мало, тратить время на адаптацию никто не хотел.
НЛО прилетело и опубликовало эту надпись здесь
Порядочная навигация и гуглокарты в одном предложении? Это в каком регионе такое доступно?

Виндовс — проприетарное ПО, его можно только кастомизировать. Менять исходный код нельзя. Андроид — ос с открытым исходным кодом. Любой вендор может что угодно в ней поменять. В том числе и убрать проверку подписанных драйверов. Вдобавок, видела как правило устанавливается на любое железо, драйвера идут отдельно. С Андроидом — только то, что сделал вендор. Так с Андроидом не выйдет, как на

НЛО прилетело и опубликовало эту надпись здесь
Я думаю, что тут важнее распространенность системы, чем война с вендорами за чистоту драйверов и прочее. Тут даже скорее обратная ситуация: чем больше смартфонов с андроид, тем он популярнее, тем больше выгоды получит компания. Поэтому в финансовом эквиваленте ставить палки в колеса вендорам для Гугла менее прибыльно, чем запилить фиксы в кодовую базу Хромиума. Ну и по ресурсам первое на порядки затратнее, чем второе. Увы, это реальность
НЛО прилетело и опубликовало эту надпись здесь
Никто никому не запрещал делать форки. MiUI как была, так и есть. И Sense\TouchWiz\Flyme- это, по сути, тоже форки. В Китае вообще далеко не на каждом смартфоне есть play services ибо не надо. И ничего, живут себе. Только проблем там больше, поскольку API не всегда реализован верно. А это уже опаснее, чем баги с дровами.
А вот заставить их поддержку вменяемую — не, не мог. Это слишком дорого?

Нет, не дорого. Опасно. Потерей доли рынка. Как писал выше, игрокам вроде samsung вообще сложно что-либо указывать.
НЛО прилетело и опубликовало эту надпись здесь
Ничего, что в Китае сервисы гугла были законодательно заблокированы?
Ключевое слово- были. Сейчас не все, но доступны.
Перечислите еще парочку игроков уровня Самсунг?
Сам Самсунг производит больше половины всего объема смартов и планшетов на андроид. Этого уже достаточно.
В догонку- один из лидеров телекоммуникационного оборудования- Huawei. Продажи у них тоже не маленькие. В недавних скандалах тоже часто мелькали.
свалил бы только если совсем были бы невыполнимые условия
Потому и не свалил, что выполнимы. А выполнимы потому, что самсунг- член OHA
НЛО прилетело и опубликовало эту надпись здесь
Причем, самсунгу то эти требования было бы зачастую проще выполнять — у него и свои процы имеются.
Процы имеются, а GPU — нет. И драйверов нет. От их от Imagination Technologies и ARM'а получает.

Да, он мог пошантажировать тизеном, но по факту — свалил бы только если совсем были бы невыполнимые условия.
Требования обновлять драйвера — это как раз они и есть. Именно поэтому Windows Phone поддерживала так мало процессоров: несколько Snapdragon'ов и всё. Ни PoverVR, ни Mail (то есть самые эффективные GPU) они использовать не могли. Завели одно устройсво «под занавес» на GPU трёхгодичной давности — на чём история этой «славной» OS и завершилась.
Еще раз) Один из ключевых моментов популярности системы — это как можно меньшее количество камней преткновения для вендоров -> много вендоров -> много аппаратов -> популярность. Это, конечно, не единственный фактор, но один из ключевых. Я опускаю вопрос, насколько качественно каждый вендор подходит к созданию своей продукции. Да и Гугла нет ни времени, ни денег, ни особого желания проверять это у каждого вендора, в том числе и качество дров. Сегодня вендоров 100, завтра будет 110, и каждый раз Гуглу нужно договариваться и проверять, что все заявленное работает по спецификации. А завтра выйдет новая линейка смартфонов с новыми чипами, и все надо делать по новой. Проще, быстрее и финансово менее затратно сделать это один раз в нескольких продуктах. Тем более, что база фиксов может шариться между продуктами. Предлагаю вам подумать, почему до сих пор Гугл не поступил так, как предлагаете вы, а делает так, о чем пишу я. Это не потому, что корпорация такая злая, делает кучу костылей или разрабы и менеджеры ленивые. Просто так эффективнее, дешевле. Вопрос только денег
НЛО прилетело и опубликовало эту надпись здесь
Это не решит проблему, поскольку драйвера как пишут вендоры, так и будут это делать. А баги, как были в драйверах, так там и будут оставаться. ОС — это следующий уровень на драйверами. На уровне ОС конечно можно попытаться исправить поведение драйвера, но тогда эти фиксы придется тянуть в апстрим ОС для всех остальных. В общем, я не совсем понимаю, как обновления ОС отдельно от драйверов решит проблему багов внутри самих драйверов, но вполне возможно, что у меня нет всей информации для таких выводов)
НЛО прилетело и опубликовало эту надпись здесь
А вот если от этого будет зависеть вообще возможность на рынке быть не в виде никому не нужных девайсов, а именно с андроидами, то тут уже возможны варианты.
Это сегодня «быть на рынке с андроидами» — важно и ценно. В 2008 всё было иначе. Microsoft попробовал сказать «Б», не сказав перед этим «А»… результут весьма плачевен…
Им нужно было прописать жестко сроки поддержки.
Вы смотрите на то, что Гугл мог сделать сейчас с позиций сегодняшнего дня — которых не было бы, если бы Гугл поступил бы так, как вы предлагаете.

Тот факт, что для Андроида вообще были предусмотрены обновления (опциональные) — в 2008м году рассматривалось Гуглом как успех. Когда удалось их сделать OTA (а за это пришлось долго сражаться) — это был следующий шаг. А до поддержки драйверов — нужно ещё несколько лет идти.

Винда и линукс почему-то умудряются.
На каких это смартфонах, они, я извиняюсь, умудряются?
А вот заставить их поддержку вменяемую — не, не мог. Это слишком дорого?
Серьезно?
Абсолютно. Выпуск/невыпуск форков влияет, условно, только на отдел маркетинга. Они лишаются возможности выпустить какой-то там альтрернативный продукт и сделать какую-то там компанию.

А вот попытка заставить драйвера поддерживать — это значит поломать всю производственную цепочку. Где драйвера и железо — расмматриваются как две стороны одной медали.

Вышла алфа-версия силикона — к ней альфа-драйвера.
Выбла бете — к ней бета-драйвера.
Вышел релиз — получили релизные драйвера, телефоны в коробку, в магазин.
Процесс окончен.

Менять производственные процессы — не сложно, а очень сложно. И дорого.
Теперь понятно, почему мой старенький Macbook air 2011 с i5 процессором так жутко тормозит в хроме.
15 крашей драйвера GPU, потом перебор волшебных костылей и попытки отрисовать софтварно, хотя бы по 1 вкладочке

Напомнило: в коде WebKit видел чудесную строчку:


Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled();

Как говорится, "Зачем писать комментарии, если можно понятно называть функции".

Как бы там ребята не вкалывали, но, к сожалению, браузеры еще не поднялись до уровня видеоплееров.

К примеру на малинке или orange-pi Хромиум (armbian) работает, но возможности видеокрты не использует, поэтому видео на страницах того же youtube тормозит с fps 1-2 кадра в секунду, даже если принудительно включить в настройках поддержку GPU (толку ноль).

А вот если запустить скачанный фильм через mplayer или смотреть youtube по ссылке через плагин для kodi всё отлично показывает.
Видеплееру от GPU нужно на порядок меньше возможностей, чем браузеру. А с учётом того, чтобы мы говорим о железе, которое вышло 6 лет назад и на котором телефонов на Андроиде нет… кто будет этим заниматься?
кто будет этим заниматься?
В том-то и дело, что никто. Браузеры в отличие от видеоплееров отстают в покрытии/поддержке различных GPU. Линуксовый видеоплеер юзает GPU (кто-то этим всё-таки занимается), а браузер нет.

А с учётом того, чтобы мы говорим о железе, которое вышло 6 лет назад
Не знаю, о каком железе говорите вы, а я тестировал на Orange Pi PC Plus (H3 Mali 400MP2 4x1.2 GHz 1 Гб ) и он вышел в 2016, сейчас есть и посвежее модели 2018, но на них, на сколько я знаю, ситуация та же.
Не знаю, о каком железе говорите вы
О GPU, однако.

а я тестировал на Orange Pi PC Plus (H3 Mali 400MP2 4x1.2 GHz 1 Гб ) и он вышел в 2016, сейчас есть и посвежее модели 2018, но на них, на сколько я знаю, ситуация та же.
Неплохо. Но это не совсем «малинка». Вы под андроидом тестировали? У Mali всё в порядке с ускорением под Android'ом.
К сожалению, предустановленный (видимо для галочки) китайский андроид ни фига не работает, можно переключать экраны менюшек, но при выборе любого пункта он просто возвращается на главный экран. Пробовал несколько сборок разных Linux, самый оптимальный и не глючным оказался Armbian, всё вполне шустро и корректно работает, кроме видео в браузере (Chromium стоит по умолчанию), на форумах пишут, что с FF тоже самое… Собственно, этот вот маленький браузерный косяк и не позволяет считать девайс за 2000р — 100% мини пк (хотя железо тянет).
Статья хорошая, и познавательная. Только вот с выводами автора я слегка не согласен.
«Меня сильно удивило, что багов отрисовки в Mac Os было обнаружено почти два раза больше, чем в Windows», хотя выше же в абзаце пишете о том что «решено было исправлять».
Возможно багов и меньше, но решено исправлять самих багов — больше, т.к. платформа более однородная, например. Т.е. количество хаков и костылей не обязательно прямо линейно с единым коэффцициентом зависит от собственно количества багов.
Возможно для винды меньше запаривались, потому что пользователи сами по себе привыкли обновлять драйвера в случае любых проблем. Вы слышали чтобы макоюзер что-то шел обновлять? Да и кто ему даст :D
Вы слышали чтобы макоюзер что-то шел обновлять? Да и кто ему даст :D

Вы когда-нибудь сами макосью пользовались? Похоже что нет, иначе знали бы, что Apple очень настойчивы по поводу установки обновлений. Вплоть до принудительного перезапуска Safari, когда им "никто не пользуется" (паубывав бы!), и ежедневных назойливых напоминалок про системные обновления, пока не установишь.

НЛО прилетело и опубликовало эту надпись здесь

Вполне знаю. Но у меня Windows 10 только в виртуалках живёт, ради браузеров всеразличных. В качестве хост-системы Windows для меня умерла лет 7 назад.


А в виртуалках хоть и раздражает, но всё-таки меньше. Благо, пока одна пытается обновиться (и обламывается почему-то), можно в другой тесты гонять.

Месяцами живу без редутов и ничего не виснет.Чяднт?

Довольно значительная доля сидит на непоследних осях, к которым обновлений не выходит.
И да, пользуюсь 10.13 сейчас.
Про напоминания оси я помню, я скорее пытался намекнуть что редко сами производители софта под мак пишут мол «обновите у себя что-нибудь», в то время как в виндовом такое случается.
С другой стороны, если пользователи выполняют заветы эпла и ставят все заплатки по расписанию, оч странно зачем для них костыли в коде плодить…
Большая часть пользователей винды — товарищи, которые мышкой не всегда в иконку ворда могут попасть, ну и разработчики-дотнетеры, конечно. У вторых обычно проблем нет, а первые никогда ничего не обновляют. Неспроста же десятка в Home так настойчива в обновлениях. Куча инструкций от умельцев «как отключить обновы» тоже не на пустом месте возникли…

Доля винды — больше, а багов под неё — меньше. Выводы можно делать разные, но я скорее поверю в то, что там все же количество багов ниже, по каким-то причинам. Ну просто потому что вероятность столкнуться с багом выше, а частота их появления — ниже.
ну и разработчики-дотнетеры, конечно.

Где-то видел, что большинство андроид разработчиков используют windows, но не нашёл ссылки.

Но вот оказалось, что зоопарк Windows в два раза более живуч и стабилен

Или, как вариант, от Windows-пользователей приходит меньше баг-репортов

Вот прочитал эту статью и как-то расхотелось вообще программировать. Не такому меня учили. Я думал, что буду разрабатывать интересные алгоритмы, а коды программ будут печатать в книгах, как образец для подражания. В итоге оказывается, что даже коды важнейших программ мира состоят из костылей на костылях, и гарантии что эти костыли не сломаются в самый неподходящий момент нет никакой. Программы получаются невероятно хрупкими и недолговечными. От компьютеров в наши дни зависят многие сферы жизни, но сами компьютеры содержат ошибки, операционные системы с ошибками, браузеры с ошибками и костылями, внутри них веб-приложения, построенные на фреймворках с костылями и ошибками. Всё это тормозит даже на мощных компьютерах. Настанет день, когда вся эта хрупкая структура рухнет, как карточный домик.
Будто бы этого нет в электронике/механике. Везде есть погрешность, есть накопление ошибок, и много всего такого. Поэтому есть и математические модели с заложенными в расчёт ошибками и погрешностями. Поэтому есть двойное, тройное дублирование, резервирование. Так оно и работает.
Да везде такое в реальном мире.
Надо к этому проще относиться. Представьте, что вы повар в ресторане: созданный Вами шедевр сожрут за 10 минут — и нет шедевра. А завтра может и не выйдет шедевр. А через год ресторан закроют. Ну так что же — не делать работу здесь и сейчас?

Зря на макось ругаетесь, посмотрите какие баги исправляются, это или совсем древность, или особенности макоси и оптимизации для нее, или что-то вроде: «Force to use discrete GPU on older MacBookPro models»
Да, есть исправления конкретных косяков, но не много.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий