Clojure/Script 学习


layout: post title: “Clojure Learning” description: "" category: devtech/clojure tags: [clojure, GraphQL]


RESTful Service Framework

  • Luminus 综合 web 框架,其中(查看 Profiles 详细包含内容)包含 RESTful Services 的实现。
  • Arachne is a full, highly modular web development framework for Clojure. It emphasizes ease, simplicity, and a solid, scalable design.
  • Hoplon ClojureScript Web Framework,如果只做一些网页,不多的动态效果,特别是你的技术栈还没有加入 React,而是在用 jQuery,而此时想试用 clojure script,那就可以试试这个 Hoplon 框架。
    • What is Hoplon? 说明了 hoplon 不同于 react 这类的使用虚拟 Dom 的框架的区别之处。
  • Precept A declarative programming framework, Precept is a framework for creating reactive web applications using a rules engine, declarative logic, and relational data modeling.
  • Pedestal is a sturdy(坚实的) and reliable(可靠的) base for services and APIs.
  • Liberator (Github repo) is a Clojure library for building RESTful applications.
  • Compojure is a small routing library for Ring that allows web applications to be composed of small, independent parts.
  • Moustache is a micro web framework/internal DSL to wire Ring handlers and middlewares.
  • bidi Bi-directional URI dispatch.
  • Silk Isomorphic Clojure[Script] Routing.

各框架比较图

Clojurescript TodoMVC Examples by Library 各种 cljs 框架的 TodoMVC 比较

Rich Hickey Already Answered That!

Tenzing, the awesome Clojurescript application template 默认无后台,专注前端应用开发。 注:Eclipse Public License

  • confetti-clj/confetti A tool to help creating and deploying static sites with AWS 在 AWS 上架设自己的静态网站服务 的工具。

Web server

  • Ring is a low-level interface and library for building web applications in the Clojure programming language. It is similar to the Ruby Rack library, the WSGI in Python, or the Java Servlet specification.
  • Chestnut is a Clojure/ClojureScript web apps application template.

React framework

  • Reagent
  • Om
  • Quiescent A lightweight ClojureScript abstraction over ReactJS, emphasizing its ability to (re)render immutable values efficiently.
  • Rum is a client/server library for HTML UI. In ClojureScript, it works as React wrapper, in Clojure, it is a static HTML generator.
    • Citrus State management library for Rum
  • Brutha Simple ClojureScript interface to React

GraphQL Framework

  • Lacinia is a library for implementing Facebook’s GraphQL specification in idiomatic Clojure. Github site

HTML UI lib

  • Rum is a client/server library for HTML UI. In ClojureScript, it works as React wrapper, in Clojure, it is a static HTML generator.
  • antizer ClojureScript library for Ant Design React UI components. 库倒是不错,可惜版本有点落后了,antd 已经 3.x 了,这个才适配 2.x

相关网站资料

与 Scheme 的区别和比较

What are the differences between Clojure, Scheme/Racket and Common Lisp?

The languages have somewhat different design philosophies. Scheme was designed as a minimal dialect for understanding the Actor Model; it later became used for pedagogy. Clojure was designed for concurrency. As a result, Scheme has a reputation of being minimal and elegant, Common Lisp of being powerful and paradigm-agnostic (functional, OO, whatever), and Clojure of favoring functional programming.

Scheme was designed to simplify the Lisp language, that was its only intent except it never really caught on. I think Clojure does something similar its meant to simplify Scheme for the JVM nothing more. Its just like every other JVM language just there to inflate the user experience, only to simplify writting boilerplate in Java land.