_ でー言語
http://partake.in/events/feac18f7-0b78-4129-92c5-ad0cce8feafb
に行ってきた。
SC2 の MVP vs MKP が気になりつつ遅刻しつつだけど…
後で見たがいい試合だった。
でー言語は久々に見てもこう、
楽しそうというか見るからに TODO がたくさんある感じで、
正直これだけ放置してても僕的にはあんま実用的になってないなあ…という感じというか。
これは褒め言葉で、つまりなんかあれこれ工夫するスキがありまくりっていうか。
maloader 飽きたらやってみたいなぁとか思ったことが色々あった気がする。
見てたのはデバッグしやすくなっただろうか…ということ。
- 例外飛んだ時の backtrace はあるだけマシになったけど、イマイチ。
- x64 の ABI 守ってるか、トレース用の DWARF 吐いてるか気になるので見るべき。あれ守ると backtrace が出しにくくなる的な意味で。僕のカンではたぶん守ってないので良い。
- 適当にクラッシュするコード書いて GDB に喰わせると GDB が死んだ。 DWARF4 の DW_TAG_* と D の独自 DW_TAG_* がかぶってるのが良くない。これはどう考えても D が DW_TAG_lo_user 以降の数値を使うべきである…とりあえず簡単な変更でなおることは確認した。
- -g じゃなくて -gc をつけるとクラッシュしない、が、これは string[] の内容見るのが大変になるので実用性が極めて落ちる。
- たぶん、 DWARF 拡張するとかじゃなくて、 go とかみたいに C の構造体として見せるべきだと思うね…
- this の EAX 渡しと GDB って整合性取れるんだっけ。これも調べるべき。
- Mac ではそもそもデバッグ情報が全く見れないらしい。たぶん dSYM になってないから…と思って Apple GDB ながめたけど時間切れ。
他のメモ
- 相変わらずコンパイルが速いのはいい。
- GC はあんま良くなってないらしい。パッチはあるけど…みたいな状態らしい。 fork する concurrent GC とはいかに。
- closure とか作る時に backtrace つけたいから言語ランタイム自体が backtrace 取れるサポートして欲しいとかなんとか言った
- かぶってるシンボルが weak symbol になってなくて plugin がやりにくくて困るとのこと
- walter たんもプログラマが知るべきなんちゃらに書いてるらしい。それは読まないと…
- GDC がいつのまにか他の人の手によって追いついてるらしい。
- D の例外ってどうなってるんですか setjmp/longjmp ですかと聞いたら windows は SEH 使ってるとのこと。そして僕はそのことを知っていたはずなのである… http://www.dsource.org/projects/tango/changeset/2569
- ライブラリの混乱っぷりはマシになったけど相変わらず色々スキがある感じなのかな…
- さすがに tango は死につつある…らしい? しかし日本は phobos ラブに偏ってるからな…
- D on Rails があれば流行るのではないか、という話に、 Rails は Java のアレっぷりにみんな辟易としてる時に颯爽と出てきたから流行ったのであって、今 D で作っても別にキラーアプリにならんのじゃないかなぁとか言った。今みんなが困ってること…ということで、
- JS …が最初に思いついたけど、 coffee script とか GWT とかまぁ色々あるからイマイチかなと
- iPhone と Android 両方サポートとかめんどいから D で書いたらどっちのアプリもできますみたいな不思議な仕組みがあれば…とか
- まぁなんか地震とか停電を解決しますとか彼女ができますとかそいうソフトウェア作れれば流行るんじゃないかな
- DMD 読みやすいと主張したら反論され気味だった。贅沢を言いすぎではないか
- evalu8.c というファイルを見てちょっと面白いなと思った
- 個人的には D で書きたいものがなんもないのがあれだなぁ…最近 C/C++ じゃないと書けないものと Ruby で書けるものばかり家で書いてあるから。またゲーム書けって話なんだろう…
- そもそも一般的な話としても、なかなか適した用途というのが思い当たらないんだよな
- ずっと動かし続ける系アプリは GC つきの言語だとこわいという妄想によりサーバは却下
- それなりにパフォーマンス出た方がいいという考えあたりから、 GUI アプリとかモバイルとかかなぁ
- ある程度デカいデータ処理やる自然言語屋さんとかには向いてる気がするな。書き捨てに近いコードだけどパフォーマンスが出た方がよくて、文字列処理が得意だと嬉しい。うーんなんかすごい mapreduce 向きだったりしないだろうか…
なんか僕はいつも backtrace backtrace とわめくと言われたのだけど、
そうだと思う。
実用性って観点で見ると、 backtrace と printf デバッグって
プログラム言語に本当に重要な機能だと思うんだよな。
いつも言ってるけど。
printf デバッグっていうか Ruby の p がコンパイル言語にもあるべき。
後者は D は静的リフレクションでそれなりにできるんだろうなと思ってたけど、
まぁできるとのこと。
よく考えると書いたことある記憶もあるな…
(18:01)
http://programmer.97things.oreilly.com/wiki/index.php/The_Linker_Is_not_a_Magical_Program
類は友をy
オンラインで読めるんですね、ありがとうございます。当たり前の話だけどたしかにこいう質問多いしうざいだろうなーという感じでした。