読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

LL Ring 行ったメモ

日記 勉強

LLRing memo

第一試合 Ruby vs Perl vs PHP vs JS

Python はイベント衝突で不参加

Javascript

ECHMA Script 2015 が発表、ECHMA 6 が名称変更で、正式公開。
言語仕様の追加が行われてる。

JavaScript の仕様が変わるとみんな地獄をみる。しかし、ALT JS なんか結構出てきたんだ。
ES2015 では class, ラムダ式 なんかが入る。
Babel というプロジェクトで、新しい文法を書きつつ、ES5 以下のコードにコンパイルもできる。

モダンな書き方に移行しつつある。
let,val などもそうだが静的型に寄ってきた。
言語仕様として強制が大きい。

ここがすごい

世界で一番動いてるはず。
Acrobat reader にすら乗ってる(結構攻撃に使われるけどね)
地デジでも使われる。

全部 immutable なのはいいんだけどさ。

いまいち

数字の Number が浮動小数点なんだよね。
64bit 整数とか扱えないんだよね。
ES2015 から、整数演算のやりようができる…。

NaN に隠しデータを持たせることがテクニックとしてある。

この辺がいい

コンパイラのバックエンドをされたり、ソースマップ機能があるので、デバッグも容易。
ビット演算をすると、32bit 整数に変換される。
言語仕様を逆手に取るのが普通

PHP

PHP7 がそろそろ出る。
現在 RC2 で 11月に正式版が出る。

PHP7 で速度が倍!基本のデータ構造が変わる。
内部の構造が大きく変わったという話で、PHP コードはあんま変わんない。
C で書いた extention なんかが死ぬ可能性大。

ここ数年で、無名関数とか少しづつ入った。しかし、言語的に強制はしない。
一応 PHP7 から少しづつライブラリが変わる。

ここがすごい

ちょっと困っちゃう…。
追いついたと思うと、他のは先に行ってる…PHP は共和制だからなぁ。
カリスマ主導者ないよね

いまいち

非同期の扱いがないからなぁ。
言語仕様も貧弱だからなぁ。

この辺がいい

Perl

Perl5 が不定期更新だったが、年1度にバージョンアップに変わった。
Perl6 を今年のクリスマスに出す!(ラリー・ウォール氏)

Perl6 は完全に互換性がない。
ともかくたくさんの意味不明なオペレータがあるwww
内積をとるとか、配列のreduceをとるオペレータとか…
今回からクラスがきちんと入ってる。
文字列連結とか色々変わった。「.」から「~」に、「.」はメソッド呼び出しに変更。

基本的にバージョンアップで何も動かなくなる。 余計な言語仕様を削除していく方向も。

ここがすごい

機能が豊富。
パーサーを書く機能まで入ったし、言語仕様自体も改変可能。
Perl6 で書かれたVMで動いてる。

いまいち

Perl6 は遅いし、Perl5 はもう変化ないんだよね。
Perl5 の 100 倍遅い…。
最近 JIT 頑張ってる

この辺がいい

Perl5 でパーサーを自分のコードで乗っ取りができる。
まじ正規表現はダントツだよね〜。

正規表現で普通にパーサー書けるくらいだぜ。

Ruby

Ryby 2.0 が出たので、仕様変更は抑えめ。
クリスマスに 2.3 が出る。
最近は速度改善がメイン。
バイト列の扱いが大きく変わって一部が泣いた。

文字列リテラルが全部 immutable にするぞーとか言い部が騒いでる。

2.0 で古いのがっさーいった。
バイト列を自分で操作するのは止めましょうとかそういう方向。

ここがすごい

Rails があるところ!むしろ Rails のためのランタイムだ!
Bundler もすごいよ?

いまいち

JRuby とか羨ましい、ブラウザで動く JavaScript とかいいなぁ。
ネイティブエクステンションでひどいことになってるけどきれない

この辺がいい

C 拡張ライブラリが書きやすいし、ライブラリが一通り揃ってるからね。
PHP を dis るのに非常に便利?

質疑

JavaScript

問:typescript の機能は、ES6 にいつ入る?
ES7 が検討中で、どこまで入るか不明。
型は、Babel で対応しているし、今後それが普通になる。

JavaScript

問:node って JavaScript と仕様上何か影響がある?
これまで、ブラウザ依存の処理系だったんだけど、nodejs は純粋な言語仕様の世界。
そのおかげで、言語仕様としての論議が発展した感じがある。
ES6 で import とか入ってくる。モジュール化も仕様として入ってきた。

LL で MultiThread はどうなるかね?

  • JavaScipr: nodeJSどおよ?
  • PHP: 1リクエスト1レスポンスでしか考えない。
  • Perl6 : Thread は当たり前、でも fork はないかな?
  • Ruby : JRuby やれや、マルチプロセスでってのは課題。書けるけど、ライブラリへぼいか?GO で拡張ライブラリ書けるから、それでやるんじゃね?

言い残したこと

  • JavaScript : Babel やってよー楽しいぜ?
  • PHP : あんま愛を語ってないことか…早くなるのは楽しみか?
  • Perl6 : リリース直前!触ってて楽しいぜ?
  • Ruby : クリスマスに 2.3 出ます、そろそろまた会議あるので、提案出してください!

第二試合 IoT 時代のLLフルスタック

LL はどういう世界へ進むのか?

  • ユカイ工学の青木さん
    • Ruby で作られてるロボット、ボッコを持参
  • 岩淵技術商事:岡島さん
  • Yahoo : 椎野さん
  • HTML5J : 若狭さん

注目のプレイヤー・トレンド

Amazon echo なんかはボタン押すだけで、注文・購入ができるって話だけど、デバイスとしては正しい使い方。 最近は、クッションにセンサー突っ込んで、姿勢が悪いとかスマホで教えてくれるとか。 音声認識なんかは? 家電を操作するとかありますね。 椅子のは、パナソニック音声認識使ってますね。 録音して、クラウド音声認識してますよね大体。 常時赤ちゃんを見てるとかそういうのがありますかね。 スマホにできないのは、謎のセンサーつかうとか、謎のアクチュエーターつけるくらい。 インプット・アウトプットの類はスマホでは無理ですよね。 センサーなんかがネットに繋がるんだけど、それだけだと「は?」って話なので、それをつなぐサービスだったり、スマホだったりするんでしょうよ

組み込みとの違い、なんで制限強いのにLL乗っけるのとか

konashi は、スマホと BT で繋がっていろいろ作れるデバイス。 スマホにアプリを置いて操作する。 もともとは iPhone + ObjC だったんだけど、エンジニアを集めるのに、JS 乗っけた。

人間が死んだら死んだよーって Tweet したら面白いなと思って、センサー作り始めた。 画面の外に出たくなるんだよね。 http://www.nicovideo.jp/watch/sm3912633 とか

mbet なんかは、ブラウザ上で開発して、焼き込む形になる。 edison なんかは、Linux 乗る。

KDDIOpenWeb board とかもあるねんよ。 最近は FireFoxOS の CHIRIMEN なんてのもあるのよ。

最近は基板上で JavaScript 動くとかいう変態デバイスも多い。

開発環境作るのに死ぬほどはまる。下手すれば、OS 作るところからスタート…幾多の山を乗り越えてやっと C ...
ぶち壊したのは Rasberry Pi がそれをぶっ壊した。

また、情報が Google とかに乗っかってる。結果として、最初の一歩はかなり楽になってきた。

IR Kit という赤外線を出せる装置がある。
サーバから、USB で JSON 入れると出て行く。

デバイスとWebの企業はどういう関係?

IT 企業がハード企業を食う方向が多い。
逆にハード屋が Web に歩み寄る動きは、デバイスだけ。本人たちにやる気はあんまりない。

ハード屋さんは、どういう風に活用されるかよく分からない。
だから、IT さんとかに声をかけてるし、大きな企業がその接続をいろいろやってくれるサービスがあると、それに飛びつく。

ハードは特化型になる、尖ってないと売れないから。
でもその制御アプリが別々になったりする。
で、アプリだらけになる…クソが。

IoT はどこに向かうんだろうか?

今は人をサポートするものである。
今後どういう方向に進化するだろう?

人間は案外場に乗せられる生き物だ。
「ビール冷えてるから風呂入ってね〜」とか言われたら入るでしょ?
IoT は気の利く通知になってくのではなかろうか?

テクノロジーは、面倒なことを受け持つべきで、鉄人28号なんて人が動かすものは、そこにリソースを割かれてしまう。
でも目指すべきは、ドラえもんでしょ?自分で考えて必要なことやってくれる。

ロボットに命令される時代が来るんじゃなかろうか?
人間との共生を考えて、Pepper とかやり始めてるし、そのうち人間が命令されるんじゃね?

LL がそこに絡まない何てことはありえないだろう。

時間切れ〜

第三試合 エンジニア不足はどこまで続くのか

まじエンジニア不足。
Etype エンジニアタイプの編集者曰く、@type の求人同行、未業種・未経験OKがなんと倍。
Web 業界では、もはや未経験から人を探す動向、SIとかの異業種からの転職、学生インターンほか若手、働き方の自由を売りにするなど。

なんだかんだとIT 系でも優秀な層は SI 行っちゃうんだよ…年功序列で人生設計もやりやすいから。
Web 系というと安いってイメージあるんだ。

Web は SI に比べると、歴史が少ないから、キャリアパスが見えないんだよね。
産業として定年の出るほど歴史長くないからね。

でも安定ってないでしょ?目指すべき安定というのは、自負だったり自信だよね?
ドワンゴって会社で、5年後も安定してると思ってる人は一人もいない、会社が落ちたら、勝手にみんな次の会社に行くよ。
これが理想

Web で優秀なエンジニアというのは、勉強できる人、キャッチアップだけじゃなくて、取捨選択できるとベスト。
だって 20 年しなくたって速攻変化するもん。
SI にもスーパーな人いるよね?絶対会社から出てこないけどw

でも集まらないよね?

じゃぁどうするかというと、会社の体制を変えて、世界中から探すしかないんだ。
副業OKとか…むしろ dwango は副業してるくらいの人のが欲しい。
そう進むしかない。

もしくは、スターを作る。
Google なんかはそう。MSとか外資系大手や、国内の会社も何社かそう言ってる。
ロールモデルとして、客寄せパンダは結構重要。

エンジニア自体も絶対数少ないですよね?

女性比率増やしたら速攻じゃね? → 確かにwww
アイドルグループじゃね?仕事もするけど歌もするみたいなwww
でも世間的にはアイドル部分しか見てくれなそうw

番組で、子供の頃から釣ったら? → SHIROBAKO の IT 版ですか? → 生々しすぎてだめだろw → new game みたいなのw

スタートアップしたくてプログラムを勉強する文系学生とか見た
社長になったら書かないだろw
でも知ってるのが重要じゃない?ビジネスって経営から来るし、どういう風に動くのかを理解するのは重要だよ。何も知らないと「魔法か?」っていう要件出してくる…(苦笑)
だね、そういう口を用意しとくのは重要

学校教育でプログラムを必須というのはいいことだと思う。
でも、プログラムがどういうものか知っていることが重要であって、できるようになることは必須じゃなくない?みんながプロになるわけじゃないもの。
ですよねー。でもそれって結構どこの業界にも言えるかも?

あとは上司が楽しそうでないとだめ

結論:

  • 企業側採用:採用は、会社の姿勢や体制を変えていく覚悟で。生涯モデルケースを示してあげるのも大事。
  • エンジニア不足:スター選手、メディア、アイドルとかで、業界を意識してもらう。プログラムをする機会を若い子に持ってもらう。

LLが支えるデータサイエンスの世界

Python

Python の DeepLerning ライブラリ Chainer というライブラリ。
DL のフレームワーク、でたのは3ヶ月前、現在 1.3.0

chainer では、学習済みの NN をダンプして渡すのがほぼデフォルト。

Julia 言語

Julia 言語 http://yohshiy.blog.fc2.com/blog-entry-246.html

JuliaTokyo UserGroup の創設メンバー。 http://julia.tokyo でアクセスできる。

もともと科学機銃計算のための言語。
シンプルで覚えやすい。
そのため、数値計算系のライブラリが無駄に豊富。

Jupyter を利用してブラウザ上でも使うこともできる。