enebularを作りながら考えていること

Shuhei Hiya
4 min readDec 8, 2016

--

enebular INFOMOTIONをリリースしたのでその記念に「enebularを作りながら考えていること」

プログラミングしながら僕がいつも考えていたことは、世の中はなんと非効率的なのだろうということだった。ITの世界ですらそうなのだ。同じような仕組みの実装で多くのエンジニアが時間を費やしている。しかし例えばクラウドは開発者にとって多くの時間を短縮してくれる。それによって何より良いのは、我々が考える時間をたくさん取れることだ。

enebularもそういったものの一つだ。IoT向けのPoCのための開発時間を短縮できる。データプロセッシングのためのNode-REDのflowを簡単に構築・デバッグ・デプロイでき、データの可視化のためのグラフも用意されている。ユーザはそれらを「選択」するだけで良い。

enebularを作りながらいつも頭にあることがある、いやenebularに限らずプログラミングをしながら思うことだ。それは集合から集合への写像のようなものである。ソフトウェアを作ることは、集合と写像を定義することに似ていると思う。問題領域の球体からコンピュータ言語の球体へのマッピング。そんなことを考えている。ここでポイントなのは、いわいる普通のプログラミングであれば、アイデアからソフトウェアへの一階層しか無いのであるが、実際にはこれが多階層的になっていたり、再帰的になっていたりする。enebular INFOMOTIONでは、汎用的な可視化機能を作ることが目的だった。そのため複数の「具体的な可視化のユースケース」から「汎用可視化のための問題領域」への写像と、そこから「ブラウザJS」への写像を考えた。こういった抽象的なことを考えることは歴史的に見ても実際的にも余裕のある人の娯楽であると思う。こんな面白いことをさせてくれることに感謝しなければいけない。

もちろん抽象的な問題だけではない。「具体的な可視化のユースケース」(つまりカフェでどこの席が使われているかを可視化するのはどのグラフが良いとか、それがわかったらどう嬉しいとかそういう話)から「汎用的なデータの可視化」という方向に一旦抽象化されたあとに、「ブラウザJS」という現実世界に舞い戻ってくる。その際に考えることは、例えばJSインジェクションがどうとか、IEがどうとか、ReactJSとかD3とかそういう話だ。まあこれはこれで面白いが、あまり時間を掛けたいテーマではない。ちなみにenebular INFOMOTIONではINFOMOTION TYPEをユーザがアップロードできるが、これが悪さをしないようにiframe内で動作するようになっている。このあたりの実装も面白いと思う。

IoTのアーキテクチャっていうのは、ちょっと抽象的に考えると、色々なパターンが見えてきてすごく面白いんだ。さあそんな僕のチームに入ってくださる方がいれば、是非連絡がほしいです。よろしくお願いします。

TwitterでDMを送ってもらってもOKです。https://twitter.com/syuhei_hiya

--

--