.vueに似た記述からwasmを出力するgo製のツールのvuguについて
少し前に微妙にvuguがバズっていた。触らずに分かった気になったりするのも良くないと思い実際に触ってみた。そのときに感じたことや思ったことのつぶやきをまとめてみた。 (本当はまじめに文章を書こうかとおもったけれど気力が無くなったので呟いたものを貼り付けるだけですませる)
vuguとはこれのこと。
主題。
vuguは何であって何でないかみたいな文章書ける気がしたけどめんどくさくなった
— po (@podhmo) 2019年4月6日
現状の話とワンバイナリで済むという話とリアクティブなコンポーネントが欲しい場合の話と初手npmが可能な環境の人はお呼びではないという話と競合はあくまでcliと言う話と実際にはopsの飛び道具だよみたいな話
— po (@podhmo) 2019年4月6日
vuguの用途
最初のvuguに対してのつぶやき。このときに感じたイメージは実物を触った後も変わらなかった。
vuguの使いどころは、vue-cli-uiみたいなところだよ。何でwasmかと言うと開発にnpmとか一切入れたくないかつワンバイナリてデプロイしたいからだよ。あくまでcliのツールを豪華にするためのui kitだよ。対象は慣れてない人用の補助輪的な位置づけのものが多くなるからサイズが膨れ上がるとか誤差だよ。
— po (@podhmo) 2019年4月4日
時間を置いてちょっとだけまたvuguに触れて呟いていたらしい(気にはなっていた模様)。
vuguの用途はたぶんprogress bar出るようなuiでelectronとか使うほど気合いのはいったものじゃない場合(のはず)
— po (@podhmo) 2019年4月5日
そして初手でnpmの環境が揃ってる人は対象外
— po (@podhmo) 2019年4月5日
sakura.cssみたいなものがデフォルトであったらワンチャン便利かもという感じ
— po (@podhmo) 2019年4月5日
最後のはsakura.cssとはこれのこと(htmlのタグに直接修飾されるようなcss)。とりあえず何も考えずに(cssの指定をせずに)利用できるようなコンポーネントが整備されていたら便利かもしれないという意図だった。
oxal.orghttps://oxal.org/projects/sakura/
実際に触ってみてから
実際に触ってみたときのつぶやき。一応vuguが価値を出しそうな例をgistとしてあげた。要約すると競合はCLIでリアクティブな表示があるようなツール(ここでのリアクティブは元来の意味でのリアクティブ、excelはリアクティブなソフトウェアという意味でのリアクティブでFRPとかRxの話ではない)。そして初手でnpmができるような環境の人は対象外。イメージとしてはSREやOpsと飛び道具。配信対象はwebで公にではなく社内の誰かに補助輪としてというようなイメージ。
vuguの使い道の例はこういう感じ(タスクがsleepなの分かり辛いかもだけど) https://t.co/9hqRgHiOlW
— po (@podhmo) 2019年4月6日
裏側でgoroutineなどでタスクを動かして進捗をviewerなどで表示するようなUI。
— po (@podhmo) 2019年4月5日
(もしくはリアルタイムのログを表示したりなど)
簡単な一覧表示ならたぶんHTMLサーバーを立てるだけで良いし。
— po (@podhmo) 2019年4月5日
複雑なUIを作るのならそれこそnpm由来のツールチェイン使ってくれという話になるし。
— po (@podhmo) 2019年4月5日
ただ内部がwasmに落ちるから直接taskを立ち上げられないのだよなー。
— po (@podhmo) 2019年4月5日
keyとか埋め込んだファイルを渡すとかだと便利なんだろうか。
(それともkeyとかを取得するようなUI付き込みで配布してようやく便利になるんだろうか?)
社内用のgoogle auth的な認証付きで配布できたらたぶん便利
— po (@podhmo) 2019年4月5日
vuguの書き方を知るための方法
vugu自体の使用感やvuguに関する勉強に関するつぶやき
vg-forのloopが暗黙にkey,valueに束縛されるとか、NewData()が初期化の関数とかコードを読まないとわかんないしけっこう辛かった。
— po (@podhmo) 2019年4月5日
あと現状を理解する分には日本語の記事は見る価値なくて、役に立つのは公式のgetting startedと通貨の情報を取ってくるexampleと実際のコードだけ。
— po (@podhmo) 2019年4月6日
exampleというのはこれのことhttps://t.co/ErATtJc4Cx
— po (@podhmo) 2019年4月6日
motivationなどを覗いた後に使いかたを把握するのに見るべきリンク
総評
ここでのつぶやきを元にまじめに文章を書こうとしたがやる気が無くなってしまった。
vuguは何であって何でないかみたいな文章書ける気がしたけどめんどくさくなった
— po (@podhmo) 2019年4月6日
現状の話とワンバイナリで済むという話とリアクティブなコンポーネントが欲しい場合の話と初手npmが可能な環境の人はお呼びではないという話と競合はあくまでcliと言う話と実際にはopsの飛び道具だよみたいな話
— po (@podhmo) 2019年4月6日
あとリアクティブなuiの話はjsで全部済ませる話とphoenixのliveview的な話とwasmに任せる話がある。
— po (@podhmo) 2019年4月6日
goでwasmは現状ではポータブルなこと以外で利点が無いとか(vuguの人とはたぶん意見が異なるけれど)
— po (@podhmo) 2019年4月6日
tinygo云々はIoTとかでまじでやる人には意味があるものかもしれないけれどgc外したgoとか通常の用途では価値ないと思う
goのwasmの雰囲気は前shibukawaさんが発表してたものから変わってないと思う
— po (@podhmo) 2019年4月6日
あとvuguがexperimentalというのは、利用する技術だけではなく出来具合もふつうにPoCに近いものなので、正直なんであれがビミョーにバズったのか現物いじってみたあとでも理解できなかったりする。
— po (@podhmo) 2019年4月6日
(goのwasmに関しての発表資料を見つけられなかった。記憶違いかもしれない。もしかしたら発表している人も異なっている?)
本当はgoでwasmを吐く話とvuguの話は別の話。
vuguの使いみちのデモ
今の所ギリギリvuguが優位性を保てそうな状況を考えてデモとして作ってみたもの。以下がポイント。
- リアクティブなコンポーネント(progress bar)
- ターミナル(CLI)で表現しづらい表示
- (sakura.cssみたいな直接タグを修飾するようなcssを保持させておくと便利かも?)