Clojureの会社を作った話。

(この記事は、Clojure Advent Calendar 2011 6日目の記事です。)

Advent Calendarでお掃除ロボのルンバをClojureで制御するという記事を書こうと思ったんですが、Bluetoothデバイスとの繋ぎこみがうまく行かなかったので、一年前にニャンパスというClojureな会社起業した話を書きます。

Clojureという決してメジャーではない言語を選んだということで、人によってはそんな言語で起業なんてしてしまって問題ないのかと驚かれることもありますので、この機会にまとめときたいと思います。

なぜ、Clojureを選んだのか


改めて考えてみました。ふんだんに主観が入ってますのでこういう見方もあるんだな位に考えてください。

  • JVMの安心感 - 人によって考え方はいろいろあるでしょうが、僕は結構信頼してます。受託の場合、お客さんも安心です。
  • Javaのライブラリが使える - 後発のプログラミング言語の場合、いくら生産性高いといっても、ライブラリの充実度も重要です。そうでないと、サービスを公開する前に作らなきゃいけないライブラリを多くて、逆に回り道になってしまいます。その点Clojureの場合Javaで書かれている既存のライブラリが利用できるため安心ですし、Clojure用にJavaライブラリのラッパーが意外と揃っています。
  • Lisp - いろいろと言語を触って来ましたが、Lispに落ち着きました。書いてて楽しいです。マクロの魅力もあります。
Clojureを選んだといっても、サーバサイドに限った話で、iOS / Androidアプリを開発する場合にはネイティブな言語を使います。(無理にClojureでAndroidアプリを書くことはしてません。)

Q&A

このブログを書いているとき隣の席に、フリーランスエンジニア桃太郎君がいました。業務委託で仕事を頼んでいる普段Ruby使いの彼に、唐突にClojureの会社なんだけど何か質問ある?と聞いて出してもらった質問に対して、解答をまとめてみました。

- Clojureの情報、ドキュメントは揃っているのか。

日本語だとあんまりないです。みんなで頑張って書いていくしかないですね。ただ、PC買うときに回りにWindowsの人が多いのか、Macの人が多いのかで決めたほうが良いという話と同じで、周りにClojure使いが多ければ問題にならないんじゃないかなというレベルです。

- Clojureの開発者は集まるのか

マクロに見たらほとんどいないに等しいんですが、僕の能力的に数十人の人で何十ヶ月もかかるプロジェクトを受けることはなくて、今後も数ヶ月で数人のチームで開発できるくらいの規模で仕事をしていくと思います。なので、あんまり心配してない(あるいは考えてない)というのが正直なところです。

- ライブラリはどうなのか

上記の通りで、Javaのライブラリが使えます。ライブラリがなかったら作ろうと隙を伺ってますがなかなかそのチャンスが有りません。

- クライアントはどうやって納得しているのか

ここがポイントになるところですよね。開発会社は開発会社向けに仕事しているわけではないと考える所が重要かなと思います。

例えば開発会社同士で仕事をしている場合にはこの案件はJavaのシステムだからJavaの開発が出来る人が欲しい、なんていう感じで依頼があったりしますが、ニャンパスでは原則、その製品を欲しいお客さんと直接仕事をするようにしています。

本質的にはお客さんから見て言語がなにかということより生産性の高いものが望まれるわけで、(さんざん書いといてなんですが、)プログラミング言語はお客さんからしたら重要じゃないと思います。お客さんから生産性の高さが望まれ、それに答えるための手段としてニャンパスではClojureが有効かなと考えて提案しています。
(Clojure以外の言語が向いている場合やどうしてもPHPで、あるいはJavaでというプロジェクトについては、僕らより我々よりもっとうまくやれる会社がありますよ、きっとという提案です。)

マイナーな言語でありながらこのタイミングですでにいろいろClojureのコード書いている人というのはプログラミング言語に好奇心がある人だと思うので、そういう人と仕事をやって裏切られることは少ないんじゃないかなという気はします。なので、起業したいというみなさん、周りのClojure好きなエンジニアと一緒に会社をクリスマス前に立ち上げたらいいんじゃないでしょうか。

コメント

人気の投稿