Clojure

Empear

2017年4月24日

このインタビューは、Adam Tornhill氏とのEmpearとそのコード分析ツールCodeSceneに関する議論です。

Empear

ClojureまたはClojureScriptの使用経験はどのくらいですか?

Empearは2015年に設立され、当初からClojureを使用しています。それ以前は、いくつかのサイドプロジェクトでClojureを使用していました。Clojureは自然なステップでした。私は10年来Lispの大ファンであり、JVMのエコシステムとともにLispを使用できることは魅力的でした。

ClojureまたはClojureScriptを使用しているチームの規模はどのくらいですか?

現在、開発者は3人で、拡大を検討しています。全員が毎日Clojureでコーディングしています。HaskellとPythonで記述された小さなコンポーネントもいくつかあります。

ClojureまたはClojureScriptを使用してどのような製品またはサービスを構築していますか?

当社の主な製品はCodeSceneです。CodeSceneは、技術的負債を特定して優先順位付けすることで、ソフトウェアプロジェクトの効率を向上させるのに役立つツールです。当社は、結果を行動データとソーシャルデータに基づいて判断するため、ソフトウェア分析に対して異なるアプローチを取っています。

当社の主なデータソースはバージョン管理リポジトリであり、CodeSceneは開発者がコードベースと対話する方法の行動ログとして捉えています。これは、システムがどのように成長するかに基づいて優先順位を付けたり、顧客がチームの生産性のボトルネックを発見し、オンボーディングコストとオフボーディングコストを削減できるようにするコードの社会的側面を含めることができることを意味します。

当社はCodeSceneの2つのバージョンを維持しています。1つはクラウドバージョンであるhttps://codescene.io/で、これはサービスとしての分析です。もう1つは、お客様がご自身のデータセンターにインストールするオンプレミス版のCodeSceneです。

ClojureまたはClojureScriptのライブラリで、最も楽しんで使用しているものはどれですか?

Clojureの性質とJavaとの緊密な統合により、Clojureライブラリの使用はオプションの便宜性が高くなっています。当社が楽しんでいる高品質なライブラリには、CarmineTimbre、およびCheshireがあります。データベース移行にはRagtimeも役に立ちました。さらに、統計と機械学習のためにいくつかのライブラリを使用していますが、多くの場合、コアアルゴリズムは自分たちで実装しています。

ClojureまたはClojureScriptを使用することから最も価値を得ていることは何ですか?

Clojureの最もやりがいのある点は、言語が問題領域に集中させてくれることです。「データはどのように見えるか?渡す前にどのようにフィルタリングおよび変換する必要があるか?REPLでこれを実行して、何が起こるかを確認しましょう。OK、それを関数に入れます。仕様を書き、テストで安定させます。」このワークフローは、人間の問題解決方法と非常によく結びついています。実際には、新機能を迅速に実装できます。

ClojureまたはClojureScriptで最も気に入っている機能は何ですか?

最も重要な機能は、Clojureの永続的で不変のデータ構造です。それらは問題のクラス全体を取り除きます。データが変更される心配はもうありません。

また、Clojure specも気に入っています。specの前に、特定の関数が単独で推論するのが難しい時点に達していました。つまり、コードがどのデータ構造を操作し、実際に何をしたかを知るために、呼び出しコンテキストを確認する必要がありました。これはもちろん、動的型付け言語すべてで問題になることですが、Clojureが推奨する高い抽象化レベルのために、問題がより顕著に感じられました。specは、コードを推論しやすくすることで大いに役立ちました。これはIMHO、ソフトウェア開発において最適化するための最も重要な側面です。

あなたのスタックは何ですか?

当社のWebシステムは、RingCompojureに基づく従来のスタックを使用しています。レンダリングは、ほとんどがサーバー側でSelmerを使用し、上に薄いJavaScriptレイヤーを使用しています。視覚化にはD3を使用しています。当社のクラウドソリューションはAmazon Web Servicesで実行されます。

ClojureまたはClojureScriptを使用することがビジネスにとって価値があるのはなぜですか?

主な理由は2つあります。まず、創業当初、プログラマーは私1人だったので、有益なものを構築するために迅速に反復する必要があることを知っていました。つまり、私は自分の時間を可能な限り効率的に使う必要がありました。Clojureは、新しいアイデアをすばやくプロトタイプし、評価し、安定したソリューションが得られるまで反復することを可能にするイネーブラーでした。これは、当社が分析で新しい領域を探索しているため、今でも恩恵を受けているClojureの側面です。

2番目の理由は、技術的なものではありません。EmpearにClojureを選んだ主な理由の1つは、その言語が面白そうだったからです。そして、楽しさはソフトウェア業界で過小評価されているモチベーターです。楽しさは、物事が完了することをほぼ保証します。

Clojureのストーリーを共有したい場合は、このフォームにご記入ください。