clojure.org Open in urlscan Pro
2600:9000:2251:ac00:13:c3f3:9e00:93a1  Public Scan

Submitted URL: http://clojure.org/
Effective URL: https://clojure.org/
Submission: On September 13 via api from SG — Scanned from DE

Form analysis 1 forms found in the DOM

Name: wf-form-Search-FormGET /search

<form id="wf-form-Search-Form" name="wf-form-Search-Form" data-name="Search Form" action="/search" method="get">
  <div class="w-row">
    <div class="w-col w-col-9 w-col-small-9">
      <input id="q" type="text" placeholder="Search clojure.org reference, guides, and API" title="Search text" name="addsearch" data-name="q" autofocus="autofocus" class="w-input clj-search-input">
    </div>
    <div class="w-col w-col-3 w-col-small-3">
      <input type="submit" value="Search" data-wait="Please wait..." class="w-button clj-search-submit">
    </div>
  </div>
</form>

Text Content

Clojure
OverviewReference‍APIReleasesGuidesCommunityDevNews



Clojure is a robust, practical, and fast programming language with a set of
useful features that together form a simple, coherent, and powerful tool.
Get Started!


THE CLOJURE PROGRAMMING LANGUAGE

Clojure is a dynamic, general-purpose programming language, combining the
approachability and interactive development of a scripting language with an
efficient and robust infrastructure for multithreaded programming. Clojure is a
compiled language, yet remains completely dynamic – every feature supported by
Clojure is supported at runtime. Clojure provides easy access to the Java
frameworks, with optional type hints and type inference, to ensure that calls to
Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy
and a powerful macro system. Clojure is predominantly a functional programming
language, and features a rich set of immutable, persistent data structures. When
mutable state is needed, Clojure offers a software transactional memory system
and reactive Agent system that ensure clean, correct, multithreaded designs.

I hope you find Clojure's combination of facilities elegant, powerful, practical
and fun to use.

Rich Hickey
author of Clojure and CTO Cognitect


LEARN MORE

RATIONALE

A brief overview of Clojure and the features it includes

GETTING STARTED

Resources for getting Clojure up and running

REFERENCE

Grand tour of all that Clojure has to offer

GUIDES

Walkthroughs to help you learn along the way

COMMUNITY

We have a vibrant, flourishing community. Join us!


COMPANIES SUCCEEDING WITH CLOJURE

> “Our Clojure system just handled its first Walmart black Friday and came out
> without a scratch.”

Anthony Marcar, Senior Architect
Walmart Labs

> “Clojure is a functional programming language from top to bottom. This means
> that code written in Clojure is very modular, composable, reusable and easy to
> reason about.”

Chris Price, Software Engineer
Puppet Labs

> “We discussed the existing Clojure community, the maturity of the language
> itself and the momentum we saw in the industry. Companies are seeing speed to
> market deliveries ... based on Clojure.”

Dave Elliman, Head of Technology
ThoughtWorks

Read more about Clojure success stories, how the community uses Clojure, and
find companies using Clojure.


FEATURES

Clojure has a set of useful features that together form a simple, coherent, and
powerful tool.

DYNAMIC DEVELOPMENT

Clojure is a dynamic environment you can interact with. Almost all of the
language constructs are reified, and thus can be examined and changed. You can
grow your program, with data loaded, adding features, fixing bugs, testing, in
an unbroken stream.

FUNCTIONAL PROGRAMMING

Clojure provides the tools to avoid mutable state, provides functions as
first-class objects, and emphasizes recursive iteration instead of side-effect
based looping. Clojure is impure, yet stands behind the philosophy that programs
that are more functional are more robust.

LISP

Clojure is a member of the Lisp family of languages. Many of the features of
Lisp have made it into other languages, but Lisp's approach to code-as-data and
its macro system still set it apart. Additionally, Clojure’s maps, sets, and
vectors are as first class in Clojure as lists are in Lisp.

RUNTIME POLYMORPHISM

Systems that utilize runtime polymorphism are easier to change and extend.
Clojure offers simple, powerful and flexible mechanisms for runtime
polymorphism. Clojure’s protocols and datatypes features add mechanisms for
abstraction and data structure definition with no compromises vs the facilities
of the host platform.

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 is designed to be a hosted language, sharing the JVM type system, GC,
threads etc. All functions are compiled to JVM bytecode. Clojure is a great Java
library consumer, offering the dot-target-member notation for calls to Java.
Clojure supports the dynamic implementation of Java interfaces and classes.


NEWS

 * 2022-09-09  Clojure Deref (Sep 9, 2022)
 * 2022-09-02  Clojure Deref (Sep 2, 2022)
 * 2022-08-26  Clojure Deref (Aug 26, 2022)
 * 2022-08-19  Clojure Deref (Aug 19, 2022)
 * 2022-08-12  Clojure Deref (Aug 12, 2022)


UPCOMING EVENTS

 * 2022-09-16  ClojureBridge London 2022
 * 2022-09-20  London Clojurians - Sept 2022
 * 2022-10-29  Dutch Clojure Day 2022
 * 2022-12-02  re:Clojure 2022


NUBANK

Nubank is one of the world's largest digital banking platforms, serving over 65
million customers across Brazil, Mexico, and Colombia. From its start, Nu has
had a spectacular success story with Clojure, running mission-critical software
at scale. In 2020, the company acquired Cognitect, the consultancy behind the
Clojure and the Datomic database.

Through the acquisition, Nubank incorporated a world-class team to assist
developers in translating Clojure's ideas into business agility and leverage the
company's mission to fight complexity and empower people. Currently, Nu is a key
corporate sponsor of Clojure and ClojureScript.

For more information about how Nubank builds products and teams, visit
building.nubank.com.br.



COMMUNITY

Resources Contributing Companies Site

LEGAL

License Privacy Policy

DOCUMENTATION

Overview Reference API Guides Libraries & Tools

UPDATES

News Events

ETC

ClojureTV Books Swag

CODE

Releases Source ClojureScript ClojureCLR
 
Copyright 2008-2022 Rich Hickey | Privacy Policy
Logo & site design by Tom Hickey
Published 2022-09-09