Milkcocoaの今後について

Shuhei Hiya
4 min readDec 23, 2016

--

今から書くことは個人の見解です。Milkcocoa Advent Calendarの最終日として、Milkcocoaに対する思いを書きます。

Milkcocoaをこの世から消えることのないサービスにしたい。

これは2年くらい前に会社が潰れそうになったときに思ったことです。2014年のリリース以来、たくさんのユーザに支えられたMilkcocoaを、ずっと続けたい、そう思いました。思いだけでなく、技術的にも色々考えていました。例えばP2Pネットワーク上でPubSub機能を提供できないか?とか運営主体がない自動化されたMilkcocoaはどういうものか?などを考えていました。

自由なプログラミングとは何か?

多くのものが電子化された世界で、解決したいことを自由に解決できるには?「自由なソフトウェア」の次とは?プログラミング言語からの独立とサーバからの独立。特定のプログラミング言語に依存せずに、コンピュータで問題を解決できるということ。特定のサーバ提供者やクラウド事業者or運営主体に依存せずに、問題を解決できるということ。プログラミング言語を使わずにプログラミングし、サーバーのこともあれこれ考えず、解決したい問題に集中して、サービスを提供できる未来。いつのころからか、ぼんやりとそういう未来を意識するようになりました。別の言い方をすると、特定のベンダーに特化したオープンなコードは本当に自由なソフトウェアなのか?その機能を提供するためにサービス提供者がお金を負担するべきなのか?という疑問でもあります。

Milkcocoaがユーザに与えようとしていた価値を、Milkcocoa自体も欲していると思いました。そのためにMilkcocoaは特定の組織だけが提供するのではなく、より「一般的な仕組み」にしていく必要があると思います。そしてこれを実現するには少し時間がかかると思います。一方で、それを実現する過程で段階的にでも、擬似的にでも、目指しているものを示さないといけないと思います。

と、ここまで大きなことを書いておいて、実は今回の話はそれとは少し違うのですが、こうやって考えていたことも、今のMilkcocoaに少し役に立つことに気づきました。以下は近々のMilkcocoaに対するいくつかの個人的な要望や想いです。

より効率的な価格で高い品質のサービスを提供したい

例えば上記のような、運営主体を無くしていきたいという考え方は、サービス提供者としての考え方と矛盾しません。運営の自動化によりサービスの価格は下がり、より高い品質でサービスを提供することができます。Milkcocoaも今後スケーラビリティ、アベイラビリティ、コストの面で進化して欲しいと思っています。

データプロセッシングについて

従来のPubSubサービスだけでなく、Milkcocoa上でもデータの加工を何らかの方法でできるようになって欲しい思っています。より多くのことをMilkcocoaでできるようにすることで、直感的にサービスを作れるようになれば良いと思います。Milkcocoaを使うと必ずと行っていいほど、”送ってる値がしきい値を超えたらSlack通知したい”というような機能を実現したいと思うのではないでしょうか?それを解決するために、例えばFlow-basedプログラミングで、Milkcocoaにpushされたデータの処理ができるようなことを考えています。

SDKやプロトコルについて

実はここが非常に悩んでいるところです。多くのプラットフォームにサービスを対応させるためにはSDKを作らなければいけません。幸いMilkcocoaには多くの助けて下さる方々がいて、SDKのメンテナンスでは非常に助かっています。またMQTTに対応することもSDK不足の解決策の一つでし、ベンダ依存を軽減することにもなると思います。一方で我々はMQTTの仕様に満足していません。例えば要件に応じてクラウド側のコストを調整したいケースはよくありますが、MQTTの場合、基本的にはサーバ側で状態を持つようになっているので、それを実現するには、もう少しプロトコルをいじらなければいけません。(*MQTTのクライアントでclean_session=falseがデフォルトなのが一例、正確にはプロトコルの問題というかクライアント実装の問題)これらに対応することがサービスの足かせになることもあります。ここはまだ解決していない悩みであります。

まとめ

Milkcocoa自体は僕が作りたい者のスタート地点に過ぎません。技術者は資金でなく技術で戦います。そして子どものような夢を持ちます。

「世界を大きく変える、たとえひとりになっても」

「自由なプログラミング」という思いに向かって、これからもどんどん進めていきます。

--

--