@Rumpelstilzchen

Тег многобукв в блоге Rumpelstilzchen

Rumpelstilzchen

Притча о биткойнах.
"Однажды в деревне появился торговец и объявил жителям, что он будет покупать у них обезьян по 10 долларов. Сельские жители, видя как много обезьян в джунглях, забросили свои участки и принялись ловить обезьян. Торговец накупил тысячи обезьян по 10 долларов, но количество обезьян стало уменьшаться и ловить их стало все труднее.

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

Помощник собрал всех жителей деревни и предложил им сделку: Посмотрите на все эти клетки с тысячами обезьян, которые вы уже поймали. Я готов уступить их вам всего по 35 долларов, а когда вернется торговец, вы продадите их ему по 50 за штуку!

Жители деревни подумали, посчитали, потом собрали все свои сбережения, набрали долгов и скупили всех обезьян на 700 миллиардов долларов. После этого они никогда уже не видели торговца с помощником. Зато у них остались большие долги и совершенно ненужные им обезьяны.

Это все, что вам нужно знать о биткойнах."

Теперь главный вопрос - если жители деревни скупили обезьян на такую сумму денех, то ведь сначала мошенники купили этих обезьян у них, не так ли? Скажем, усредненно, по 15 баксов за штуку, а деревня выкупала взяд по 35. То есть как ни крути, мошенники сначала должны были отбашлять ну порядка 200-300 ярдов долларов? Что же это за мошенники такие с такими бабками?

Rumpelstilzchen

Вот есть просто отличный пост касательно ситуации с ФФ, который почти во всем прав (кроме мелких деталей). Осторожно - многобукв.
"Расширения имеют полный доступ к внутренностям браузера. Они могут изменить всё что угодно, но при этом очень чувствительны к любым внутренним изменениям. Представьте, нет никакой инкапсуляции. Расширения имеют доступ абсолютно ко всему. В самых плохих случаях расширения могут патчить код некоторых функций UI браузера на лету. Малейшие изменения в этом ломают те или иные расширения. Причём расширения могут не просто ломаться, а продолжать работать неправильно, с утечками памяти, тормозить и т.д. Авторы расширений часто не следят пристально за своими расширениями, часто забрасывают. В итоге — при обновлениях браузера у пользователей часто случаются проблемы с расширениями, что часто проявляется в виде нестабильности или тормозов, что сильно портит репутацию браузеру. Мало кто из пользователей готов снисходительно относиться к подобным проблемам в обмен на максимальную гибкость. По этой же причине у разработчиков связаны руки. Они не могут позволить себе вносить серьёзные изменения в браузер.

Исторически Firefox всегда работал в один поток. Все вкладки, код всех расширений, код главного окна — всё в один поток (и всё на JS). И просто так это не изменить — все расширения, которые хоть как-то обращались с контентом вкладок, опирались на простой синхронный способ доступа к контенту вкладки. Это нельзя просто так разнести на потоки или процессы. Соответственно: А. Оно работает медленно; Б. Оно небезопасно (вкладки выполняются в процессе с обычными правами); В. Падает вкладка — падает всё. Последние несколько лет они это меняли, ввели многопроцессность и всё такое. Но до сих пор большинство расширений не поддерживают это, до сих пор большинство расширений опирается compatibility shims, которые разработчики добавили для совместимости, но эти заглушки делают браузер даже ещё медленнее, потому что добавилось взаимодействие между процессами. Расширения должны быть переписаны, скрипты для интерфейса и контента должны быть строго разделены, и должны общаться через механизм сообщений, то есть если раньше основной скрипт прямо из интерфейса мог обратиться к документу и наделать кучу работы, то сейчас всю работу должен делать отдельный контент-скрипт, который отдаст результат основному скрипту через установленный канал. Но авторы расширений не спешат с переписыванием. Как результат — внедрение многопроцессности много лет переносилось, дорабатывалось, перерабатывалось, и внедрили это совсем недавно, с толстым слоем совместимости, который делает всё ещё хуже (в плане производительности).

Mozilla уже несколько лет пишет новый движок Servo. Но пока расширения так сильно завязаны на внутренности браузера, о таких переменах в Firefox говорить не приходится. У разработчиков связаны руки.

Отказом от старых расширений и переходом на WebExtensions Mozilla решает сразу несколько критичных проблем:
1. Расширения больше не будут иметь доступ к внутренностям. Это развяжет руки разработчикам и они наконец смогут вносить существенные изменения в архитектуру браузера.
2. Расширения не будут ломаться после каждого обновления. У них будет узкое специализированное API, которое будет стабильно.
3. Многопроцессность сможет работать в полную силу. Вы сами назвали браузер «тормозиллой» не просто так. У Firefox действительно такая репутация. Ну а что вы хотите, в один поток много работы быстро не сделаешь, а внедрять многопроцессность они начали недавно, и то она много у кого не работает как надо из-за расширений.
4. Соответственно это и попытка исправить репутацию браузера, который воспринимается людьми как «тормозной», «глючный», с «регулярно отваливающимися расширениями».

Недостатка при этом два, существенных:
1. Отвалятся все старые расширения.
2. Многие из старых расширений будут невозможны на новом API из-за того, что стабильные API на все случаи жизни придумать невозможно (например, API для модификации существующих элементов GUI браузера), а доступа к внутренностям браузера не будет.

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

Я объясняю, почему разработчики Firefox решились на этот тяжёлый шаг. Но я не рад, что они идут на этот шаг. У меня Firefox увешан расширениями с ног до головы и очень тонко настроен под мои нужды, что не может предложить ни один другой браузер. И я очень привык ко всем добавленным расширениями фишкам GUI, что делали мой сёрфинг гораздо приятнее. Я сам поддерживаю несколько расширений, и 3 из 4 не смогут быть перенесены на WebExtensions. И по этой причине я принял решение оставаться на Firefox 52 ESR так долго как это будет возможно.

Я сижу на Firefox с самой первой версии, а до этого был ещё и на Mozilla Suite. При этом всё это время я наблюдал полный спектр проблем с Firefox. Расширения отваливались. Иногда не целиком, иногда — частично, ломая попутно что-нибудь малосвязанное с этим. Расширения, которыми я пользовался, забрасывались авторами (и 2 из них мне пришлось самому форкнуть, доработать и поддерживать). Мои кастомные стили также иногда ломались, и их тоже приходилось иногда дописывать. Я программист, я могу себе это позволить. Я понимаю, почему оно так, принимаю это и не жалуюсь. Но что тут говорить об обычных пользователях, когда даже большинство других программистов точно так как и обычные пользователи жалуются на описанные выше проблемы?

Я мог быть снисходительным к описанным проблемам из-за тех безграничных возможностей кастомизации, что даёт уже устаревшая система расширений. Но 99% других пользователей это не волнует. Они хотят просто браузер, который работает быстро, стабильно, и не требует внимания на очередную починку очередной поломки. Тех, кто готов возиться с браузером для решения проблем даже раз в полгода или в год — ничтожно мало.

По сути, они это делают для всех ругающихся на Mozilla из-за проблем совместимости расширений между разными версиями Firefox. То есть если раньше перманентно ругались по чуть-чуть на пути Firefox 1.0 → Firefox 56, то после релиза Firefox 57 будет большой взрыв ругани, недели которого которого хватит на 3 года вперёд. А вот следом — проблема будет по сути решена. Нет полного доступа к внутренностям браузера → нет расширений, которые будут ломаться при изменении внутренностей → нет нытья о том, что «злая Mozilla всё опять поломала».

Я ещё в 2013 году (когда Opera отказалась от Presto) писал, что нужно быть благодарным Mozilla за то, что они упорно поддерживают свой гиковский подход, хоть он и проблемный и регулярно портит им репутацию. Вот, ещё 4 года продержались. Все 4 года кто-нибудь обязательно поливал их помоями из-за поломки очередного расширения или других связанных проблем. Хорошая демонстрация того, как сложно им было решиться на такой радикальный шаг по решению обозначенной проблемы. Очень уж не хотелось потерять свои уникальные расширения. Потратили уйму времени на внедрение многопроцессности в текущую архитектуру, только-только успели внедрить это в браузер, да и то не успели полностью перейти (и многие расширения до сих пор не адаптированы), слой совместимости, который сильно тормозит браузер, если расширения опираются на этот слой, всё ещё включен. Но в итоге исправление репутации «глючного и постоянно ломающегося браузера» перевесило и оказалось более важным. Разработчики в блоге говорят что ни при каких обстоятельствах они не будут переносить момент отказа от XUL, хотя некоторые на это и надеются (и я тоже сразу надеялся, что сроки перенесут)."
https://habrahabr.ru/post/329780/#comment_10242468

Тут все верно кроме разве что заявления о "толстом наборе shim-ов", в действительности это не совсем так, CPOW (врапперы) были изначально, но из повыносили уже пару релизов как, шимы если и есть то лишь кое где - смотрите сами http://arewee10syet.com/
Да и как я уже писал в Ночнушке шимы уже и так запрещены.
Проблема "аддоны имеют полный доступ к внутренностям браузера" - сииильно преувеличина. Да, последнее время я даже встречало пару постов о том, что "ололо, аддон может намалварить в ФФ, как же так". Ага, новость. А все годы до этого никто не знал об этом?
И то что "ололо, расширения могут сломать браузер" - тоже сгущение красок. Могут, да. И ломались и ломали после обновления браузера. Хотя темы скажем ломали куда чаще. И решалось это либо 1) обновление расширений либо 2) сносом протухших.
Почему все годы до этого это было нормой, а сейчас вдруг стало проблемой?
Что действительно печально - "Я мог быть снисходительным к описанным проблемам из-за тех безграничных возможностей кастомизации, что даёт уже устаревшая система расширений. Но 99% других пользователей это не волнует. Они хотят просто браузер, который работает быстро, стабильно, и не требует внимания на очередную починку очередной поломки. Тех, кто готов возиться с браузером для решения проблем даже раз в полгода или в год — ничтожно мало."
Вот это, бро, реально беда. Напомню, неоднократно утверждалось инженерами Мозиллы, что ~60% юзеров ФФ ВООБЩЕ не используют никакие аддоны. И они, ес-но, не почувствуют никаких неудобств.
так что, это не Хром победил. Это тупая масса "не хочу ничего настраивать мне и так хорошо победила.

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.