popravde neco takoveho by se hodilo, kdyz potrebujeme stakeholderum nabidnou nejakej semi-interaktivni vypocet a neni cas resit back end. Ale toto vypada jeste hodne jako alfa verze.
Zatim to resime Jupyter Notebookem Lite (JupyterLite). To taky nepotrebuje back end, akorat to na zacatku nacita megabajty podpurneho runtime ve WASMu (to plyne z principu fungovani). Mozna by sel pouzit i Brython, ale neni cas, neni cas ...
Díky za článek.
Já ti vám nevím. Přijde mi to dost krkolomné.
Vzhledem k tomu, že plnohodnotný Python interpret jde spouštět na většině mainstreamových platforem (a šlo by jejich řady ještě rozšířit), nebylo by užitečnější, aby byl Python spustitelný jako volitelný, snadno doplnitelný plugin prohlížeče? (OpenOffice/LibreOffice si taky nosili Python s sebou.)
A klidně by to mohlo být univerzálnější než jen určené Python.
Bezpochybně by bylo třeba zajistit patřičnou izolaci, takto spuštěného procesu. Vyvarovat se chybám, které měli ActiveX, Silverlight, Java applets nebo Adobe Flash.
Přijde mi, že hlavní problém je v domluvě a standardizaci.
Zatímco tisícprvní transpiler si může ubastlit kdokoliv, domluvit se na podpoře kterou by "jednoduše" mohla integrovat většina webbrowserů, je řádově náročnější.
26. 10. 2023, 18:07 editováno autorem komentáře
Proto zmiňuji, poučme se z toho a navrhněme to tak, aby to nebylo bezpečnostní peklo.
Jestli to má obnášet úpravy jádra prohlížeče, OK. Jestli to má znamenat přepracování části jádra interpretů, OK. Jestli to bude potřebovat specifickou úpravu OS, OK. Jestli to bude znamenat podporu na straně HW, OK. Ale strávit dalších 10, 20..30 let polovičatým transcriptováním, to bychom chtěli?
Ale ved pomocou WASM si tam mozete dostat cely interpret nie? Napr. som nasiel nejake pyodide alebo brython. Pripadne ak nechcete interpreter v browseri ale chcete programovat nejake casti python-u mozete ich priamo prelozit do Javascriptu (co ukazuje tento clanok) alebo do WASM.
Pripadne Python -> Native code -> WASM.
WASM toto vsetko riesi.
Že bych přehlédl takhle snadné řešení?
Zkusil jste to někdy reálně použít? Já ano.
Brython jsem objevil někdy před 10 lety. Vývoj ve WASM bedlivě sleduji.
Ale... https://pythondev.readthedocs.io/wasm.html
Zkuste si přečíst diskuzi: https://www.root.cz/clanky/transcrypt-technologie-umoznujici-pouziti-pythonu-v-prohlizeci/nazory/
Tam je dost argumentů, proč to není, tak růžové jak by se mohlo na první pohled zdát.
Nesdílím totiž názor, že Python, nebo jiný schopný jazyk by měl být pouhá pomůcka pro browser a plnohodnotně má běžet někde na serveru.
To je, jako bych prohlásil, že jediný programovací jazyk v MS Windows bude Visual Basic a všechno ostatní se do něj bude transpilovat. Však na co by byl potřeba jiný jazyk když ve Visualku můžete naprogramovat všechno, co ve Win můžete potřebovat. A když chcete něco jiného, můžete si to pustit někde virtuálce, nebo na jiném počítači, vyrenderovat z toho obrázky a ty pak rychlostí 2 FPS promítat tím visuálkem. Možná i 3 FPS, když budete mít lepší HW.
Začínal jsem s počítači v 80kách. Proti těm časům máme na stole a v kapse počítače výkonnější, než byly tehdejší nejvýkonnější superpočítače.
Když vezmu jako referenční Pentium MMX na 133 MHz s 32MB RAM, což byl v roce 2000 solidní počítač, na kterém běžely tisíce programů, včetně browserů a tehdejších webových služeb, tak dnes máme, jen dle Moorova zákona, počítače 2000x výkonnější než bylo tehdy to Pentium.
Pokud jste ty časy zažil a uvědomíte si dnešní stav, tak vám nepřijde divné, kam se tenhle brutální výkon ztrácí?
Nepřijde vám, že je někde něco špatně?
Namátkou: Jak může jediná stránka, např. GMailu sežrat 500MB RAM, když před "pár lety" se do těch 32MB vešel celý OS a ještě několik spuštěných aplikací, každá funkčností a množstvím zpracovávaných dat překračující funkčnost tohohle rozšířeného webmailu.
A to ani nemluvím o Elektronových aplikacích, kde si i obyčejný textový editor, protože si s sebou tahá celý browser, sežere stovky MB, byť má funkčnost editoru, který by se vešel do pár kB.
Jsem tedy přesvědčen o tom, že celý ekosystém kolem webových aplikací, kde browser přebírá roli operačního systému by si zasloužil překopat od základů a s dnešními znalostmi, to vymyslet jinak a lépe. Operační systém obecně by měl především dobře řídit HW zdroje, měl by vytvářet bezpečné, spolehlivé a efektivní prostředí pro běh aplikací, měl by mít podporu pro řízení celého životního cyklus nasazení aplikací, a sám o sobě by měl OS, pro svůj běh, spotřebovávat co nejméně prostředků.
Obloukem tedy k vaší otázce "Tak fakt cakate ze python v browseri bude podoporovat multithreading? Na co?"
Zdaleka přeci nejde jen o ten multithreading.
Co mi to jen připomíná... aha: "640K is Enough For Anyone".
30. 10. 2023, 05:19 editováno autorem komentáře
S Pythonem, nebo jiným programovacím jazykem, který by byl použit stejným způsobem, jako je JS, bychom se mohli vyhnout některým dílčím problémům, ale jako celek by to nevyřešil.
Browser+http+html tak jak ho navrhl Tim Berners-Lee byl na prohlížení statických stránek docela fajn. Ale není čas, zamyslet se nad tím, že potřeby a možnosti jsou někde jinde a navrhnout to jinak a lépe.
Pro zajímavost: Ve stejném roce kdy Brendan Eich za 10 dnů vývoje hodil do placu JavaScript, tak vznikal web browser Grail, který měl místo JS Python.
Akorát se neprosadil, mohli jsme teď nadávat na nedostatky Pythonu na client side.
Ibaze odvtedy sme sa posunuli niekam dalej hlavne v oblasti bezpecnosti a mnohe obmedzenia ktore sa vam nepacia su prave z dovodu bezpecnosti 'neznameho' kodu ktory si nacitavate do browsera.
Asi by ste nechceli len tak niecie kusky Python kodu na vasom pocitaci.
Asi by ste dospeli do stadia v ktorom je dnes JS. V podstate iba dupkate nozickou a hovorite ja chcem programovat v Pythone browser. A ked vam niekto ukaze ze mozete tak este stale dupkate ze ale tamto chyba a tamto nejde, ... . Ja si tiez mozem takto dupkat ze to chcem robit v Jave. A aj sa to da ale radsej som sa naucil JS/TS.
Moc si nerozumíme.
Možná to bude tím, že jsem se dostal k sítím už v čase BBSek, programoval CGI scripty, zažil plíživý nástup JS, léta kódil v PHP a zavčasu (před 20 lety) od něj utekl jinam, do toho vyzkoušel stovky webových technologií, po mnohých dnes už ani pes neštěkne namátkou, WEP, XHTML, VRML, Java Applety, Flash, Silverlight, 100+1 variací na konečně ten správný JavaScript...
A pak přijde někdo, kdo si myslí, že "dupám nožkou" pro to, abych mohl spouště v browseru Pythoní scripty.
Ne, "nedupám nožkou" kvůli tomu, že bych chtěl v browseru spouštět jakýkoliv nezabezpečený kód, Python nevyjímaje. Dokonce i ten JS mám na spoustě stránek úplně vypnutý, například na seznam.cz protože tam dělá něco co nechci aby dělal.
Dupám nožkou, abych poukázal na to, že problém je už v základech a IMHO ho nevyřeší QUIC ani ECMA-262 verze XXX, a že kromě bezhlavého psaní tisíc prvního transpileru by stálo za zamyšlení, jak ztohoven.
Jako zni to hezky, ale kdo by to mel delat? Google to zkousel s Dartem, ale v podstate z toho nic nebylo - protoze proc by jeho konkurence mela neco takoveho akceptovat, kdyz uz ma zkustenosti s tim, jak to jde pouzit proti vam (MS - ted taha paradoxne za kratsi provaz).
Kdyz by ten plugin mel byt volitelny, tak to otevira tunu pripadu, kdy to nebude fungovat, protoze kazda "pohybliva" cast se muze nejak rozbit (stahne se spatny balicek, kolize s predchozi verzi, security problemy, policy nastavene firmou, nepodporovana platforma atd. atd.).
[taky bych mel mentalni problem takovy plugin povolit, i kdyby to mel byt Python]
Takze jsme skoncili ve stavu, kdy mame horko tezko nejaky JavaScript (novejsi verze vetsinou stejne transpilovane), transpilery dalsich jazyku a vsechno to ohybame (prikladem je asm.js). A nebo nevyzraly WASM.
Jednou se na toto obdobi budou vyvojari divat a klepat si na celo... :)
S X Window System to také vypadalo na zamrzlý stav ve kterém se horko, těžko dělaly změny, a dnes už to tak černě nevypadá.
Myslím, že základem je se domluvit a vytvořit jasný koncept, jak chceme do budoucna fungovat. Koncept s ohledem na vývoj potřeb uživatelů, služeb, vývoje HW a sítí, bezpečnosti, ...
Když bude jasný koncept, věřím tomu, že se najde skupina, která si bude chtít vydobýt nehynoucí slávu veškerenstva ( - početné skupiny hejtrů a skeptiků).
27. 10. 2023, 11:10 editováno autorem komentáře
S JavaWS na to šli z druhé strany.
Kořeny tohohle konceptu lze vysledovat do raných devadesátek, před dotcom bublinu k projektu Marimba Kima Polese.
V případě JavaWS byla primární desktopová aplikace s méně striktním sandboxem než Java applet, která se dala stáhnout, nainstalovat a spustit přes browser.
Někteří možná zaregistrovali RedHatí snahu IcedTea.
Podobně na to šly Zero Install a ClickOnce. Inspirace šla napříč dalšími projekty jako, Listaller, AppStream.
Šlo hlavně na vyhledání, výběr, distribuci, instalaci+integraci. Široce multiplatformní, využívající DOM nebo další silnou výbavu browserů, to tam nebylo.
Řekl bych, že dnes jsou vnoučata těchto technologií všemožné appstory a GooglePlaye, ... v Lin světě, se to slilo jako rozšířená funkčnost a grafické nástavby repozitářů.
Nejdál to v tomhle směru asi dotáhly herní platformy typu Steam, GOG, Epic, ...
Technologie JavaWS IMHO nežila moc radostným životem a zabil ji úpadek Javy jako takové, vyplývající ze situace SUNu a nepodařená akvizice Oraclem.
Něco z ní se stále snaží žít v podobě OpenWebStart https://github.com/karakun/OpenWebStart
28. 10. 2023, 01:05 editováno autorem komentáře