Re: XSの勉強を始めるためのエントリーポイントは?

Re: XSの勉強を始めるためのエントリーポイントは?

あまり参考にならないかもしれませんが,私がXSを勉強するにあたっては,CPANのモジュールのソースコードを読むより実際に書いてみるのが一番だと思います。ただし,何か特定の目的があって,そのために関係がありそうなコードを探して読む,ということは非常によくあります。

以下,思いついたことを適当に並べてみます。

  • 自分でコードを書いてみて初めて分かることが少なくない
  • 学ぶのに適した理想的なコードは,そう簡単には見つからない
  • 古い書き方やおかしな書き方をしているコードも大量にあるので,そういうコードをフィルタリングするためにも,いろいろな作者のコードを読んだほうがいい
  • 多くのコードの中から理想的な部分を抜き出して,それを身につけていく
  • 目的とまったく関係ないコードから閃きを得ることも多い
  • perlソースコードをすぐ参照できるようにしておくのは基本
  • perlapi.podもすぐ参照できるようにしておく
    • 整形していないperlapi.podにはそのAPIのあるファイルが書いてあるのでPODをそのまま読んだほうがいい
  • XSを書いていると頻繁にSEGVを起こすので,-DDEBUGGINGをつけてコンパイルしたperlバイナリがあるといい

そうやって学んでいくうちに,「自分だったらこう書くのに」というようなことがだんだん増えてきて,それがまた新しいことを学ぶ動機になります。
というってもじゃあ結局どうすればいいんだってことになりますが,敢えて読むべきソースコードを挙げるなら,常にメンテナンスされており,最新のAPIが使われているperlソースコードそのものを読むのがお勧めです。中でもsv.c+sv.hとav.c+av.hは比較的読みやすいうえ,これらはSV APIの細かな挙動まで完全に記述されたドキュメントでもある*1ので読む価値があると思います。

*1:Rubyの作者であるMatzいわく「ソースがドキュメントだ。バグも完全に記述されている」だそうですが,私も同感です。もちろん本当のドキュメントも役にはたちますが。