Portál AbcLinuxu, 30. dubna 2025 21:12
Ako myšlienka pekné ... ale ja neviem. Vývoj webov ma pomaly zabíja ... všetko je tu kompletne zlé. Jazyky sú zlé, ich použitie je zlé a ťažko sa niečo zmení prevodom python kódu na javascript. Nechápem ako niekto môže robiť weby. Nechápem ako je možné, že na obyčajnom google.com mi občas nefunguje história (majú tam riadenie back / forward pomocou js a občas to jednoducho nefunguje). Nechápem ako je možné, že nič nefunguje poriadne, nič nie je poriadne dotiahnuté, všetko funguje ako by tak na oko.
To víš. Jdou s dobou.Nechápem ako je možné, že nič nefunguje poriadne, nič nie je poriadne dotiahnuté, všetko funguje ako by tak na oko.
Ale dokazal bych si predstavit, ze i Python na tom bude lepe - napriklad by mohl byt ve standardni knihovne nejaky parsovaci/lexerovaci modul, neco jako pyparsing.Jo, pyparsing je fajn.
Co konkretne se ti v Pythonu tak libi na praci s retezci?Slices, různé metody, jako .replace() atd.. Celkově prostě jednoduchost a intuitivnost, kdy píšu subjektivně polovinu toho, co třeba v javě.
No me treba konkretne u regularnich vyrazu vadi, ze se porad musi testovat, jestli match == None. To je trochu nesikovne, ale mozna to pisu spatne.Mně u nich vadí, že je vždy do příště zapomenu, navíc je to nepřehledná slitá prasárna. BNF u pyparsing mi přijde jako mnohem čistější řešení.
Nedovedu si predstavit, jak by tohle rozumne mohl cist textovy parser.souhlas – binární a textové formáty jsou úplně jiné světy *) tudíž k němu jsou i parsery a knihovny
DSL ktery popisuje bezne pripadyJenže co jsou to běžné případy? Obávám se, že takový popisný jazyk by musel* být natolik bohatý, že by to byl běžný programovací jazyk… Spíš bych to řešil jako framework, do kterého by se daly psát moduly pro různé formáty – vstupem by byl proud bajtů a výstupem DOM, SAX nebo něco podobného. Framework by poskytoval funkce pro běžné úlohy (parsování různých číselných formátů, různé dekódování atd.), které by modul mohl volat a tím si ušetřit práci – ale kdyby na něco funkce nebyla, bylo by možné si ji v modulu napsat zcela bez omezení. S tímhle si trochu hraju** v Javě: abys mohl načítat různé formáty, abstrahovat od nich a pracovat s těmi daty jednotným způsobem – data pak můžeš transformovat pomocí XSLT nebo nad nimi dělat XPath dotazy, i když to původně byly třeba INI soubory, JSON nebo třeba ASN.1. *) jinak asi nepokryješ dost formátů, ale jen nějakou nezajímavou podskupinu (samozřejmě záleží, za jakým účelem to děláš – třeba máš vyhlídnuté formáty, pro které by to šlo – ale jako zcela obecné řešení mi to přijde utopie) **) už je to nějakou dobu, teď to leží rozpracované v šuplíku
data pak můžeš transformovat pomocí XSLTWow, on někdo XSLT skutečně používá? Nedávno jsem se o to trochu zajímal a podle toho co jsem našel to působilo jako technologie, která nějak nenápadně umřela.
v některých ohledech je XSLT stále nepřekonané
Třeba v ukrutné syntaxi
Je fakt, že nutnost psát if+else* pomocí tří elementů může některé slabší povahy odradit (ale má to svoje důvody a i něco do sebe…)
XSLT považuji za nepřekonané ze dvou důvodů:
<xsl:template match="…">
. Těch může být více a vybere se ta s nejlepší shodou (XPath dotazem). Šablona si udělá, co potřebuje, a pak může zase předat řízení dál pomocí <xsl:apply-templates/>
. To, co by se v jiných jazycích muselo řešit pomocí spousty ifů, switchů a cyklů, máš tady bez práce.*) nebo if, else if…, else – zatímco samotný if je jen na jeden element
xsltproc
). Pak jsou obvykle podporovaná rozšíření EXSLT. Verze 2.0 je toho umí ještě víc, ale potřebuješ procesor, který ji podporuje – třeba Saxon (aptitude install libsaxonb-java
, licence: Mozilla Public License version 1.0).
Taky koukni na knihovnu XSLT Standard Library.
Jako IDE se dá použít jEdit (spuštění transformace na jedno kliknutí) nebo cokoli na příkazové řádce (stačí zavolat xsltproc nebo saxon). V neposlední řadě můžeš použít běžný webový prohlížeč® jako např. Firefox a mít na začátku XML souboru:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="šablona.xsl"?>a prohlížeč udělá transformaci sám a není potřeba ji dělat do souboru – stačí mačkat F5 v prohlížeči. (příklad BTW: takhle by podle mého měly vypadat konfigurační soubory – uživatel by k nim měl dostat schéma, aby vědět co tam psát, a taky šablonu, aby si mohl konfigurák zobrazit v prohlížeči v lidsky čitelné podobě a s výkladem)
from jquery import jQuery if __name__ == '__main__': jQuery('input[type="button"]').click(lambda but: but.css('display', 'none'))
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
Kde se zastavit? To je jednoduche - predevsim oddelit jazyk a VM.+1
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.