Clojure

詳細情報

タイトル Clojure
URL https://clojure.org/
バージョン ver 1.12.6
更新日 2026/09/04
追加日 2016/03/10
種別 フリーソフト / オープンソース(その他)
説明 JVM上で動作するLISP系の言語の方言の一つ。

レビュー

概要

ClojureはJVM(Java仮想マシン)上で動作するLisp系プログラミング言語です。2007年にRich Hickeyによって設計・公開され、Lispの「コードはデータである」という哲学を継承しながら、現代的な並行処理サポートと実用的なJavaとの相互運用性を実現しています。関数型プログラミングのパラダイムを中心に据え、イミュータブル(不変)なデータ構造をデフォルトとすることで、マルチスレッド環境でも安全・堅牢なプログラムを記述できます。Nubank(デジタルバンク)やWalmartなどの企業での採用実績もあり、エンタープライズ領域でも活用されています。

主要な特徴・機能

  • Lispの設計哲学: コードをデータとして扱う「ホモイコニシティ」を持ち、マクロによる強力なメタプログラミングが可能
  • JVM上での動作: JVMバイトコードにコンパイルされ、既存のJavaライブラリやフレームワークをシームレスに利用できる
  • 関数型プログラミング: 第一級関数、イミュータブルデータ構造、純粋関数を基本とし、モジュラーで再利用しやすいコードを書ける
  • 並行処理サポート: ソフトウェアトランザクショナルメモリ(STM)とエージェントシステムにより、安全な並行・並列処理を実現
  • 動的開発: コンパイル言語でありながら完全に動的で、REPLを使った対話的開発が可能
  • ClojureScript: JavaScriptへのコンパイルもサポートし、フロントエンド開発にも対応
  • リッチなデータ構造: リスト・ベクター・マップ・セットなどの永続的コレクション型を標準装備

対象ユーザー

関数型プログラミングに興味のある開発者、Javaエコシステムを活用しつつ生産性の高い言語を求めるエンジニア、並行処理の課題を解決したいバックエンド開発者を主な対象としています。エンタープライズシステムや金融・データ処理領域で特に採用が多く、Lispの哲学に共鳴するプログラマーにも広く支持されています。

ライセンス情報

Eclipse Public License 1.0(EPL-1.0)のもとでオープンソースとして提供されています。無料で使用・改変・再配布が可能です。開発者はRich Hickeyで、現在はNubank社がスポンサーとして開発を支援しています。公式サイト(https://clojure.org/)からダウンロード・ドキュメントの参照が可能です。

スクリーンショット

スクリーンショットはありません。

更新グラフ

バージョン履歴

# Changes to Clojure in Version 1.12.6
* [CLJ-2794](https://clojure.atlassian.net/browse/CLJ-2794) - gen-class - incorrectly treats interface default methods as abstract, throwing when the var delegate is unbound
* [CLJ-2974](https://clojure.atlassian.net/browse/CLJ-2974) - FnLoaderThunk - de/serialization no longer supported, throw
# Changes to Clojure in Version 1.12.5
* [CLJ-2945](https://clojure.atlassian.net/browse/CLJ-2945) - reify - incorrectly transfers reader metadata to runtime object
* [CLJ-2228](https://clojure.atlassian.net/browse/CLJ-2228) - constantly - unroll to remove rest args allocation
# Changes to Clojure in Version 1.12.4
* [CLJ-2924](https://clojure.atlassian.net/browse/CLJ-2924) - LazySeq - fix visibility issues with non-volatile reads
# Changes to Clojure in Version 1.12.3
* [CLJ-2919](https://clojure.atlassian.net/browse/CLJ-2919) - Compiler - fix nested compilation emitting for keyword and protocol call sites
# Changes to Clojure in Version 1.12.2
* [CLJ-2914](https://clojure.atlassian.net/browse/CLJ-2914) - Compiler - syntax error if qualified instance method expression is missing instance
* [CLJ-1798](https://clojure.atlassian.net/browse/CLJ-1798) - Refs - avoid creating RetryEx in LockingTransaction on every transaction
* [CLJ-2916](https://clojure.atlassian.net/browse/CLJ-2916) - LazySeq - realize before serializing and do not serialize IFn
* [CLJ-2917](https://clojure.atlassian.net/browse/CLJ-2917) - Iterate - de/serialization no longer supported, throw
# Changes to Clojure in Version 1.12.1
* [CLJ-2899](https://clojure.atlassian.net/browse/CLJ-2899) - Revert change in semantics of qualified symbol in invocation position if field and method of same name
* [CLJ-2898](https://clojure.atlassian.net/browse/CLJ-2898) - Objects that are both IFn and FunctionalInterface unnecessarily get converted to FI
* [CLJ-2888](https://clojure.atlassian.net/browse/CLJ-2888) - `gen-class` - did not support new array class symbol syntax
* [CLJ-2886](https://clojure.atlassian.net/browse/CLJ-2886) - `add-libs` - send only procurer keys to tool invocation
* [CLJ-2906](https://clojure.atlassian.net/browse/CLJ-2906) - Add missing :added metadata to 1.12 functions
See: [CLJ-2760](https://clojure.atlassian.net/browse/CLJ-2760), [CLJ-2819](https://clojure.atlassian.net/browse/CLJ-2819)
* [CLJ-2145](https://clojure.atlassian.net/browse/CLJ-2145) - Fix clearing of closed overs in `^:once` fns
* [CLJ-2317](https://clojure.atlassian.net/browse/CLJ-2317) - `recur` to head of `:once` fn cancels once
# Changes to Clojure in Version 1.11.4
* [CLJ-2145](https://clojure.atlassian.net/browse/CLJ-2145) - Fix clearing of closed overs in `^:once` fns
* [CLJ-2317](https://clojure.atlassian.net/browse/CLJ-2317) - `recur` to head of `:once` fn cancels once
# Changes to Clojure in Version 1.12.0
## 1 Compatibility
### 1.1 Java 8 - Compatiblity EOL notice
Clojure 1.12 produces Java 8 bytecode (same as Clojure 1.10 and 1.11), but this is expected to be the last release using a Java 8 baseline. Future releases will move the bytecode and minimum Java compatibility to a newer Java LTS release.
### 1.2 Java 21 - Virtual thread pinning from user code under `synchronized`
To avoid this pinning, in 1.12 `lazy-seq` and `delay` use locks instead of synchronized blocks.
See: [CLJ-2804](https://clojure.atlassian.net/browse/CLJ-2804)
### 1.3 Security
Fix [CVE-2024-22871](https://nvd.nist.gov/vuln/detail/CVE-2024-22871) detailed in [GHSA-vr64-r9qj-h27f](https://github.com/advisories/GHSA-vr64-r9qj-h27f):
* [CLJ-2839](https://clojure.atlassian.net/browse/CLJ-2839) `iterate`, `cycle`, `repeat` - infinite seqs have infinite `hashCode()`
### 1.4 Serialization
Clojure has never provided a guarantee of serialization consistency across Clojure versions, but we do not wish to break compatibility any more than necessary and these changes will give us more control over that in the future.
See: [CLJ-1327](https://clojure.atlassian.net/browse/CLJ-1327)
### 1.5 Dependencies
Updated dependencies:
* spec.alpha dependency to 0.5.238 - [changes](https://github.com/clojure/spec.alpha/blob/master/CHANGES.md)
* core.specs.alpha dependency to 0.4.74 - [changes](https://github.com/clojure/core.specs.alpha/blob/master/CHANGES.md)
See: [CLJ-2852](https://clojure.atlassian.net/browse/CLJ-2852)
## 2 Features
(省略されました)
差分がありません
Product
9.4k
Permalink
clojure/changes.md
Go to file
Go to file
T
Go to line
L
Copy path
Copy permalink
Update changelog for 1.11.1
e917dcc
Apr 1, 2022
Changes to Clojure in Version 1.11.1
2937 lines (2215 sloc)
Changes to Clojure in Version 1.11.1
CLJ-2701
Pin serialVersionUID for Keyword and ArraySeq back to 1.10.3 values to retain binary serialization
Sign up
Why GitHub?
Features
Mobile
Actions
Codespaces
Packages
Security
Code review
Issues
Integrations
GitHub Sponsors
Customer stories
Team
Enterprise
Explore
Explore GitHub
Learn and contribute
Topics
(省略されました)
Mobile →
Actions →
Codespaces →
Packages →
Security →
Code review →
Project management →
Integrations →
GitHub Sponsors →
Topics →
Collections →
Trending →
Learning Lab →
Open source guides →
The ReadME Project →
Events →
Community forum →
GitHub Education →
GitHub Stars program →
(省略されました)