「私たちのClojureシステムは、最初のウォルマートのブラックフライデーを無傷で乗り切りました。」
「Clojureは、最初から最後まで関数型プログラミング言語です。これは、Clojureで書かれたコードが非常にモジュール化され、構成可能で、再利用可能であり、推論しやすいことを意味します。」
「既存のClojureコミュニティ、言語自体の成熟度、そして業界で見られる勢いについて話し合いました。企業は、Clojureに基づいて市場投入までのスピードを実現しています。」
Clojureの成功事例、コミュニティがClojureをどのように使用しているか、およびClojureを使用している企業について詳しくお読みください。
Clojureには、シンプルで一貫性があり、強力なツールを形成する便利な機能群があります。
Clojureは、インタラクトできる動的な環境です。言語構造のほぼすべてが具体化されており、したがって、検査および変更できます。データがロードされた状態でプログラムを成長させ、機能を追加し、バグを修正し、テストを中断することなく、継続的なストリームで行えます。
Clojureは、可変状態を回避するためのツールを提供し、関数を第一級オブジェクトとして提供し、副作用に基づくループの代わりに再帰的な反復を重視します。Clojureは不純ですが、より関数的なプログラムはより堅牢であるという哲学を支持しています。
ClojureはLisp言語ファミリーの一員です。Lispの機能の多くは他の言語に取り入れられてきましたが、コードをデータとして扱うというLispのアプローチとマクロシステムは、依然として他とは一線を画しています。さらに、Clojureのマップ、セット、およびベクターは、Lispのリストと同様に、Clojureで第一級です。
ランタイムポリモーフィズムを利用するシステムは、変更と拡張が容易です。Clojureは、ランタイムポリモーフィズムのためのシンプルで強力かつ柔軟なメカニズムを提供します。Clojureのプロトコルとデータ型の機能は、ホストプラットフォームの機能と妥協することなく、抽象化とデータ構造定義のためのメカニズムを追加します。
Clojureは、いくつかの方法でマルチスレッドプログラミングを簡素化します。コアデータ構造はイミュータブルであるため、スレッド間で簡単に共有できます。Clojureは実用的な言語であるため、状態の変更を許可しますが、その際、ロックなどを使用して手動で競合を回避する必要がなく、一貫性が維持されるようにするメカニズムを提供します。
Clojureは、JVMの型システム、GC、スレッドなどを共有するホスト言語として設計されています。すべての関数はJVMバイトコードにコンパイルされます。Clojureは、Javaライブラリの優れたコンシューマーであり、Javaへの呼び出しにはドットターゲットメンバー表記法を提供します。Clojureは、Javaインターフェースとクラスの動的な実装をサポートしています。
Nubankは、ブラジル、メキシコ、コロンビアで6,500万人以上の顧客にサービスを提供する、世界最大のデジタルバンキングプラットフォームの1つです。創業当初から、NuはClojureで目覚ましい成功を収めており、ミッションクリティカルなソフトウェアを大規模に運用しています。2020年、同社はClojureとDatomicデータベースの背後にあるコンサルタント会社であるCognitectを買収しました。
この買収を通じて、NubankはClojureのアイデアをビジネスの俊敏性に変換し、複雑さと戦い、人々をエンパワーするという会社の使命を活用する上で、開発者を支援するワールドクラスのチームを統合しました。現在、NuはClojureとClojureScriptの主要な企業スポンサーです。
Nubankが製品とチームを構築する方法の詳細については、building.nubank.com.brをご覧ください。