新春特別企画

Mastodon New Year

この記事を読むのに必要な時間:およそ 2 分

皆さま,明けましておめでとうございます。初めましての方は初めまして,今後ともよろしくお願いいたします。そうでない方は本年も引き続きよろしくお願いいたします。Mastodonのコミッターをしている山岸和利と申します。

2016年に開発が開始したMastodonは2017年の春に日本でちょっとした話題になりました。一年に満たない期間の内にMastodonのインスタンスがいくつも立ち上がりました。

この記事ではMastodonの現在の開発体制から今後Mastodonがどのようになっていくかを取り上げてみます。

Mastodonとは

Mastodonはオープンソースソフトウェア(OSS)として提供されている,分散型ソーシャルネットワーキングのプラットフォームを構築するウェブアプリケーションです。GNU Affero General Public License version 3(AGPLv3)でライセンスされていて,GitHubを用いた開発が行われていますtootsuite/mastodon)⁠

分散型ソーシャルネットワーキングとはOStatusActivityPubといった仕様で規定されているプロトコルに沿って情報の授受を行い,連合を組むことを指しています。複数のサーバーに別個のウェブアプリケーションとして存在しているインスタンスが繋がり,別のインスタンスにいる人同士であったとしても相互に交流できます。またMastodon以外にもGNU socialFriendicaPleromaなどOStatusに対応しているウェブアプリケーションは複数存在しています。それらのウェブアプリケーションが動いているインスタンスともMastodonは繋がることができます。

一つの場所に多くの人が集約してしまう従来の中央集権型のソーシャルネットワーキングから脱却することを分散型ソーシャルネットワーキングでは意図しています。

Mastodonのソースコード

MastodonはOSSとしてソースコードがGitHubで公開されています。またGitHubのリポジトリでPull Requestを受け付けています。多くのコントリビューターによって書かれたソースコードがMastodonでは混在しています。これは正しく管理されなければソースコードは統一性を失い,可読性の低いものになってしまいます。

MastodonではRubocopESLintといった静的解析を行うツールを用いてソースコードがコーディングスタイルに正しく沿って書かれているかどうかを検証しています。Pull Requestにコミットが追加されるたびに検証を行っているため,コーディングスタイルから大きく逸脱したソースコードが取り込まれ難くなっています。

しかし機械的な検査ではどうしても限界があります。そのため最終的にはコラボレーターやコミッターによるコードレビューが実施されます。コードレビューはソースコードのフォーマットはもちろん,バグが含まれていないかなどの妥当性の検証も行われます。

またMastodonではRuby on RailsReactが使われています。Ruby on RailsもReactもどちらも自由度をある程度犠牲にして書き方の統一を図らせるフレームワークとなっているためMastodonのソースコードも綺麗になっているのではないかと思います。

Mastodonのリリーススケジュール

Mastodonには明確なリリーススケジュールと呼べるものは存在しません。動作に支障が出るような致命的なバグがあったときにパッチバージョンを上げるリリースがされ,新しい機能がある程度追加されたときにマイナーバージョンを上げたリリースがされます。互換性を失うような大きな変更があった場合にのみメジャーバージョンを上げるリリースが行われます。明確なリリーススケジュールはないもののセマンティックバージョニングに沿っているため,わかりやすいのではないでしょうか。

またメジャーバージョンやマイナーバージョンを上げるリリースの場合はリリースの前にリリース候補(RC)版のリリースが行われます。安定版としてリリースをする前に確認するためリリースが行われるのです。RC版を使う場合は安定した動作は保証されません。ですが最新の機能を使うことができます。インスタンス管理者に試しに使ってもらうことによって安定版のリリース前にバグが含まれていないかどうかを確認します。

とはいえこのリリーススケジュールはきちんと確立しているものではまだありません。現状のMastodonの開発規模では問題ないでしょうが,将来的に開発者が増えていくことによって歪みが生じてくることが予想されます。今後の開発が進むにつれてより良い形に変わっていくことでしょう。

Mastodonは儲かるのか

さて,Mastodonは儲かりません。ウェブサービスで収益を上げるために考えられる方法としては広告を掲載することや有料会員を集めるといったものがあるでしょう。そのどちらもMastodonとは相性が良くありません。無料で使えて,かつ広告もないMastodonのインスタンスが多くある中であえてそうでないインスタンスにアカウントを作ろうとする人は少ないためです。

ほかのインスタンスと比べられた際,優位に立てるように独自の機能を実装したとしてもMastodonはAGPLv3です。Mastodonをフォークしたウェブアプリケーションをウェブサービスとして公開する場合はユーザーからソースコードの提供を求められた際にその要求を拒めません。そして公開したソースコードを元にほかのインスタンスが同様の機能を実装したとしても,それを差し止めることはできません。

Mastodon単体で利益を得ることは難しいでしょう。Mastodonと組み合わせる何かを用意できる事業者であれば営利目的でのMastodonインスタンスの運営はできるでしょう。ですが個人の意見としては営利を目的としてMastodonのインスタンスを運営するのは費用に見合うものではないと思います。

Mastodonは流行るのか

MastodonのコミッターをしているとMastodonに関する質問をされる機会が度々あります。そうした質問の中でも「Mastodonは流行るのか」ということをよく尋ねられます。この質問にわたしは答えることができません。未来のことは誰にもわからないからです。

Mastodonの最初の安定版であるv1.0がリリースされたのは2017年2月です。まだ一年も経っていないのです。今の時点でそうしたことを判断するのは難しいでしょう。

しかしMastodon自体が流行らなくても問題はありません。流行しないウェブサービス……つまり自身の利益にならない場合は通常のウェブサービスであれば残念ながらサービスを終了させてしまうでしょう。しかしMastodonは一つのインスタンスが運営することができなくなったとしてもほかのインスタンスはなくなりません。またOSSであるため,自身で新しいインスタンスの運営しても良いでしょう。

またMastodonがほかのインスタンスと繋がるために使っているOStatusやActivityPubは仕様が公開されています。Mastodon以外にも対応するウェブアプリケーションは今後も増えていくでしょう。

これが従来の中央集権型のソーシャルネットワーキングと分散型ソーシャルネットワーキングの差です。流行しようがしまいが「なくなることはない」⁠わたしはそう見ています。

おわりに

MastodonはOSSであることによる長所も短所もあるソフトウェアです。また一番最初のコミットからまだ二年も経っていないとても若いソフトウェアです。

OSSであるMastodonはコントリビューターによって支えられています。コントリビュートとはソースコードを書く以外にも問題を提起したり,機能の提案をしたりすることも含まれます。またユーザーとしてそのソフトウェアを使うこともまた立派なコントリビュートです。皆さまのコントリビュートによってMastodonはこれからも進化し続けていくことでしょう。

2018年はMastodonにとってどのような一年になるか,まったく予想できません。どのような動きをしていくのか今からとても楽しみにしています。

それでは皆さま,本年もMastodonをよろしくお願いいたします。

著者プロフィール

山岸和利(ykzts)

Mastodonのコミッターの一人。OSSへのコントリビュートを行うことを趣味としている。好きなプログラミング言語はJavaScript。

https://ykzts.technology/@ykzts(Mastodon)
https://github.com/ykzts(GitHub)