* Clojureのライブラリエコシステム [#v07b7c2a] * 目次 [#e7a8f3cf] #contents ** 概要 [#oee7e957] common lispは歴史長いからライブラリおおいけど、clojureはあたらしいほうだから、ライブラリどうせすくないんでしょ? とおもっていたら、それは大きな間違いでした。 ClojarsというClojure専用のパッケージリポジトリがあり、2024年時点で約3万以上のライブラリが公開されています Clojureは比較的新しい言語でありながら、予想以上に豊富なライブラリエコシステムを持っています。これは主に以下の要因によるものです: JVMベース言語としてのメリット 独自のパッケージリポジトリの存在 JavaScript生態系へのアクセス(ClojureScript) ** 具体的な強み [#u5a0c3e7] *** JVMエコシステムの活用 [#za204bfc] Javaの膨大なライブラリ資産をシームレスに利用可能。これにより: エンタープライズでの実用に耐える堅牢性 既存Javaシステムとの連携が容易 実績のあるJavaライブラリの再利用 *** Clojars:専用パッケージリポジトリ [#ud9dd533] https://clojars.org/ 2024年時点で30,000以上のライブラリが公開されており、活発なコミュニティによって維持されています。 *** 主要な開発分野のカバレッジ [#p1be7f86] 現代的な開発に必要な主要分野を網羅: **** Web開発 [#h572880e] Ring:HTTPサーバ抽象化 Compojure:ルーティング Luminus:フルスタックフレームワーク **** データベース [#y18b8ffb] next.jdbc:JDBCラッパー Honey SQL:SQLジェネレータ **** 機械学習 [#h8c27e82] tech.ml:機械学習ライブラリ **** フロントエンド [#d2888241] reagent:ReactラッパーでSPAを構築 re-frame:SPAのための状態管理 **** 開発ツール [#vd7c7f7e] Leiningen:プロジェクト管理 deps.edn:依存関係管理 clojure.test:テストフレームワーク *** JavaScriptエコシステムへのアクセス [#kde4ce79] ClojureScriptを通じて: npmパッケージの利用が可能 モダンなフロントエンド開発のツールチェーンにアクセス Reactなどのメジャーなフレームワークとの連携 ** まとめ [#p6af8366] Common Lispの長い歴史に基づくライブラリ群とは異なる形で、Clojureは現代のソフトウェア開発に必要な充実したライブラリエコシステムを確立しています。JVMプラットフォームとJavaScriptエコシステムの両方にアクセスできる特徴は、特に実務での採用において大きな利点となっています。 * ファイルWebサーバを作ってみる [#ka317104] fileserverという名前で作ってみる lein.bat new app fileserver ** core.cljの修正 [#z88e95bb] (defproject fileserver "0.1.0-SNAPSHOT" :description "Simple file server" :dependencies [[org.clojure/clojure "1.11.1"] [ring/ring-core "1.10.0"] [ring/ring-jetty-adapter "1.10.0"] [org.clojure/tools.cli "1.0.219"]] :main fileserver.core) ** 30分ぐらいでできたので、githubにpushしておきます。 [#g95d859e] ** 30分ぐらいでファイルサーバがでできたので、githubにpushしておきます。 [#g95d859e] カスタマイズとかしやすそうな感じで何よりです。 https://github.com/server-free-k-hayashi/fileserver