Status(ステータス)で主に使われている3つの技術
今回の記事では、Status(ステータス)で主に使われている3つの技術についてご紹介しようと思います。
ちなみに、使われている技術に関しては Status の Wiki から参照できます。
React Native
React Native は React を用いたクロスプラットフォームなアプリケーションを作成するためのフレームワークです。
この技術を使うことにより、本来 Android と iOS で書き分ける必要のあったコードの大部分を共通化することができます(本来は Android であれば Java、iOS であれば Swift を基本的に使うことになる)。
Wiki にも書いてありますが、この技術は Facebook や Instagram、Airbnb、Baidu、Discord など多くの企業・アプリで用いられています。ちなみに、React および React Native を開発しているのは Facebook です。
ClojureScript
ClojureScript は Clojure と同じような記述から JavaScript へ変換できる言語です。
先に上げた React Native は主に JavaScript で書きますが、Status では JavaScript を使う代わりに ClojureScript を使っているようです。
なぜそのようなことをしているかというと、おそらく Lisp 系の言語を使いたいからだと思います。Lisp は関数型のプログラミング言語で、特徴的な記法をします。Clojure は Lisp の方言です。
正直、ClojureScript を使っている、という記述を見たときは驚きました。おそらく、ほとんどの企業は React Native を使う時に、そのまま JavaScript を使うのではないでしょうか。
ClojureScript を使っているということから、かなり技術に自信のある印象を受けました。
Go
Go は比較的新しい言語で、処理が高速なイメージがあります(実際高速です)。
Go を使っている理由は、おそらく Ethereum との関係です。Ethereum の実装に go-ethereum というものがあるのですが、Status ではそれを利用した形跡があり、独自に書き換えて実装を行っている部分もあるようです。
さいごに
これらの技術は全て OSS(オープンソースソフトウェア)なので、公開されています。また、Status の実装も OSS です。
GitHub にて確認できるため、余裕のある方は見てみてください。