f:id:y_temp4:20170619084226p:plain

今回の記事では、Status(ステータス)で主に使われている3つの技術についてご紹介しようと思います。

ちなみに、使われている技術に関しては Status の Wiki から参照できます。

Status Wiki

React Native

facebook.github.io

React Native は React を用いたクロスプラットフォームなアプリケーションを作成するためのフレームワークです。

この技術を使うことにより、本来 Android と iOS で書き分ける必要のあったコードの大部分を共通化することができます(本来は Android であれば Java、iOS であれば Swift を基本的に使うことになる)。

Wiki にも書いてありますが、この技術は Facebook や Instagram、Airbnb、Baidu、Discord など多くの企業・アプリで用いられています。ちなみに、React および React Native を開発しているのは Facebook です。

ClojureScript

github.com

ClojureScript は Clojure と同じような記述から JavaScript へ変換できる言語です。

先に上げた React Native は主に JavaScript で書きますが、Status では JavaScript を使う代わりに ClojureScript を使っているようです。

なぜそのようなことをしているかというと、おそらく Lisp 系の言語を使いたいからだと思います。Lisp は関数型のプログラミング言語で、特徴的な記法をします。Clojure は Lisp の方言です。

正直、ClojureScript を使っている、という記述を見たときは驚きました。おそらく、ほとんどの企業は React Native を使う時に、そのまま JavaScript を使うのではないでしょうか。

ClojureScript を使っているということから、かなり技術に自信のある印象を受けました。

Go

The Go Programming Language

Go は比較的新しい言語で、処理が高速なイメージがあります(実際高速です)。

Go を使っている理由は、おそらく Ethereum との関係です。Ethereum の実装に go-ethereum というものがあるのですが、Status ではそれを利用した形跡があり、独自に書き換えて実装を行っている部分もあるようです。

さいごに

これらの技術は全て OSS(オープンソースソフトウェア)なので、公開されています。また、Status の実装も OSS です。

GitHub にて確認できるため、余裕のある方は見てみてください。

github.com