hellkite 日記と雑記とメモ。

Shiki Kazamaの駄文と音楽と、時々技術な感じ

サンプルコードの弊害と効用


スポンサーリンク


http://d.hatena.ne.jp/t_yano/20061216/1166296467
↑のリンクは言語比較の話ですが、サンプルコードというのは難しいですね。どちらの言語にも精通してその特徴を生かしたコードを書かなければなりません。
特に広く一般に出版される書籍などに載せるコードは特に重要です。影響力が強いですから。


初心者向けの本でも、会社研修などに使う本のサンプルコードは言語学習において大きなウエイトを占めます。学習はマネから始まりますので。適切なサンプルコードであれば、言語リファレンスをそれに加えるだけで学習資料として十分だったりします。
ですが、説明を簡単にしようとするあまり、サンプルコードがその言語にとって一般的でない書き方だったりすると、その言語の習得が難しくなります。上のリンクの中にあった、滝のようなnew演算子を見て、これが自然なんだ、と感じてしまったら・・・その後の学習の大きな障害になるのではないでしょうか?
自分は、構造化言語を中心に触れてきたのですが、スプリクト言語の習得・・・具体的にはPython・・・をしようとして壁にぶつかってます。
初心者向けの本を見ながらサンプルを打ち込みつつ勉強しているのですが、なかなか「それっぽい」書き方ができないのです。ネット上でその手の人達のコードを見てみると、自分が5行くらいかかって書く処理を1行で済ませたりします。
以前載せたコード*1なんて、見る人が見たら無駄の塊に見えるのでは?
そんなスプリクトの今時(?)の書き方が身についていないので、元のリンクのコメントの

print reduce(lambda x,y:x+y,range(1,6))

というコードを見て、「こんな風に書けるの!?すげぇ!」と思うわけです。
自分は、for文*2を使わなきゃいけない、と構造化言語(具体的にはCですね)の考え方をしてしまうので、こういうコードを見るのは刺激になります。


さっそくreduceとlambdaの使い方を確認しなければ・・・。*3


というわけで、今更ながら自分はサンプルコードに影響されているな、という確認ができたのが新鮮、という話でした。


サンプルコードが重要ってことで、この本も勉強になりました。

改訂新版 Cプログラミング診断室

改訂新版 Cプログラミング診断室

べからず集的なPythonのコードが載っているサイトがあればいいのですが・・・*4


話は最初の言語比較の例に戻りますが、コード自体が簡潔に書けるかどうか?というのは言語選択の基準にならない、と思います。言語周辺の環境、使っている人が近くにいるか、開発環境は整っているかというのが、私の最大の基準です。


まぁ、日本人は比較を好む人種なのか、この手の比較話・・・同じことをやらせてどっちが優れているか・・・は尽きませんね。
うちもその餌に喰いつく一人なのは間違いありませんが・・・。

*1:これ:ウィンドウハンドラを取得するスプリクト - hellkite 日記と雑記とメモ。

*2:でなくても、何かしらのループ構文

*3:こうやって学習してくのが初心者

*4:もちろん最適解つきで・・・今のところ2chのスレが一番勉強になったサイトってのもなんだかなぁ