技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

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 出ます、そろそろまた会議あるので、提案出してください!
続きを読む