私的な 2016 年技術的な振り返り

実際にどうだったかと、保存した記事をみたりして振り返ってみた。

Erlang/OTP

自社の製品だけでなく、他社のサービスのコア部分を書かせて頂いたりと Erlang/OTP を軸にした仕事がいくつかあった。2016 年もほとんど Erlang/OTP を書いていた。

去年は他の言語への移行を考えたりしていたが、今年は Erlang でどこまでいけるのかを考えていたりした。残念ながら Erlang が遅い事での問題点も顕著に出てきたりしたので、今後どうがんばるかを考えていく必要がある。

Erlang も 19.2 がリリースされ、 2017 年は 20 に向けてリリースが進む。大きい変化を受け入れながら進んでいく必要がある。

去年は Golang を眺めつつと書いていたようだが、割り切って Erlang/OTP にだけ投資した一年だった。

Erlang/OTP で書いた製品が何本も出荷されていた、今後も自社製品を支える力になってくれるだろう。

Elixir

まったく書くことは無いが、設計自体はそもそも ErlangVM 上で動いている言語ということもあり、Erlang のノウハウがそのまま利用できる。

Rust/Golang

ほとんど手を出さずに見ているだけ、で終わった。見ているのも残念ながらなんとなく以上のものでもない。本当に困らない限りはなかなかしんどい世界なのだろう。

OCaml

本を 2 冊ほどかって、手を動かしてみたが、すぐにお金に結びつけられないこともあり、手が動かないでいる。2017 年は少しでも手を動かしたい。

JavaScript

去年は手を出さずにいたが今年は積極的に手を出した。理由は簡単で、フロント部分の話を理解できるようになりたかったから。

学んだ詳細は React コトハジメ にまとめてある。

触った技術は以下の通り。

  • React
  • Babel
  • Material-UI
  • ESLint
  • Webpack
  • WebSocket

触れなかったのは Alt と FlowType 、これは 2017 年中には触っておきたい。

JavaScript は Electron も考えると本当に幅広く利用できる言語になった。Babel を使う事で今時な JavaScript で書けるのも自分としては驚きだった。

今後どうなっていくのかは追いかけていない自分にはわからないが、今後も凄い速度で発展していくのだろう。それを遠くから見守って行ければと考えている。

React-Native

https://github.com/oney/react-native-webrtc このライブラリを見てから、自分は触らないで利用してみることにした。

React の考え方をそのままに利用できるのはとても良い。 1 からの投入は難しいが WebRTC のデモアプリを開発する環境としてはとても扱いやすいようだ。

2017 年はこのサンプルを積極的に公開していきたい。

WebSocket

Erlang からは相変わらずガンガン利用している。便利だ。ただ実際に利用するときは SSE みたいな利用方法がほとんどだ。WebSocket を空くまで通知用とわりきり、サーバにメッセージを送るときは HTTP API (POST) を利用することしかない。あえて WebSocket を利用するのはよほどブロックしたくないときだけだ。

WebRTC

2016 年はずーっと WebRTC をやっていたような気がする。内部のプロトコルもそうだが、映像や音声のフォーマットにも詳しくなった。SDP はすでに読みやすいと感じ、 WebRTC はとても合理的なプロトコルだとも感じるようになってきた。

2017 年には Edge が WebRTC に対応することもあり(すでに nightly では対応済) 、大きく変わっていくのが目に見えている。余り変わりが無い世界と言われつつも、徐々に変わってはいる。

どうなるかはわからないが。

MQTT

残念ながらすでに手を引いているというのが正直なところだ。実証実験でいくつかの仕事をさせて貰ったり、自社製品も売れたが、今後続けていってもメリットが無いと判断した。

理由はいくつかあるのだが、ネットワークとセンサーが別世界だった、ということに尽きる。コミニュケーションのコストが余りにかかりすぎる。これは双方が歩み寄るのは無理で双方を理解している人が交通整理していく必要がある。

自分は片方しかわからないこともあり、色々厳しいというのが結論だ。

Docker

Docker for Mac が出て扱いやすさが劇的に上がった。ただ実際のデプロイは未経験で今後も本番へのデプロイツールとしての Docker はあまり積極的には利用していくことは考えていない。

それよりはテストやビルドといった環境を閉じ込めた世界に使っていきたい。特にテスト環境を構築したりするのはとても向いていると考えている。Docker を利用することでコストが減らせるのは今までめんどくさいと思われていた部分ではないだろうか。

QUIC / TLS 1.3 / HTTP/2

まったくといっていいほど追いかけていない。今年は TLS 1.3 がきそうなため WebRTC 側での対応が求められそうと考えている。この辺はゆっくりでいいから手を出していく必要があるだろう。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store