четверг, 11 августа 2011 г.

Clojure: The Phantom Menace

Еще буквально пару месяцев назад ситуация с веб-разработкой на Clojure была едва ли не плачевной. Чтобы разработать довольно простое приложение на Clojure нужно было здорово постараться, т.к. не было единого веб-фреймворка вроде того же Ruby on Rails.
Однако, оказывается, Clojure развивается просто стремительно. Не так давно появился фреймворк Noir, ориентированный на веб-разработку; недели две назад вышел ClojureScript; с месяц назад хостинг Heroku объявил о поддержке Clojure. Смесь получилась ядерная.
Во-первых, Noir -- достаточно модульная штука, которая позволяет пользоваться любимыми технологиями, Google Closure Templates, и забыть про ненавистный hiccup, используемый по-дефолту.
Во-вторых, Noir предлагает более удобный DSL для маршрутизации, по сравнению даже с Compojure.
В-третьих, это не любительская поделка, а небольшой стартап. Есть даже готовое приложение в продакшене, выполненное именно с применением Noir.
Можно также найти и вменяемое руководство по размещению приложения Noir на хостинге Heroku.
Еще недавно стала доступна библиотека Pinot, упрощающая использование ClojureScript на клиентской части. Один из очень приятных её бонусов: Ajax из коробки.
Конечно, до того же Ruby on Rails или Python Django еще далеко. Но это ничего, с такими темпами через год-другой Clojure станет очень серьезным конкурентом рубистам.

3 комментария:

  1. ну я бы не сказал что Compojure любительская поделка )

    Noir использует Compojure для маршрутизации, по сути чуть приукрасив routes dsl.

    И непонятно какой именно модульности не хватает в Compojure, у меня совершенно без проблем получилось прикрутить Enlive вмессто Hiccup (в котором я не вижу кстати ничего ужасного :) )

    ОтветитьУдалить
  2. ClojureScript еще настолько сырой, что исползовать его более-менее серьёзно можно будет дай Бог через год.

    ОтветитьУдалить
  3. Я, честно говоря, вообще не понял, в чем "фишка" этого noir. Вроде бы те же compojure+hiccup, только defhtml переименован в defpartial, да немного изменен синтаксис описания роутов.

    ОтветитьУдалить