ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

プログラミング生放送@品川 また行ってきました!

こちらに越してきて初めてのプロ生です。
今回は未確認飛行の中の人によるC#のあついお話や、新しいKinectのお話なんかが聞けました。

新しいKinectがお披露目?(本機は開発中のものです)

Xbox Oneについてくる新しいKinectがプロ生にお目見えしました。私はこの前アメリカに行ったときにディスプレイされているのを見た以来の再会(?)ですね。同時にボーンをトラッキングできる人数が3倍になったり、APIが扱いやすいものになったりしていたようです。デモンストレーションは一度はうまく行かなかったものの、LTでのリベンジで無事に成功したようです。

C#コンパイラ中間言語にコンパイルする理由

ライブラリのリンク時に、メモリのレイアウトがかわってしまう可能性を考えてのことだそうです。
変数の定義順を変えると、コンパイル時に変数の値が割り当てられるメモリの場所がかわるのだとか。それで、マシン語レベルまでコンパイルしてしまうと不具合が起きてしまう可能性があるわけです。一方、スクリプト言語のようにソースコードをパースして実行するとどうなるかというと、ソースコードを解析して構文木を作るところで2〜4桁時間がかかるとのこと。なので、解析してコンピューターに優しい状態に近づけつつも、型情報や変数名が残っているという状態に持ってきたというのが理由なのだそうです。
Javaの場合は中間言語にコンパイルして仮想マシンを実行させるレイヤーを挟むことで、あらゆるデバイスで動くようにともくろんでいたようですが、C#中間言語を採用した理由はまた別だったんだなと思いました。*1

次回は何かやりたいな

ちょうどHaskellの本を手に入れたし、なんかWebフレームワークがあるらしいので、ちょっと遊んでみたいなと思います。うまく行けたら発表してみたいです。

*1:もちろんこれだけが理由なのかと言われるとそうではないかもしれないし、私はいろんな言語で.NET Frameworkを使えるようにするためだろうとも思っていました