Комментарии 179
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...
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
я форсировал создание этого контекста для данного элемента, и проблема была решена.
А вот деталей на годный хабрапост я уже и не вспомню. :(
Конкретный вопрос — допустим, я хочу использовать этот фреймворк в связке с некоторым бэкэндом. В бэкенде много данных (реальное приложение, не демка). Как организована подгрузка данных? Там сказано что-то про минимизацию числа 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 лет назад дело было, да и баг был хоть и заковыристый, но далеко не самый важный/сложный, так что обращать на него много внимания не было смысла. Так, страшилка "из былого", чтобы было о чём с коллегами языками почесать за пивом. :))
Те кто писал собственный парсер CSS/view machine, будут категорически с этим не согласны.
IE на столько странно отображал багованные страницы (и некоторые CSS), что никакой логике не поддается.
А у юзеров только один критерий -> «ничего не знаю, в explorere мой ХТМЛ отлично виден, так что исправляйте ваш кривой вьювер».
Не помню уже какая контора, собирала подписи под петицией микрософту — «или делайте обработку багованных ХТМЛ по стандартам или хотябы дайте описание вашей обработки багов».
Так вот, не глючила ли Опера как раз потому, что все сайты пытались исправлять баги, которые уже исправили разработчики движка?
Или всё-таки browser.js патчил каждый второй сайт в интернете?
Или всё-таки глючили старые версии, но никто из веб-мастеров не разбирался и не давал шанса новым версиям?
а в опере — сдвинешь дивчик на один пиксель и всё нахрен раскорёживало
Почему-то ни разу с подобным не сталкивался. Сверстал просто кучу сайтов в 2011-2015 годах под Оперу версий 11.50 — 12.16. Всегда всё вело себя идеально в соответствии со стандартами и ожиданиями…
довольно много.
о! нашел
Подобно числу четыре, которое имеет в китайском языке «несчастливого» двойника, в Японии боятся числа 9, поскольку оно звучит так же, как и слово «мучение» или «страдание»
а ведь windows 4, кстати, назвали windows NT :)
Windows 4 называется все таки Windows 95. NT это вообще отдельная ось, которой прикрутили программную совместимость и похожий интерфейс с веткой Windows 3.x. Да и если говорить о магии чисел, то Windows NT 4 очень даже существовала.
PS. Вот так не обновишь комментарии… В 95 ядро 4 и в NT 4 ядро 4, потому и NT
DirectX11 был одной из основных фич VistaТочно? DirectX 11 в Vista появился лишь после выхода Windows 7.
Windows 7 — 22 октября 2009 года
28 октября 2009 года DirectX 11 стал официально доступен для Windows Vista
Быстрый просмотр показывает что тут глюки не Андроида, а конкретных GPU на конкретных драйверах. Пихать эти фиксы в ядро ОС, как то не очень правильно. Тем более, что пока вендоры обновят версию Андроида, телефоны уже успеют пять раз устареть и выйти из оборота.
Но гугл тотально зафакапил обновление андроида на девайсах пользователей, поэтому не может запихать фиксы туда куда их надо запихать, а вместо этого пихает куда получается, заодно заставляя заниматься этим же разработчиков другого софта, которые тоже наступают на эти баги.
Ответ на ваш вопрос содержится в посте. Вместо починки того софта в котором содержится баг, гугл предпочитает ввернуть еще немного подпорок в хром.
Даже если починят GPU-драйвер, будет самсунг делать из-за этого новую сборку операционки для S4, если они для него даже сам андроид после 5 версии не обновляют? Думаю вы понимаете, что ответ — нет. А мне как конечному пользователю на это наплевать, поэтому позиция разработчиков Chromium тут понятна и вполне логична.
И вот эти костылики для андроида гугла в хроме от гугла очень красиво смотрятся. Симптоматично, я бы сказал.
и именно в этом и факап гугла как разработчика андроида.
Это не факап, это бизнес-модель: одноразовость телефонов заложена в процесс, как основной двигатель продаж. Зачем обновлять софт на старом телефоне, если можно вынудить пользователя купить новый?
Если вы посмотрите на ситуацию с другой стороны, то увидите: это вовсе не проблема, а отличная возможность продать вам новый телефон!
Зацикленность покупателей на марку это известный факт; люди, купившие один телефон на базе Android, с большой долей вероятности купят следующий тоже на Android. Поэтому и баги, и вирусы, и дырки в безопасности, и новостная шумиха вокруг этих дыр — всё играет в одни ворота. Человек обеспокоенный есть человек склонный к покупке.
А если это вас пугает, переходите на iOS. Там других косяков полно, но хотя бы с безопасностью получше и железки не настолько одноразовые.
Ну, или вообще не пользуйтесь смартфонами. Я вот не пользуюсь и отлично себя чувствую. :)
надоело каждые два года новый андроид покупать. а последняя ось под айфон спокойно на 5s(вышел 5 лет назад) запускается, причем не ухудшая производительности.
а последняя ось под айфон спокойно на 5s(вышел 5 лет назад) запускается
На мой SGS2, который вышел 7 лет назад, до сих пор делают юзабельные кастомы на последних версиях.
Ага. Вот вам пример: https://bugzilla.redhat.com/show_bug.cgi?id=494390
Обычный пользователь жалуется на проблему с железом поставщику операционки. Информация передается разработчику драйвера. Тот чинит драйвер, фикс драйвера включают в ядро. Потом выходит новая версия ядра с исправленным драйвером. Потом ядро обновляют в дистрибутиве пользователя. Пользователь устанавливает обновление. Все счастливы.
То что такой сценарий невозможен с андроидом — недостаток экосистемы андроида, исправить который гугл вполне бы мог.
Нужно сделать систему мониторинга, с датчиками температуры, влажности, шума, углекислого газа с системой реального времени и логгированием. Светодиодная (цветовая) индикация режима работы плюс зуммер, как запасной канал оповещения о пожаре. Всё это делается не на ардуине (тьфу, как можно), а как минимум на STM (только на RTOS), а ещё лучше на малинке. Обязательно вставить возможность реалтайм обновления прошивки без перезагрузки. Запасной вариант — ввод новой прошивки через подключение USB клавиатуры. Контроль вводимых символов светодиодом. Азбукой морзе. Модифицированной, конечно, светодиод же цветной.
Впаять резистор. Ересь.
То что такой сценарий невозможен с андроидом — недостаток экосистемы андроида, исправить который гугл вполне бы мог.Не «мог бы», а «может». И исправит. Со временем.
Ссылку на известный опус тут уже приводили — но не объясняли почему всё так, как оно есть… А это, на самом деле, просто: смартфоны, вы не поверите, всё ещё разрабатывают компании, которые телефоны разрабатывали десятилетиями. И SOC'и для них всё ещё разрабатывают компании, которые эти SOC'и разрабатывали десятилетиями. Потому описанный по вышеприведённой ссылке «абсолютный водопад» — это единственное подо что они заточены. Раз выпущенный драйвер правится только тогда же, когда правится с тормозами какой-нибудь Тойоты: когда проблемы выползают уже не просто на страницу прессы, а начинают влиять на курс акций. А не когда «пользователь пожаловался».
Единственная компания, которая ведёт себя не так — это Apple, для чего ей пришлось купить достаточно компаний, для того, чтобы полностью с нуля всё разрабатывать.
Все же остальные — встроены в систему, вырваться из которой — они не могут. Microsoft попробовал «силой» выпихнуть — ничего хорошего не вышло (это не единственная причина провала Windows Phone, но одна из важных).
Что может сделать Google? Начать постепеннь закручивать гайки… но очень постепенно, а то ведь так и пользователи сбегут к производителям более цветных телефонов. Android — ведь OpenSource проект, не забыли?
Так что… всё будет. Своевременно или несколько позже.
Единственная компания, которая ведёт себя не так — это Apple
Поэтому костылей для мака в этом файле из статьи вдвое больше, чем костылей для винды?
Ну на нормальных операционках драйвер обновляется и баги исправляются. А на андроиде вместе с андроидом, а вендоры забивают когда следующее поколение выходит.
Тут даже не архитектура андроида привела к проблемам, а стратегия его распространения и лицензирования была ошибочной. Хотя и архитектура могла бы поддерживать багфиксы в таких вещах в обход вендора.
Обновления на новые модели прилетают регулярно, по крайней мере на средние и топовые модели, и содержат в себе не только фиксы безопасности. И на 4pda есть люди, которые утверждают, что на прошлые модели тоже были полноценные обновления, в том числе со сменой мажорной версии. Поддержка Project Treble у ASUS есть, по крайней мере на некоторых моделях.
Говорю как владелец zenfone 5 (2018).
Я согласен, что project treble должен быть обязательным требованием при покупке, но я не вижу, чем ASUS в этом плане отличается от других производителей.
У меня бюджетный (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 ничего в этом месте не изменит. Он уберет проблему устаревания андроида, чтобы можно было поставить новый блестящий андроид поверх старых бажных проприетарных дров. Лучшее, на что можно надеяться — что пользователи дольше будут использовать свои телефоны, что создаст давление на производителей по их поддержке.
Project Treble должен решить проблему быстрого устаревания и отсутствия обновлений безопасности устройства.Заметьте, однако, что проблемы, описанные в статье он только усугубит.
То есть:
- производитель чипа должен внести изменение в драйвер (MTK, насколько я помню, не заморачивается с поддержкой драйверов к старым чипам, если уже вышла новая линейка чипов)
- производитель смартфона должен выпустить новую версию прошивки с этим драйвером (на это Google никак не может влиять, конечно, начиная с Android 8 драйверы отделены прослойкой, позволяющей использовать те же самые драйверы в новых версиях Android, но производитель может просто не захотеть переводить аппараты на новую версию)
- пользователь должен её установить
Если хоть один шаг не выполнен — проблема у пользователя останется. Поэтому, другого варианта нет, кроме как подпереть костылём.
Единственное, что Гугл контролирует — 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, который поддерживал «традиционную схему», но был варварски убит)… ну и проследовать вместе с ними на полки компьютерных музеем, да.
Но Гугл решил, что устройства в руках у людей несравненно полезнее устройств на полках музеев — и сделал как сделал…
Имел дело с Intel — это не массовость, это куча багов. В OpenGL во всяком случае.
Все в одну копилку ложится.
У меня программа на qt, которая использовала web engine (у которого под капотом chromium), падала в линукс, долго разбирались в чем дело, выяснилось, что кривые драйвера от nvidia… падало в рендерере chromium… В qt был староватый chromium, в новом chromium эта карта была отключена, в дефекте было написано, что у драйвера проблемма с многопоточностью…
Странно, поиском по Windows нашёл всего 5 вхождений, 1 из которых на самом деле Mac. И в основном это автопереключение разных версий DirectX.
В основном ошибки в драйверах для Linux/Android...
Как выйдет webrender там уже ограничения будут выдаваться возможностями ANGLE.
Кстати, у Хрома есть одна прикольная фишка, которой не было у ФФ: если его GPU-подпроцесс 3 раза крешился, то на четвертый он уже и не запускался, а Хром начинал всё рисовать в GDI. Файрфокс такого не умел по очевидным причинам (был однопроцессным). Теперь у него тоже подпроцессы, интересно, есть ли такая фича.
не понятно почему они были угроханы в фиксы в кодовой базе Хромиума, а не драйверов или ОС (ведь у Гугла там достаточно высокий уровень контроля всего на всех этапах).
Наверное потому что Google не пишит ВСЕ драйвера для ВСЕХ устройств на рынке? Ну знаете, чисто гипотетически.
Например, китайские android-смартфоны прекрасно существуют без play services (всё таки там baidu монополист). И вот там с совместимостью проблем в разы больше.
В то же время ранее существовал покойный Яндекс.Кит. Андроид, сервисов гугла не было, на замену ему пришли сервисы от Яндекса. Покойный потому, что
1. Не смогли обеспечить достойной замены сервисам гугла (говорят, что там даже push было сделать проблемно)
2. Проблемы с софтовой совместимостью (ту не понятно, кто больше виноват- вендоры или оболочка Кит, драйверы вообще вряд ли кто-то проверял)
3. Ценовая политика- девайсы были дешевые (но, правда, очень лагучие), а вот цены на софт и место в магазине Яндекса были не очень привлекательными.
Если резюмировать- проблемы с драйвером еще не самое страшное…
А вот с (возможным в качестве замены) выходом фуксии всё может измениться.
Бывает, что баги проявляются только при совершении большого количества действий в определённом порядке и ещё парочке сторонних факторов. Зашивать в проверку все хитровывернутые варианты действий? А если после сертификации пиксель снова появится не того цвета, т.к. не предусмотрели вариант, когда совершается последовательность 150 действий при наличии на телефоне приложений X, Y и Z?
Ответ на Ваш вопрос — вендоры мешают.
Дело в том, что samung- самый крупный производитель смартфонов и планшетов на сегодняшний день. Да, их мобильное подразделение имеет бюджеты скромнее, чем у компании из Купертино. Но, однако, сам samsung в разы крупнее и дороже apple (возможно, крупнее любой корпорации, которая производит микроэлектронику и комплектующие). Такому игроку сложно что-либо указывать. И если какая-либо сертификация не пропустит какие-либо маркетинговые фишки (некоторые завязаны на драйверах и ядре. Пример- KNOX) по любой причине- это может привести к тому, что огромный пласт устройств перейдет, например, на Tizen (который лежит у самсуга в кармане). Может пару раз вендор и пойдет на уступки, но терпение не бесконечно. Гуглу этого перехода не надо по понятным причинам. Да и пользователям тоже.
Потому стараются причесывать платформу мягко и постепенно
Насколько я понял, доходы от постройки крупногабаритных кораблей туда тоже не входят.
UPD. Почитал. Скорее всего речь именно о мобильном подразделении, а не уточняется во имя маркетинга. Слабо верится в то, что apple дороже корпорации, которая занимается если не всем, то очень многим (текстиль, автопром, фармацевтика, можно долго перечислять).
Однако тут есть некоторое лукавство: в прошлые годы Apple активно росла, в 2016м был спад, а в 2017 пошло уже выжимание денег из имеющихся клиентов путём повышения цены. Ясно, что в долгосрочной перспективе это тупик… но вот прямо сейчас Apple — дороже, чем Samsung…
Покойный потому, что
Забыли главную причину- давление гугла, который запрещал ставить вендорам яндексовские сервисы под угрозой разрыва контракта на гугл сервисы вообще.
ИМХО, если бы устройства на Ките покупали- то вендорам, которые на нем выпускались, было бы всё равно. А известные вендоры под это дело организовывали бы дочек. Был бы спрос. С такими то низкими ценниками. Но кому нужен тормознутый смартфон\планшет, у которого в маркете нет нужного приложения?.. А даже если поставить apk- не факт, что работать будет нормально (чаще- нет). А без нужных приложений- зачем оно вообще надо?..
А по поводу жалоб о монополии- если бы могли сделать конкурентоспособный продукт- то и жаловаться не пришлось бы
Тех марок устройств, с которыми продавался Кит лично я больше в продаже не видел.
А известные вендоры под это дело организовывали бы дочек.
А почему вы думаете, что не организовали? Я уверен, что это и были очередные торговые марки крупных производителей.
А даже если поставить apk- не факт, что работать будет нормально (чаще- нет).
Вы это пишите тому, у кого на смартфоне нет приложений от гапсов. Ничего, всё нормально работает.
Вы это пишите тому, у кого на смартфоне нет приложений от гапсов.И как Вам живется без порядочной навигации, гуглокарт в приложениях, хранения учеток, push-уведомлений (да, можно организовать пушки руками, но ценой того, что они не будут работать в спящем режиме. А если и будут- то ценой слива батареи)? Может, конечно, для Вас это привычно, но для подавляющего большинства- нет. Очень многое зашито именно в гапсах, и сегодня минимум каждое второе приложение функционировать без них не будет.
Ничего, всё нормально работаетВо-первых это невозможно по описанным выше причинам. Если приложение ограничивает свой функционал по причине отсутствия гапсов- это уже не штатная работа.
Во-вторых- я щупал кит, когда он появился в продаже, на предмет возможности публикации. Отсутствие порядочной замены гапсам- это одна боль. Другая в том, что (если не углубляться в тех. детали) некоторые второстепенные api самого android framework работали некорректно на пробных запусках. Да, всё можно обойти и подобное встречалось ранее. Но зачем? Аудитории мало, тратить время на адаптацию никто не хотел.
И как Вам живется без порядочной навигации
2гис?
гуглокарт в приложениях
Какое-то кривое приложение прибывалка63 не заработало, да. А вот яндекс.транспорт исправно работает с тем же функционалом и чуть более современным интерфейсом.
push-уведомлений
У меня нет приложений которым они нужны. То есть я не пользуюсь мессенджерами и соцсетями.
Хотя я в общем то не спорю, что андроид без гапсов не самая идеальная в мире вещь.
Виндовс — проприетарное ПО, его можно только кастомизировать. Менять исходный код нельзя. Андроид — ос с открытым исходным кодом. Любой вендор может что угодно в ней поменять. В том числе и убрать проверку подписанных драйверов. Вдобавок, видела как правило устанавливается на любое железо, драйвера идут отдельно. С Андроидом — только то, что сделал вендор. Так с Андроидом не выйдет, как на
А вот заставить их поддержку вменяемую — не, не мог. Это слишком дорого?
Нет, не дорого. Опасно. Потерей доли рынка. Как писал выше, игрокам вроде samsung вообще сложно что-либо указывать.
Ничего, что в Китае сервисы гугла были законодательно заблокированы?Ключевое слово- были. Сейчас не все, но доступны.
Перечислите еще парочку игроков уровня Самсунг?Сам Самсунг производит больше половины всего объема смартов и планшетов на андроид. Этого уже достаточно.
В догонку- один из лидеров телекоммуникационного оборудования- Huawei. Продажи у них тоже не маленькие. В недавних скандалах тоже часто мелькали.
свалил бы только если совсем были бы невыполнимые условияПотому и не свалил, что выполнимы. А выполнимы потому, что самсунг- член OHA
Причем, самсунгу то эти требования было бы зачастую проще выполнять — у него и свои процы имеются.Процы имеются, а GPU — нет. И драйверов нет. От их от Imagination Technologies и ARM'а получает.
Да, он мог пошантажировать тизеном, но по факту — свалил бы только если совсем были бы невыполнимые условия.Требования обновлять драйвера — это как раз они и есть. Именно поэтому Windows Phone поддерживала так мало процессоров: несколько Snapdragon'ов и всё. Ни PoverVR, ни Mail (то есть самые эффективные GPU) они использовать не могли. Завели одно устройсво «под занавес» на GPU трёхгодичной давности — на чём история этой «славной» OS и завершилась.
А вот если от этого будет зависеть вообще возможность на рынке быть не в виде никому не нужных девайсов, а именно с андроидами, то тут уже возможны варианты.Это сегодня «быть на рынке с андроидами» — важно и ценно. В 2008 всё было иначе. Microsoft попробовал сказать «Б», не сказав перед этим «А»… результут весьма плачевен…
Им нужно было прописать жестко сроки поддержки.Вы смотрите на то, что Гугл мог сделать сейчас с позиций сегодняшнего дня — которых не было бы, если бы Гугл поступил бы так, как вы предлагаете.
Тот факт, что для Андроида вообще были предусмотрены обновления (опциональные) — в 2008м году рассматривалось Гуглом как успех. Когда удалось их сделать OTA (а за это пришлось долго сражаться) — это был следующий шаг. А до поддержки драйверов — нужно ещё несколько лет идти.
Винда и линукс почему-то умудряются.На каких это смартфонах, они, я извиняюсь, умудряются?
А вот заставить их поддержку вменяемую — не, не мог. Это слишком дорого?Абсолютно. Выпуск/невыпуск форков влияет, условно, только на отдел маркетинга. Они лишаются возможности выпустить какой-то там альтрернативный продукт и сделать какую-то там компанию.
Серьезно?
А вот попытка заставить драйвера поддерживать — это значит поломать всю производственную цепочку. Где драйвера и железо — расмматриваются как две стороны одной медали.
Вышла алфа-версия силикона — к ней альфа-драйвера.
Выбла бете — к ней бета-драйвера.
Вышел релиз — получили релизные драйвера, телефоны в коробку, в магазин.
Процесс окончен.
Менять производственные процессы — не сложно, а очень сложно. И дорого.
Напомнило: в коде WebKit видел чудесную строчку:
Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled();
Как говорится, "Зачем писать комментарии, если можно понятно называть функции".
К примеру на малинке или orange-pi Хромиум (armbian) работает, но возможности видеокрты не использует, поэтому видео на страницах того же youtube тормозит с fps 1-2 кадра в секунду, даже если принудительно включить в настройках поддержку GPU (толку ноль).
А вот если запустить скачанный фильм через mplayer или смотреть youtube по ссылке через плагин для kodi всё отлично показывает.
кто будет этим заниматься?В том-то и дело, что никто. Браузеры в отличие от видеоплееров отстают в покрытии/поддержке различных 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'ом.
«Меня сильно удивило, что багов отрисовки в Mac Os было обнаружено почти два раза больше, чем в Windows», хотя выше же в абзаце пишете о том что «решено было исправлять».
Возможно багов и меньше, но решено исправлять самих багов — больше, т.к. платформа более однородная, например. Т.е. количество хаков и костылей не обязательно прямо линейно с единым коэффцициентом зависит от собственно количества багов.
Возможно для винды меньше запаривались, потому что пользователи сами по себе привыкли обновлять драйвера в случае любых проблем. Вы слышали чтобы макоюзер что-то шел обновлять? Да и кто ему даст :D
Вы слышали чтобы макоюзер что-то шел обновлять? Да и кто ему даст :D
Вы когда-нибудь сами макосью пользовались? Похоже что нет, иначе знали бы, что Apple очень настойчивы по поводу установки обновлений. Вплоть до принудительного перезапуска Safari, когда им "никто не пользуется" (паубывав бы!), и ежедневных назойливых напоминалок про системные обновления, пока не установишь.
Вполне знаю. Но у меня Windows 10 только в виртуалках живёт, ради браузеров всеразличных. В качестве хост-системы Windows для меня умерла лет 7 назад.
А в виртуалках хоть и раздражает, но всё-таки меньше. Благо, пока одна пытается обновиться (и обламывается почему-то), можно в другой тесты гонять.
Месяцами живу без редутов и ничего не виснет.Чяднт?
И да, пользуюсь 10.13 сейчас.
Про напоминания оси я помню, я скорее пытался намекнуть что редко сами производители софта под мак пишут мол «обновите у себя что-нибудь», в то время как в виндовом такое случается.
С другой стороны, если пользователи выполняют заветы эпла и ставят все заплатки по расписанию, оч странно зачем для них костыли в коде плодить…
Доля винды — больше, а багов под неё — меньше. Выводы можно делать разные, но я скорее поверю в то, что там все же количество багов ниже, по каким-то причинам. Ну просто потому что вероятность столкнуться с багом выше, а частота их появления — ниже.
Но вот оказалось, что зоопарк Windows в два раза более живуч и стабилен
Или, как вариант, от Windows-пользователей приходит меньше баг-репортов
Зря на макось ругаетесь, посмотрите какие баги исправляются, это или совсем древность, или особенности макоси и оптимизации для нее, или что-то вроде: «Force to use discrete GPU on older MacBookPro models»
Да, есть исправления конкретных косяков, но не много.
Мой любимый файл в кодовой базе Chromium