Portál AbcLinuxu, 28. prosince 2025 22:30
Hixie to říká chytře, někteří lidé prostě vzývají značkovací bohy
Co takhle na něčem, co vysvětlím HTML kodérovi za pět minut a nehodí mi to na hlavu?WTF?? Tvuj koder chape lepe nejake novotvary nez markup, se kterym uz tak jako tak dela? Koderovi, ktery by nebyl schopen pochopit namespacy a par novych tagu ci atributu, bych zmenil pracovni zarazeni na uklizecku...
<gxp:template name='com.google.sample.ThisGxp
...>
<gxp:constructor java:annotate='@Inject'>
<gxp:param name='user' type='User' />
</gxp:constructor>
<java:annotate element='interface'
with='@ImplementedBy(ThisGxp.Instance.class)'/>
...
</gxp:template>
? Fakt ne, díky
(Já vím, to je pokus o důkaz sporem, ale prostě mi to nedalo. Když jsem uviděl tohle monstrum, říkal jsem si: dependency injection super, ale tudy ne, přátelé.)
Jasny, GXP evidentne neni moc cileny na kodery, ale napr. toto:
<ul tal:condition="x = y">
<li tal:repeat="val vals">${val}</li>
</ul>
snad nelze ani porovnavat s paskvily jako:
{if $x eq $y}
<ul>
{foreach from=$vals item=val}
<li>{$val}</li>
{/foreach}
</ul>
{/if}
nebo:
{% if x == y %}
<ul>
{% for val in vals %}
<li>{{ val }}</li>
{% endfor %}
</ul>
{% endif %}
To se na me nezlobte, ale druha a treti ukazka je drbani se levou rukou za pravym uchem. JSPX je o neco ukecanejsi nez prvni ukazka, ale alespon je to to taky cisty markup a da se na to rozumne koukat...
#if($x == $y) ... #endif než <c:if test="${x == y}"> ... </c:if>.
<% if @x == @y -%> some markup <% end -%>než se učit šablonovací jazyk, který přehlednosti nepřidá.
Takže tak nějak není moc důvod jim často cpát řetězce nebo jiné prasárny.
A vůbec, HTML je ve výsledku text a jinak než skládáním řetězců se vytvořit nedá, ne? Takže to "generují HTML skládáním řetězců" mi přijde trošku příliš vágní, než aby se dalo něco dodat - prasit se dá ve všem, a technologie != uživatel. To bych si pod tím také mohl představit nějakou pěknou kombinátorovou knihovnu nejlépe s monadickou polevou na vrchu a taky by to bylo "generování HTML skládáním řetězců", přestože bych se to v takovémhle případě neopovážil prohlásit za prasárnu.
V porovnání něčím takovým bych za prasárnu klidně mohl prohlásit spíš ty šablonovací jazyky.
Druhý odstavec byl jeden konkrétní příklad a rozhodně podle něj neodsuzuju celou technologii (kterou taky sám používám).
O všemožných evalech v Ruby nic moc nevím, monádám nerozumím (nesnáším haskellisty, jsou zřejmě chytřejší než já
), ale nic to nemění na skutečnosti, že když v jakémkoli jazyce napíšeš read-eval-print smyčku (v Ruby taky na pár řádek), máš vlastně (mimo jiné) šablonovací jazyk. A ať si kdo chce takový jazyk používá jak chce, pořád mi to přijde lepší než GXP
Byla napsaná v roce 1995 v Common Lispu, a měla hodně flexibilní programovatelné šablonování pomocí strukturního editoru přímo v prohlížeči (byl to webový obchod, který později koupilo Yahoo jako Yahoo Stores, a chtěli tudíž každému zákazníkovi (== provozovateli obchodů) umožnit tvorbu vlastního obchodu na míru). Viz RTML.
Zákazník nepochopí mako, zákazník nepochopí genshi, zákazník potřebuje jednoduché rozhraní a pokud možno co nejmíň věcí co může zkazit. Pro náročnější zákazníky je vhodná volba něco jako "pokročilé". Moje zkušenost
PS: Design stejně dělá designér, takže u mě jsou mako šablony použitelná volba a celkem flexibilní (právě díky pythonu)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.