2012/04/18

Perl入学式#4に行ってきた

Perl入学式#4に行ってきました。#3も参加しているので二回目です。

最初はPerlを基礎から学ぶつもりでしたが、サポータとして参加する事になってました。前回は@papixさんが、今回は@nqounetさんが講師です。会場は株式会社Joe'sウェブホスティングさんの会議室を貸して頂きました。

なお、今回からPerl入学式のロゴができたそうで、左の画像(横山陽平さん作)がそれです。

自分でPerlを使ってプログラムが書けても、人様に分かりやすく説明するというのはまた別の能力がいるもです。隅々まで理解している前提で、さらに分かりやすく説明できる能力がないとなかなか難しいなぁと思いますが、人様に説明するというのは自分の勉強にもなるので今回も参加した次第です。

鬼門、リファレンス

Perl入学式 #4の様子
僕はC言語の鬼門であるポインタを通ったのでPerlのリファレンスはすんなり理解できたのですが、そうではない人はやはりリファレンスの概念や役割が難解な感じでした。

また、Ruby, Python, Javascriptなどの値渡しか参照渡しか意識しなくてもよさそうな言語から来た場合も、やはりリファレンスは鬼門であったような印象です。

リファレンスの用途としては「複雑なデータ構造を表現するにはリファレンスを使う必要がある」と@nqounetさんが仰ってた通りです。

また、プログラムを学ぶという事は他人の書いたコードを読んだり、モジュールのソースを見たり使ったりするという事も当然あります。モジュールの使い方をperldocで見ても、引数に渡すデータはHash Referenceであったり、メソッドを呼ぶと複数のデータがArray Referenceで返ってきたりするケースが沢山あるので、やはりリファレンスは避けて通れないものでしょう。

リファレンスを避けて通る?

Javascriptはたまに書くのですが、そう言えば値渡しか参照渡しか意識した事がない事に気がつきました。Ruby,Pythonは殆ど書いた事ないので、どうなのか調べてみると、意識しなくてもよいケースが多いながらも、意識しないとオブジェクトに対する操作では破壊的な事も起きるって感じでした(流し読み)。

リファレンスの概念

僕がポインタの概念をどうやって理解したか忘れたので、また人によって分かりやすさの基準が異なるので、どういうのが分かりやすいか定かではありませんが、やはり絵とか図があるほうがいいのかなと思います。
書架番号と本?
たとえ話は身近なものであるほうが分かりやすいので、2ch.netが身近かどうかはさておき、C言語のポインタの解説が書いている http://sorau22.blog74.fc2.com/blog-entry-100.html でのレス番と書き込み内容の例えがなかなか分かりやすい感じです。

同じように、URLとページコンテンツもリファレンスと中身という対応に一致しそうな気がしないでもないです。

リファレンスそのものは演算できないのですが、これをポインタで例えるならば、あんな画像やこんな画像のURLがhttp://www.example.com/0042.jpg になってたら、0043.jpgとか0044.jpgとか0045.jpgとかに書き換えるのはポインタ演算に相当するのかなぁとか。

関連サイト

0 件のコメント:

コメントを投稿