Wszystko Evil

Pojawił się kolejny artykuł Allena Holuba z serii "Coś tam coś tam is Evli"

Na pierwszy ogień poszło dziedziczenie (Why extends is Evli), potem stosowanie akcesorów i mutatorów, czyli getterów i setterów ( Why getter and setter methods are evil). Teraz przyszedł czas na XML-a Just Say No to XML.

Holub pisze, że do przechowywania danych to jeszcze wolno używać XML-a, nie wolno go za to używać jako "język programowania" (he, he).

Na przykład nie wolno XML-a używać jako języka skryptowego, tak jak w ANT-cie. Jako języka opisu testów (jak w TestNG) albo do definicji encji (jak w Hibernacie). Nie wiem dlaczego Holub uważa, że w którymkolwiek z tych zastosowań XML jest używany jako język programowania. Co ma u diabła konfiguracja TestNG, mówiąca, że ma być wykonywany w ramach zestawu testów X test z klasy Y z językiem programowania?

Najzabawniejsze jest to, że temat artykułu sugerowany w tytule zostaje porzucony już w 2 akapicie na rzecz ordynarnej reklamy jakiejś książki o pisaniu kompilatorów (zacne zajęcie, skąd innąd).

Teza jest taka, że ci wszyscy, którzy używają XML-a robią to, bo są ciemni oraz leniwi i nie potrafią na swoje potrzeby utworzyć języka programowania, napisać do niego kompilatora albo chociaż interpretera i tego używać zamiast przeklętego XML-a.

Doskonały pomysł, marzę o tym, żeby do każdego z wymienionych narzędzi był oddzielny język programowania, którego składni by się trzeba nauczyć (najlepiej, żeby była taka jak w LISP-ie ;)). Wtedy mógłbym zająć się spokojnie robieniem notatek: używam TestNG, linie kodu trzeba zakończyć średnikiem; używam ANT-a, linię kodu kończę przecinkiem; używam Hibernate, muszę pamiętać o wcięciach w kodzie, itd. itp. Po prostu bajka.

Tak to wygląda, że Autor jest raczej teoretykiem programowania niż praktykiem i nie czuje, co w trawie piszczy.

Comments

Opcje przeglądania komentarzy

Wybierz preferowany sposób wyświetlania komentarzy i klinij na "Zapisz ustawienia", aby aktywować zmiany.

W ANTcie można programować w XMLu

W ANTcie można programować w XMLu jeśli używa się ant-contrib i tasków Foreach, If, Switch itd.

Ja właśnie tworzę procedurę instalacyjną przy pomocy ANTa i żaden teoretyk ani praktyk programowania nie przekona mnie do napisania w tym celu własnego kompilatora. W godzinę napisałem: ściąganie nowej wersji przez FPT lub SCP (w zależności od zewnętrznego pliku properties), rozpakowanie ZIPa, wykonanie kopii zapasowej, wgranie nowych plików, uruchomienie ANTa na nowym build.xml, który zainstaluje poprawki itp. Czy Allen Holub potrafi napisać w godzinę kompilator, który wykona te zadania?

Przesada, ot co

Artykułów, XML jest ZŁEM, BESTIĄ 666 czy dowolnie innym potworem, jest w sieci od diabła i jeszcze trochę. Pisanie kompilatora (a w zasadzie parsera) do każdej dupereli uważam za przerost formy nad treścią - bedzie jak w uniksie, gdzie każdy demon ma własny, unikalny format plików konfiguracyjnych, nie licząc DNS-a który ma aż dwa.
Zgadzam się, że wbrew temu, co pisali kwórcy XML-a, jest mu daleko do czytelności dla człowieka. Jest jednak sporo innych formatów, które są bardziej zrozumiałe dla człowieka, zwłaszcza dla plików konfiguracyjnych - properties, YAML...
Zwłaszcza te pierwsze są niedoceniane... pamiętam jak w mojej pierwszej robocie kierownik projektu kazał nam przerabiać properties na XML-a bo XML jest nowoczesny. Wyszło na to, że zamiast prostej, płaskiej struktury nazwa=wartość mieliśmy strukturę ......
Dodam że było to około Javy 1.2.1 więc o formacie XML dla properties można zapomnieć :)
-- Jiima --

znajomość budowy (tego,

znajomość budowy (tego, jak to działa), a nie tworzenia/pisania kompilatora :)

Trochę przesadziłeś z

Trochę przesadziłeś z flejmem ;) Facet stwierdza po prostu, że znajomość budowy kompilatora pomaga w dobrym pisaniu kodu, jednocześnie wskazując jako przykład złego użycia xml jako języka skryptowego - wychodzi z założenia, że "zwykłe", kompilowane języki programowania potrafią wykonywać te same operacje skuteczniej. No i poleca kilka książek, a nie tylko jedną. Wydaje mi się, że ten artykuł to skrót jakiejś grubszej opowieści, tylko miejsca na wyjaśnienia nie starczyło.

ant's picture

Ale z drugiej strony, jeśli

Ale z drugiej strony, jeśli tworząc projekt musiałbym stworzyć z 10 małych kompilatorów do różnych dupereli (tylko dlatego, żeby móc się nazwać _prawdziwym_ programistą, który wie jak _to_ [kompilator] zrobić) to jednak zostaję przy XML z całym dodatkowym bagażem, którym mnie ta technologia obarczy ;-)

Swoją drogą to nie przesadzajmy, że ten XML jest niewiadomo jak nieczytelny. To nie powieść - nie trzeba tego czytać od deski do deski, a na rynku są setki narzędzi do formatowania, czytania, przeszukiwania, przetwarzania, transformowania i generowania XML-i.

--
pozdrawiam
piotr maj

jcake software - http://www.jcake.com/