だれも聞いていないと思って歌え

dance as if no one’s watching, sing as if no one’s listening, and live everyday as if it were your last.

「Node学園 24時限目」に行ってきました

まとめるのが遅くなってしまいましたが、 3月31日に株式会社FiNCで開催された 「Node学園 24時限目」 へ行ってきました。

nodejs.connpass.com

イベント概要

Node.js 日本ユーザーグループ主催による、 Node.js の勉強会です。 月に一度のペースで開催され、24回目の今日のテーマは 「 Node x WebAssembly 」 でした。

参加動機

  • Slack Bot を作ることで Node.js を初めて触り楽しかったため、今年は Node.js を頑張っていきたいと思っている。
  • Node学園という勉強会は知っていたが、今まで参加したことがなく参加して見たかった。
  • 先輩からこんな人がいると教えてもらっていた、こさまりさんのLTを聞ける貴重な機会だと思った。
  • WebAssembly 自体も最近よく耳にするため、どんなものなのか知りたいと思った。
  • Node.js 初心者のため、参加動機はふわっとしています……。

Node.js x WebAssembly

speakerdeck.com

WebAssembly がどのように使われているか

  • ネイティブモジュールをブラウザで読み込む(たとえば vim.js など )
  • Game (Unity, Unreal Engine などのゲームを、ブラウザ上で実行する)
  • メインターゲットはCやC++で書かれたものを実行できる
  • クライアントサイドだけではなく、サーバーサイドでも使えるがメインターゲットではない
  • 全てのコードのWebAssembly化を期待

Node.js x Native Modules

  • NAN
    • v8のAPIはバージョンが変わると壊れる(APIなどまだよく分かっていないので勉強しないと)
    • Native Moduels もだいたい壊れる
    • APIを抽象化して吸収するもの
      • node-sass もこれ?
    • 自由度が高い
  • node-ffi
    • 言語が用意している特有の外部呼び出し機能(?)
    • 外部呼び出しになるため、遅い
  • asm.js
    • emscripten の提供するコンパイラ
    • chrome / edge もサポート予定
    • フルサポートしていないためあまり早くない、意外と動かない……
    • 全てJavaScriptになりファイルサイズが巨大になる、ただ簡単
  • wasm
    • 新しく紹介したいやつ、わすむ
    • asm.js と同じ簡単さ
    • v8 の最新だとwasm対応済みなので普通に動く
    • あまり早くないこともある……単純な計算はWebAssemblyの方が遅いことがある

さらに…

  • Node.js stable module ABI の PR
    • NAN が要らなくなるのでは、と注目されている

HyperApp - 1kbのビューライブラリ

qiita.com

  • HyperApp を作りました
    • 公開 2017/3
    • SPA を作るためのライブラリ
    • virtual dom, redux/elm + router = 1kb

why

  • ReactはHeavyすぎる、フレームワーク
  • ミニマムな virtual dom エンジンがほしかった
  • 他のライブラリと依存していない
  • Redux/Elm 的な State管理
  • ハイパフォーマンス、300行と軽量
    • 「1時間で読んで理解できるよ」
  • サーバーサイドレンダリングとかしたい、追加したい機能盛りだくさん

OSS翻訳と GitLocalize

speakerdeck.com

翻訳でOSSへ貢献

  • OSS活動はハードルが高い
  • 翻訳での活動はは技術について知ることができるなどメリットが大きい

OSS翻訳の問題点

  • 英語のドキュメントだけが最新の状態になり、他の言語はメンテナンスされない……
    • 結局本家見よう、となればあまり意味がなくなってしまう

解決策としての Gitlocalize

  • 先月リリースされたばかり
  • 問題点を解決するためのもの
  • 本家英語版と日本語版を比較し、翻訳がしやすくなる
  • flow は git の操作の PR と同じようにできる

Node.js+GraphQLでBFFを作った話

qiita.com

node-whatwg-url

abouthiroppy.github.io

glitch.comでnode.jsのアプリを作る話

  • slide が公開されていないようでしたが、 glitch.com という Web IDE を使ってデモをしながらの発表でした

行ってみての感想

  • WebAssembly が具体的にどういったものか全く理解していなかったので、初めて聞く言葉が本当に多かったので少しずつ理解していきたい。
  • Backends for Frontends という言葉や概念を初めて知った。どういった役割をしているのか少しイメージが付かなかった。
  • Rust や GraphQL など言葉はよく聞くけれど、どんなものかあまり理解していなかった用語について勘違いしていたことに気付けた。
  • Node.js をどう勉強していけばいいかまだあまりイメージが付いていなかったけれど、 JavaScript のコアな部分を知って行こうと思う気持ちが大切なのかなと感じました。

もう少し Node.js の理解を深めて、もう一度参加してみたいです。