Dziś jest wtorek, 2 grudnia 2008 roku (z kalendarza...)

Palenie mostów

Icon

19.07.2007, 16:05

Projekty

Komentarze (7)

Powrót

Wszystkie znaki na niebie i ziemi wskazują, że jutro światło dzienne ujrzy OPT 1.1.3 z paroma niedużymi, ale pomocnymi usprawnieniami. Tymczasem koncepcja OPT 2.0 wciąż jest na etapie planowania. Powiem więcej: jestem w kropce. Parser XML z jednej strony udostępni szereg nowych możliwości, które przydadzą się w Open Power Forms, ale z drugiej skomplikuje to, co teraz jest proste.

Przyznam szczerze: nawet w swoich projektach, choć tryb zgodności z XML-em mam włączony, nie zawsze z niego korzystam i robię np. sekcje na klamerkach. Szybciej się to pisze, a zgodności kodu HTML po stronie serwera i tak nie sprawdzam, tak samo jak pliku szablonu w przeglądarce nie wyświetlam. W każdym razie powoli dochodzę do wniosku, że całkowita rezygnacja z klamerek byłaby dość głupim posunięciem. "N" osób by się wtedy do OPT przekonało, ale jest też "m" osób, które właśnie za obecność klamerek ten parser sobie cenią. Weźmy choćby eXtrema, który wprost mi powiedział, że mając włączone klamerki, od razu widzi, gdzie ma znaczniki systemu szablonów, a gdzie HTML (ach, to kolorowanie "Smarty" w edytorach :)), a ponadto sporo rzeczy znacznie łatwiej mu wykonać, gdy statyczna treść jest traktowana jak zwykły tekst. Co prawda jest sam sobie winny, że pisze takie zaśmiecone szablony, ale jednak ma sporo racji. Czy koniecznie trzeba palić doszczętnie dotychczasowe mosty tylko dlatego, że pełną zgodność z XML-em się wprowadza? XML jest standardem, ale przeznaczonym bardziej dla języków opisu. Rzecz zbliżona możliwościowo do języka programowania oparta o XML może być w wielu miejscach (i zazwyczaj jest) zwyczajnie niewygodna w użyciu. Przykładowo, osobiście gdybym miał korzystać z cudzego systemu szablonów, to w życiu nie wziąłbym czegoś, co nie oferuje alternatywnej składni dla takiego potworka:

tekst tekst <parse:put name="zmienna"/> tekst tekst

Nie jest to wyssany z palca przykład, na forum już dostałem propozycję, by iść za ciosem i umożliwić TYLKO taką formę osadzania danych w szablonie. Aby racjonalnie pracować z tego typu formami bez ataku nerwicy, edytor musiałby obsługiwać skróty klawiszowe do 10 schowków naraz (czyli zamiast Ctrl+C,Ctrl+V dać jeszcze 9 innych), by mieć pod ręką najczęściej używane elementy składni.

Oczekiwania ludzi co do systemu szablonów są niesamowicie różne i często ze sobą sprzeczne. Postawy, jakie daje się zauważyć, to:

  1. Programowanie po stronie szablonów is cool.
  2. W szablonie nie powinno w ogóle być programowania.
  3. Przenoszenie programowania do szablonów w jakiejkolwiek postaci jest złe.
  4. Programowanie w szablonach bywa czasami (i w pewnym ograniczonym zakresie) użyteczne.
  5. Programowanie w szablonach jest konieczne!
  6. Precz z pseudojęzykiem!
  7. Przenoszenie logiki do warstwy prezentacji to pomyłka, ale warstwy prezentacji do logiki już jest OK.
  8. Przenoszenie logiki do warstwy prezentacji jest OK, ale na odwrót to pomyłka.
  9. Przenoszenie czegokolwiek do czegokolwiek jest złe.
  10. Na #$%$% szablony! PHP wszystko zniesie!
  11. Na #$%#% szablony! DOM to jedyna słuszna droga.
  12. Składnia klamerkowa jest nieczytelna.
  13. Składnia klamerkowa jest czytelna.
  14. Składnia a'la XML jest prosta w użyciu i daje dużo swobody.
  15. Składnia a'la XML niekoniecznie jest prosta w użyciu, ale daje dużo swobody.
  16. Składnia a'la XML ani nie jest prosta w użyciu, ani nie daje swobody (czyt: używaj klamerek).
  17. Sprawdzanie poprawności kodu HTML to niezbędny atrybut poważnego systemu szablonów.
  18. Nie chcę systemu szablonów ze sprawdzaniem poprawności! Mam inny format szablonów, a tak w ogóle to niekoniecznie muszę pracować z XHTML-em!

Skoro ludzie sami do końca nie wiedzą, czym powinny być szablony, w jaki sposób im dogodzić? Na pewno zawsze ktoś będzie kręcił nosem, że nazwa nie ta, że zamiast klamerek mogłyby być hasze albo słowo "ASS". OPT 2.0 będzie bardziej próbą odpowiedzi na pytanie, czy kilkadziesiąt kilobajtów odpowiednio zorganizowanego kodu jest w stanie choć część zdawałoby się, że wykluczających racji, pogodzić. Ci, co koniecznie chcą XML-a i sprawdzania składni XHTML, dostaliby ją. Ci, co wolą mieć trochę więcej swobody i mają negatywny stosunek do czegokolwiek mającego związek z programowaniem opartego na XML-u, też by to dostali. Myślę, że to jest wykonalne, i to wykonalne w elegancki sposób. Kluczem jest złoty środek, a nie próba wskazania "jedynej słusznej" drogi, która w dodatku nie zawsze lub nie dla wszystkich jest słuszna, o popadaniu ze skrajności w skrajność czy wręcz fanatyźmie nie wspominając.

Powrót

Komentarze

Napisał Bob w czwartek, 19 lipca 2007 o 17:26

Odnośnie przykładu z <parse:put name="zmienna"/> to wystarczy dowolny edytor xml uzupełniający składnię na podstawie dtd lub schemy. I wtedy już powinno być szybciej i od razu byłoby widać co można używać.

Napisał eXtreme w czwartek, 19 lipca 2007 o 18:03

Ja jestem za wprowadzeniem dwóch niezależnych kompilatorów (XML i uproszczony-klamerki) i wybór ich poprzez jakieś ustawienie konfiguracyjne (albo nawet bardziej programowalne, jak jakieś setCompiler('optXMLCompiler')). I tak to zarobić by cała reszta (czyli klasa główna, instrukcje, kompinenty czy co tam będzie, funkcje) "pasowały" do obu kompilatorów.

I uproszczony, to składnia ma być prosta jak budowa cepa (jak choćby w template w ezComponents), bo nawet teraz w tej podstawowej w 1.x można czasem dostać nerwicy.

Napisał eRIZ w czwartek, 19 lipca 2007 o 20:45

"Nie jest to wyssany z palca przykład, na forum już dostałem propozycję, by iść za ciosem i umożliwić TYLKO taką formę osadzania danych w szablonie."

Yyyy, a jak by to się do parsowania miało? Załóżmy, że zgodnie ze składnią XML-ową, dane siedzą w <!

Napisał Turgon w piątek, 20 lipca 2007 o 13:32

Może hybryda? Wiem, że to sporo więcej dla szablonu, ale gdyby opcjonalnie XML opisywał funkcję danego klamerkowego elementu szablonu. Mi się wydaje, że to jest ciekawa propozycja.

Napisał Zyx w sobotę, 21 lipca 2007 o 20:27

No i ... zbita z OPT 1.1.3 w piątek - burza odcięła nas tradycyjnie od Internetu, a dzisiaj wyjechałem na wieś i wszystkie pliki zostały w domu.

Ad. kompilatora -> najprawdopodobniej zrobię albo hybrydę, która będzie potrafiła sobie wyłączyć tryb XML, albo właśnie podwójny kompilator oparty na wspólnym rdzeniu tak, by instrukcje do jednego pasowały też do drugiego. Zobaczę, co uda mi się szybciej/łatwiej napisać :).

Napisał Bob w poniedziałek, 30 lipca 2007 o 17:57

Czekamy na 1.1.3 :)

Napisał Zyx w wtorek, 5 lutego 2008 o 22:12

Heh... jest 5 lutego, kompilator OPTv2 liczy już sobie 61 KB kodu i sprawuje się nadzwyczaj świetnie. Jak miło się czyta po X miesiącach takie wpisy :). Jednak posunięcie w kierunku XML-a było dobrym pomysłem. Jeszcze "tryb quirks" nie jest zaimplementowany, ale jest to wykonalne.

Strona 1 z 1 :: 1

Skomentuj

NickInformacja
E-mailTylko do użytku wewnętrznego.
WWWNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wiki
Internauto, pamiętaj! Wolność to nie samowola - dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2008 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia