Clojure
Clojure是一种健壮,实用且快速的编程语言,具有一组有用的功能,这些功能共同构成了一个简单,一致且强大的工具 .

The Clojure Programming Language

Clojure是一种动态的通用编程语言,它结合了脚本语言的可访问性和交互式开发以及用于多线程编程的高效,强大的基础结构. Clojure是一种编译语言,但仍保持完全动态-在运行时支持Clojure支持的每个功能. Clojure提供了对Java框架的轻松访问,并带有可选的类型提示和类型推断,以确保对Java的调用可以避免反射.

Clojure是Lisp的方言,并且与Lisp共享代码即数据的哲学和强大的宏系统. Clojure主要是一种功能性编程语言,并具有一组丰富的不可变的持久数据结构. 当需要可变状态时,Clojure提供了软件事务存储系统和反应式代理系统,可确保干净,正确的多线程设计.

我希望您会发现Clojure的设施组合优雅,功能强大,实用且有趣.

里奇·希基
Clojure和CTO Cognitect的作者

Companies Succeeding with Clojure

"我们的Clojure系统刚刚处理了它的第一个沃尔玛黑色星期五,而且没有刮擦."
Anthony Marcar,高级建筑师
沃尔玛实验室
" Clojure是一种自上而下的功能性编程语言. 这意味着用Clojure编写的代码是非常模块化的,可组合的,可重用的并且易于推理."
克里斯·普赖斯(Chris Price),软件工程师
木偶实验室
"我们讨论了现有的Clojure社区,语言本身的成熟度以及我们在行业中看到的势头. 公司正在看到基于Clojure的市场交付速度."
技术主管Dave Elliman
ThoughtWorks

阅读有关Clojure 成功案例的更多信息, 社区如何使用Clojure,以及使用Clojure查找公司 .

Features

Clojure具有一组有用的功能,这些功能共同构成了一个简单,连贯且功能强大的工具.

Dynamic Development

Clojure是一个可以与之交互的动态环境. 几乎所有语言结构都经过了具体化,因此可以进行检查和更改. 您可以不断加载数据,添加功能,修复错误,测试来扩展程序.

Functional Programming

Clojure提供了避免可变状态的工具,提供了作为一流对象的功能,并强调了递归迭代而不是基于副作用的循环. Clojure是不纯净的,但仍然支持这样的哲学:功能更强大的程序更强大.

LISP

Clojure是Lisp语言家族的成员. Lisp的许多功能使它成为了其他语言,但是Lisp的作为数据编码的方法及其宏系统仍然使它与众不同. 此外,Clojure的图,集合和向量与Closp中的列表一样,在Clojure中是第一类.

Runtime Polymorphism

利用运行时多态性的系统更易于更改和扩展. Clojure提供了用于运行时多态的简单,强大而灵活的机制. Clojure的协议和数据类型功能增加了抽象和数据结构定义的机制,而与主机平台的功能毫不妥协.

Concurrent Programming

Clojure simplifies multi-threaded programming in several ways. Because the core data structures are immutable, they can be shared readily between threads. Clojure, being a practical language, allows state to change but provides mechanism to ensure that, when it does so, it remains consistent, while alleviating developers from having to avoid conflicts manually using locks etc.

Hosted on the JVM

Clojure被设计为一种托管语言,共享JVM类型的系统,GC,线程等.所有功能均编译为JVM字节码. Clojure是Java的重要使用者,为Java调用提供了点目标成员表示法. Clojure支持Java接口和类的动态实现.

News

Upcoming Events

Cognitect

Cognitect汇集了经验丰富,思想周到的技术人员,他们热衷于帮助组织有效和人道地部署技术以建立更好的未来.

除了直接与公司合作以提供创新解决方案外,Cognitect还为部署Clojure和ClojureScript的公司和团队提供体系结构审查,培训和人才开发服务.

Cognitect还是Datomic的创建者, Datomic是具有灵活数据模型,弹性缩放和丰富查询的事务性数据库. 通过Datomic Ions,您可以将代码部署到正在运行的Datomic集群中,从而为AWS开发Clojure应用程序.

"我们创建了一些业务上最犀利的工具. 我们认为该平台是开发软件的更好方法,并且希望您对使用和部署这些工具充满信心. 开源并不意味着您已经一个人了." – cognitect.com