最近、プライベートな開発でClojureという言語をよく書いています。

clojure-logo
↑こんなアイコンの言語です https://clojure.org/

Clojure自体は2010年に「プログラミングClojure」という本を読んでから知っていたのですが、なかなか書く機会を得られずに数年が経過してしまいました。

(その間に言語仕様などは綺麗サッパリ忘れていましたw)

↑第2版も出ていたようです。

今回はClojureを改めて始めるにあたって行ったことを書いていきたいと思います。

Clojure(Lisp)に対するテンションを上げる

 

ClojureはLisp言語をもとにした、いわゆるLisp方言の一つであり、JavaVM上で動作します。

 

私は普段はAndroidエンジニアなので、JavaやKotlinを多く書きますが、こうした言語とClojureはかなり雰囲気が違います。

まだ書き始めたばかりなのでわからないことも多いのですが、なんとなく感じるのは「とてつもなくシンプルな言語だな」ということです。

こうしたこれまでと雰囲気が異なる言語を始めるにあたって「書きたい!」と思うためのインプットがまずはありました。

 

まずは「ハッカーと画家」という本です。

ハッカーと呼ばれる人たちが何を考え、どう仕事を進めていきたいかといったことが書かれている本です。

この本の中で「Lispは他の言語とは違う。だからこそ競合と比べても大きな優位性を出せる。」といったことが書かれていました。

エンジニアにとって生産性は重要です。

言語によってやるべきこと、柔軟性などが違い、優位性にもつながるということを知り、大きく興味が掻き立てられました。

何よりも筆者(Lispの達人!)の方がLispに対して情熱を持っていることが伝わり、ぜひ一度本格的に書いてみたいと思うようになりました。

 

次に読んだのが「7つの言語 7つの世界」という本です。

タイトルの通り、7つの言語の歴史や特徴、言語仕様などについて書かれた本で、その一つとしてClojureが取り上げられていました。

先の本でLispに対する興味が上がっていた状態でこの本を読み、Clojureの言語仕様について大枠を理解することができました。

実際のClojureを見てみるとそう難しいものではなく、「これなら書けるな!」という意識を得るための大きな助けになった一冊でした。

学習を進める

ここまでで2冊の本を読み、「書きたい!」という状態になっていたので、実際にコードを書いていくことにしました。

とはいってもいきなりは書けないのでまずは学習を進めていくことにしました。

 

まずは手堅く、公式サイトのGetting Startedを見ました。

https://clojure.org/guides/getting_started

インストール方法や各種参考情報が載っています。

 

この中で特にオススメなのが、以下のTry Clojureというサイトです。

http://www.tryclj.com/

ここで、ブラウザ上でClojureを実行しながら、初歩的なClojureの文法を経験することができます。

一度もClojureを書いたことがない方はこのサイトをぜひ試してみてください。

 

なんとなくClojureの文法がわかったら次に知っておきたいのがLeiningenです。

http://leiningen.org/

LeiningenはClojureプロジェクトを管理やビルドをするためのツールです。

Clojureを本格的に書いていくにあたってほぼ必須ですので、どうやってビルドするのか、どうやってデプロイするのかなどの雰囲気をつかむために、早いうちに触っておくのがおすすめです。

 

ここまでで基本的な文法と、プロジェクト構成についてはなんとなく把握できるでしょう。

そうなった状態で次に見ておきたいのが、公式サイトのReferenceです。

https://clojure.org/reference/documentation

公式サイトなので当然なのですが、ここを見ればほぼ全てのClojure言語についての詳細を知ることができます。

特筆すべきはその分量の少なさです。

項目こそ25個ほどありますが、ほとんどのページがかなり短いです。

言語のシンプルさが現れているといえますね。

 

ここまで学習を進めれば、かなりClojureについて詳しくなれるでしょう。

あとは実際の開発を、Cheatsheetなどを見ながら進めていくと良いでしょう。

http://clojure.org/api/cheatsheet

↑組み込みの関数やマクロはこれしかありません!

 

まとめ

Clojure言語を書き始めるにあたって読んだ本や、学習に使ったサイトを紹介しました。

ほとんど英語しか情報はないですが、言語自体のシンプルさもあって、ほとんど苦労なく資料を読めることが驚きでした。

 

違う考え方の言語を書いてみるのは楽しいですね!

ぜひ一度Clojureを試してみてください!

Let’s Clojure!!

follow us in feedly

↓↓Kindle本を出しました