Portál AbcLinuxu, 6. května 2025 17:48
A tak když Mozilla přišla s rozhraním Australis, v němž byl adresní řádek pod oušky panelů, ihned jsem nainstaloval rozšíření Classic Theme Restorer, abych mohl adresní řádek vrátit zase nahoru, kde tradičně býval. Jenže Classic Theme Restorer ve verzi 57 přestane fungovat. Přesto jsem zjistil, že povrtáním se ve vnitřnostech Firefoxu lze i od verze 57 docílit polohy adresního řádku nahoře. Technicky to tedy možné je, ale běžnému uživateli (který chce jen přetahovat myší a ne vrtat se v konfiguračních souborech) tato změna vzhledu přesto není umožněna. A já se ptám, proč.Z vlastni zkusenosti prispevatele myslim ze to je dano jednak omezenymi zdroji (vsechny volne ruce se v soucastnosti venuji ladeni a opravam bugu v FF57) a malou poptavkou po teto konkretni uprave. Podivejte se na: https://addons.mozilla.org/cs/firefox/addon/classicthemerestorer/ stranka rika 325 306 uživatelů. Celkovy pocet uzivatelu Firefoxu je priblizne v radech stovek milionu (kolem 500 co si pamatuju). Podle techto udaju je tato zmena atraktivni asi pro 0.16% vsech FF uzivatelu. Rekneme si na rovinu, neni to zrovna mnoho :)
Az na to, ze XUL nema s prohlizecem spolecnyho prakticky vubec nic. (...) Nema to zhola nic spolecnyho ani s vykonem, ani s paralelizaci ani s nicim podobnym.No něco musí ten XUL obsah renderovat. Což je dost podobná úloha jako renderování HTML a jeho stylování, takže bych očekával, že tam určitě bude minimálně nějaký společný kód s prohlížečem (minimálně právě třeba CSS engine). A že XUL aplikace trpí špatným výkonem je celkem známo už roky. Vůbec se nedivím Mozille, že hodily XUL přes palubu, vzhledem k tomu, že dělá v podstatě to samé co HTML + CSS + JS, akořát hůř.
A že XUL aplikace trpí špatným výkonem je celkem známo už roky.
Známo to možná je, ale nevzpomínám si, že bych někdy viděl nějaké věrohodné vysvětlení, proč by to měl být principiální problém XUL jako takového a ne jen neefektivita konkrétní implementace.
> Do you really expect distributions to constantly > update to the latest git snapshot of the Rust compiler just because they are > updating their Firefox package? The latest stable distribution, not the latest git snapshot. Rust has a stable release every six weeks.
Doufám, že absurdita té odpovědi a mimoňství toho, kdo ji napsal, jsou dost zjevné bez obšírného vysvětlování.
Těch signálů, že o mne nestojí, je prostě už příliš mnoho. Překousl jsem toho hodně, ale Firefox 57 a nekompromisní odstřelení velké části rozšíření (včetně CTR, který je pro mne z kategorie "must have") je ta poslední kapka.
Doufám, že absurdita té odpovědi a mimoňství toho, kdo ji napsal, jsou dost zjevné bez obšírného vysvětlování.K tomu YACL: Souhlasím, že k balíčkování/distribucím ten přístup není kdovíco, moc se mi nelíbí. Např. podpora system-wide shared objectů je dost na vlastní pěst. (Což je IMHO průser, který nikdo moc neřeší.) Na druhou stranu, není tím, co chceš ESR verze FF? Ty 'rapid' verze mají podporu koneckonců ~měsíc, to mi přijde spíše vhodné pro distra jako Arch a podobně. V tom bugu taky píšou, že trackovat každou novou stable verzi rustc není dlouhodobý záměr. Co se týče podpory této YACL na platformách, příležitostně se tomu snažím pomoci. Např. jsem před časem fixnul socket API na illumos/Solaris a aktuálně se snažim vylepšit pár drobností na *BSD. Ono dát to všechno do kupy není až taková sranda, ti lidi nevytvářejí schválně problémy Michalu Kubečkovi, ale snaží se to celé ukočírovat a něco se daří, něco méně.
Těch signálů, že o mne nestojí, je prostě už příliš mnoho. Překousl jsem toho hodně, ale Firefox 57 a nekompromisní odstřelení velké části rozšíření (včetně CTR, který je pro mne z kategorie "must have") je ta poslední kapka.Hm, a jaký z toho vyvodíš důsledek? Nebylo by skoro jednodušší dát novému FF šanci? Ale samořejmě udělej co uznáš za vhodné...
Mně hlavně přijde absurdní, že někdo vůbec může napsat o překladači "vydáváme stable verzi každých šest týdnů" a myslet to vážně. Ještě absurdnější mi pak přijde použít takový překladač a jazyk v podstatné míře pro projekt používaný (jak sám uvádíte) stovkami milionů lidí a ještě ke všemu s tím, že se budou využívat nové featury toho jazyka, ještě než na nich uschne barva. Možná ze mne mluví čtyři roky v L3, ale tohle prostě považuji za nezodpovědnost.
Na druhou stranu, není tím, co chceš ESR verze FF?
Částečně a navíc by to stejně bylo jen dočasné řešení. Než začali blbnout s rustem, bez problémů jsem si balil snapshoty přímo z mercurialu a v předstihu jsem tak věděl, na jakou jobovku se zase připravit. Rustifikovaný firefox se mi ještě zabalit nepodařilo, protože rust sice k něčemu (link?) potřebuje gcc, ale musí to být aspoň gcc5 a rust ignoruje standardní proměnné prostředí, takže se mi nepodařilo mu vysvětlit, že místo "gcc" má volat "gcc-5.0" (ale je pravda, že jsem to vzdal už někdy začátkem prázdnin, takže to třeba opravili). A asi to nebude jen mojí neschopností, protože maintainer openSUSE balíčku je z toho nešťastný úplně stejně.
Stejně jako nevěřím v "distribuční turistiku", nevěřím ani v nové supergeniální jazyky, které spasí svět. Když jsem se učil programovat, byl populární názor, že klasické jazyky už to mají spočítané a do roku 2000 se všechno podstatné bude dělat v Prologu. Dnes už asi můžeme celkem bezpečně zhodnotit, že tahle vize se tak úplně nenaplnila. Od té doby jsem podobná prohlášení slýchal od věrozvěstů různých dalších jazyků a koncepcí (koneckonců se stačí podívat na diskuse na téma "programovací jazyky" tady na ABCLinuxu), ale C a C++ jsou tady pořád a i když neumím haskell, erlang, go ani rust (a nehodlám na tom nic měnit), o práci se nebojím.
Hm, a jaký z toho vyvodíš důsledek?
Prozatím zůstanu u verze 52, dokud to půjde, a mezitím se poohlédnu po alternativách.
Nebylo by skoro jednodušší dát novému FF šanci?
Kdyby bylo, neměl bych Classic Theme Restorer na "must have" listu (který, mimochodem, není nijak dlouhý, jinak jsou tam už jen AdBlock Plus a Greasemonkey).
Ještě absurdnější mi pak přijde použít takový překladač a jazyk v podstatné míře pro projekt používaný (jak sám uvádíte) stovkami milionů lidí a ještě ke všemu s tím, že se budou využívat nové featury toho jazyka, ještě než na nich uschne barva.No no. Ty featury procházejí procesem stabilizace a nejsou nikdy stabilizovány, dokud nejsou ověřeny, trvá to AFAIK minimálně dva ty vývojové cykly (ie. 1/4 roku) a většina nových / nestabilních featur je v nightly o dost déle než se přesune přes betu do stable (některé jsou pouze v nightly roky).
Rustifikovaný firefox se mi ještě zabalit nepodařilo, protože rust sice k něčemu (link?) potřebuje gcc, ale musí to být aspoň gcc5 a rust ignoruje standardní proměnné prostředí, takže se mi nepodařilo mu vysvětlit, že místo "gcc" má volat "gcc-5.0" (ale je pravda, že jsem to vzdal už někdy začátkem prázdnin, takže to třeba opravili).Ano, závislost na GCC je kvůli linkování, protože LLVM donedávna neměl svůj vlastní linker (a nevím, jak je na tom ten nový se stabilitou). Jinak linker nastavit u rustu určitě jde, vím, že jsem to potřeboval minimálně pro cross kompilaci na ARM a/nebo Solaris (a to bylo třeba ~rok zpátky). Nevysypu ti z hlavy, jak přesně se o dělá, ale jít by to mělo.
Stejně jako nevěřím v "distribuční turistiku", nevěřím ani v nové supergeniální jazyky, které spasí svět.To já samozřejmě taky ne. Ale stejně tak nevěřím, že je dobrý přístup rezignovat na vývoj jazyků, říct že vše užitečné už bylo objeveno a dát všem befelem C99/C++11. Mimochodem, neměl jsi ještě donedávna údernou patičku kritizující C++? (Nebo si to s někým pletu?)
No no. Ty featury procházejí procesem stabilizace a nejsou nikdy stabilizovány, dokud nejsou ověřeny, trvá to AFAIK minimálně dva ty vývojové cykly (ie. 1/4 roku) a většina nových / nestabilních featur je v nightly o dost déle než se přesune přes betu do stable (některé jsou pouze v nightly roky).
Obávám se, že naše chápání termínu "stabilní" u klíčových komponent systému (za kterou překladač považuji) se míjí naprosto zásadně, dost možná i řádově.
Ale stejně tak nevěřím, že je dobrý přístup rezignovat na vývoj jazyků, říct že vše užitečné už bylo objeveno a dát všem befelem C99/C++11.
Rezignovat určitě ne, ale znepokojuje mne trend čím dál větší adopce všemožných nových jazyků, které jsou jednak ještě ve stádiu divokého vývoje, jednak si do značné míry vynucují svůj vlastní balíčkovací systém.
Ono to má i praktické důsledky. Zorientovat se v cizím projektu je vždycky problém (i pro toho, kdo v tom má praxi) a když bude navíc každý napsaný v jiném jazyce, tak se na to většina lidí vykašle rovnou. Už jsem na to několikrát narazil, když jsem si říkal, že bych někde něco opravil, ale když jsem zjistil, v čem je to napsané, chuť mne rychle přešla.
Mimochodem, neměl jsi ještě donedávna údernou patičku kritizující C++? (Nebo si to s někým pletu?)
Především si nejsem jistý, jestli jsem tu vůbec někdy měl nastavenou patičku. A jakkoli mám vůči C++ řadu výhrad, patří spíš k mým nejoblíbenějším jazykům a pro poměrně velkou třídu úloh je to dokonce má první volba.
Obávám se, že naše chápání termínu "stabilní" u klíčových komponent systému (za kterou překladač považuji) se míjí naprosto zásadně, dost možná i řádově.Ale ne. Já ten požadavek na tu stabilitu v delším horizontu chápu, ale zároveň vnímám i ten pohled z druhé strany: Rust se musí vyrovnávat s protichůdnými nároky, na jedné straně je tam pochopitelně ten požadavek na stabilitu, podporu platforem a všeobecnou vyspělost (zejména lidé zvyklí na C/C++ si často neuvědomují, co všechno má C/C++ za sebou a jak dlouho to trvalo), na straně druhé ale zároveň požadavky na všelijaké featury. Ten jazyk musí zároveň v relativně krátké době prokázat, že je užitečný, zajímavý a reálně nasaditelný, ale zároveň být stabilní. To není jednoduchá situace. Mimochodem, jak často vychází nový stabilní kernel, když už jsme u těch klíčových systémových komponent? A co třeba nedávno nová verze glibc, která odstraňuje jeden header file ("xlocale.h", což bylo potřeba opravit v Perlu btw.) a macro
SIGUNUSED
.
A jakkoli mám vůči C++ řadu výhrad, patří spíš k mým nejoblíbenějším jazykům a pro poměrně velkou třídu úloh je to dokonce má první volba.Jsem také příznivec C/C++ (koneckonců, živí mě to), ale pro takovou věc jako browser je problematická bezpečnost. Jistě zaznamenáváš neutuchající přísun bugů typu buffer overflow apod. v projektech napsaných v C/C++. Rust má do jisté míry ten rozměr cool nového jazyka, jak jsi napsal, a bohužel existují kolem něj fanatici, ale důvody Mozilly pro jeho vytvoření a použití ve FF jsou v zásadě pragmatické: Potřebovali jakzyk, který bude výkonově blízko C++, ale bude předcházet bugům tohoto typu. Jistě, ten nový CSS engine by určitě šlo napsat v C++, ale kolik chyb s pamětí nebo race conditions by nová implementace obsahovala? Kolik soutěží typu Pwn2Own by bylo potreba na jejich nalezení? Čiliže Rust není pouze "Yet Another", ale poskytuje praktické výhody, které žádný jiný jazyk neposkytuje. Jestli chceš, můžem se domluvit a můžu ti zkusit někde na IRC pomoct ten nový FF sestavit s tim jiným linkerem...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.