17 września 2010

Clojure w aplikacji webowej z Compojure oraz Ring i Hiccup

Logo ClojureMiało być filmowo, a wyszło literacko - zamiast skrinkastu pojawił się artykuł Clojure w aplikacji webowej z Compojure oraz Ring i Hiccup, w którym (cytując samego siebie z artykułu) zaprezentuję alternatywne podejście do tworzenia aplikacji webowych z Clojure i rozwiązaniami wspierającymi opartymi na nim - Compojure, Ring oraz Hiccup. W skrócie, Compojure to szkielet webowy, Ring to mechanizm uruchamiający środowisko kontenera webowego (w naszym przypadku będzie to Jetty) oraz Hiccup do tworzenia szablonów stron webowych. Po więcej informacji zapraszam na odpowiednie strony domowe projektów (które nota bene są we wczesnej fazie rozwojowej i większość z nich to projekty na GitHubie). Swoje miejsce znalazły również Leiningen, NetBeans IDE i enclojure!

Chciałbym tym samym podziękować Danielowi Janusowi, który zapoczątkował moje poznawanie Compojure i który niestrudzenie pomaga mi zrozumieć tajniki samego Clojure w postaci komentarzy na tym blogu. Jestem zobowiązany. Dzięki.

Gdyby tego było mało, właśnie pojawiła się inicjatywa poprowadzenia zainteresowanych poznaniem Clojure przez zakamarki języka i rozwiązań wspierających w postaci nowego bloga Clojure Blog. Na mój apel odnośnie pomocy w prowadzeniu takowego, napisał do mnie Marcin Rzewucki i tak oto, po kilku dniach, mamy owoc jego pracy. Nie daj mu zapomnieć o swoim krytycznym (w pozytywnym tego słowa znaczeniu) podejściu do publikowanych tam treści i daj się zauważyć, np. w postaci komentarza, albo pomysłu na kolejne wpisy. Marcin wykazuje niespożytą energię, którą zamierza przeznaczyć na przybliżanie nam Clojure, ale świat jest pełen pokus i może zdryfować :-)

Wracając do artykułu...Co jest niezwykle odświeżającym doświadczeniem, które pozostawia niezapomniane wrażenia po przeczytaniu tego artykułu, to fakt, że stworzenie aplikacji webowej w Clojure nie wymaga bardzo rozległej wiedzy. Szkielety webowe w Clojure składa się z interesujących i potrzebnych funkcjonalności, co stoi w przeciwieństwie do bardzo rozbudowanych (i wielokrotnie "spłycanych" do wykorzystania nielicznych funkcjonalności) szkieletów javowych. To może być cenione i ganione jednocześnie. Dla mnie, początkowo, taki sposób budowania aplikacji webowych przypominał programowanie w assemblerze, ale nie trwało długo, aż zdałem sobie sprawę, że może doświadczam niepotrzebnego zwątpienia, bo być może tylko tyle mi akurat potrzeba i szczęśliwie dobrałem właściwe narzędzie do problemu (a nie próbowałem dopasowywać problem do narzędzi). Ocenę pozostawiam Tobie.

Zapraszam do lektury Clojure w aplikacji webowej z Compojure oraz Ring i Hiccup. Nie powinien zająć więcej niż 10 minut. Uwagi i komentarze mile widziane, a wręcz oczekiwane.