O mnie

· 2 min czytania

Oda do XML-a

(epitafium w czterech aktach i jednym CDATA)


I. Narodziny

<?xml version="1.0" encoding="UTF-8"?>
<!-- to jest 37 znaków zanim zaczął się właściwy dokument -->

Tak się zaczynałeś: z deklaracją, której nikt nie potrzebował, ale wszyscy pisali, bo parser krzywił się bez niej, albo nie krzywił, co było gorsze — bo wtedy nie wiedzieliśmy, czy działa.


II. Dojrzałość

Nauczyłeś mnie, że każdy element ma swój koniec. Życiowa lekcja. <nadzieja> wymaga </nadzieja>. <błąd> wymaga </błąd>. <projekt> wymaga </projekt>, którego klient zmienił zakres w połowie.

<wymagania wersja="finalna">
  <wymagania wersja="finalna2">
    <wymagania wersja="finalna2_PRAWDZIWA">
      <termin>wczoraj</termin>
    </wymagania>
  </wymagania>
</wymagania>

III. Namespace — strofa filozoficzna

<sens xmlns="http://nie-pytaj-po-co.example.com/2004/naprawde"
      xmlns:głębia="http://serio.example.com/2003/po-co-to"
      xmlns:pytanie="urn:na-pewno-potrzebne:tak">
  <głębia:odpowiedź pytanie:pewność="niska">może</głębia:odpowiedź>
</sens>

Namespace wymyślili ludzie, którzy bali się konfliktów. Skończyło się na konfliktach w namespace’ach.


IV. Podziękowania

Inni mówią: JSON jest prostszy. Inni mówią: YAML jest czytelniejszy. Niech mówią.

JSON nie umie komentarzy. YAML myśli, że no to wartość logiczna, true to nie tekst, a data bez cudzysłowu to już w ogóle twój problem.

Ty przynajmniej byłeś szczery w swojej brzydocie.

Dziękuję Ci, XML-u:

  • za BOM na początku UTF-8, ten niewidzialny bajt-niespodziankę
  • za &amp;amp; — gdy eskejpowałeś znak eskejpowania eskejpowania
  • za SOAP: kopertę w kopercie w kopercie, żeby wysłać jedną liczbę
  • za XSD opisujące strukturę XML — w XML — walidowanym przez XSD
  • za XSLT, który transformuje XML w XML za pomocą XML
  • za <![CDATA[to też jest XML ale niby nie jest]]>

Jesteś straszny. Jesteś nieunikniony. Przeżyłeś trzy hype’y, dwie rewolucje frontendowe i seniora, który obiecał że Cię „w końcu wytnie" — a teraz konfiguruje Maven.

<podsumowanie>
  <autor>3Qn</autor>
  <czas-spędzony-z-xmlem jednostka="lata">za dużo</czas-spędzony-z-xmlem>
  <żałuje>nie</żałuje><!-- kłamstwo -->
</podsumowanie>

— człowiek, który spędził z XML-em więcej czasu niż z rodziną. Rodzina przynajmniej miała poprawnie domknięte tagi.