読者です 読者をやめる 読者になる 読者になる

@PG_sister_bot の発言に想いを馳せる

イベント

 プログラミングクラスタの皆さんは漏れ無く@PG_sister_bot をフォローしていることと思います。
 このアカウントは、プログラムを勉強している人の毒舌な妹の発言をしまくるいわゆるネタ bot として有名です。僕もいつも楽しませてもらってるのですが、よくよく読むと彼女の発言はなかなか興味深く、マジレスしたい欲求に駆られてしまいました。
 というわけで本稿はネタ記事です!あくまでネタ記事です!*1

1.

GCの無い言語にこだわることと、メモリリーク起こすプログラムを書くことは別の問題ではないでしょうか。メモリリーク起こすプログラマが GC のある言語を使って速度が得られるのであれば話は別ですが。彼女は、C++ 等の言語の進化の意義をどう肯定/否定するというのでしょうか。

2.

#include の意味を理解しているプログラマがどれほどいるでしょうか。プリプロセッサという機能の理解、include 命令の仕様、そして stdio.h 及びその中で include されているすべてのヘッダに書かれているプログラムの意味を理解することがどれほど高度なことか...。これらを掌握しないと #include を書くことが許されないのであれば、プログラムの勉強なんて誰も始められないと思います。

3.

確かに、ソースがやたら長いプログラムは良くないとされています。しかし、では何を以て「大規模なプログラム」と呼ぶのでしょうか。ソースの長さではないとしたら...ちょっと良い答えが思いつかないです。

4.

また「大規模なプログラム」ですね。「大規模なプログラムを合理的に設計した」と言った以上、彼女の中で「大規模なプログラムを非合理的に設計した」という表現は別の意味になるのでしょう。非合理的に設計された大規模なプログラムは、"ソースがやたら長いプログラム" とはまた別なのでしょうか。このへん、非常に興味深いですね。

5.

それはそうかもしれません。しかし... ではどうしたら良いのでしょうか。多くのプログラマは新しいパラダイムの環境を使ってみて、ようやくパラダイムシフトを得るのではないかと思います。パラダイムシフトを先に経験した後でコードを書くのであれば、昨今あちこちで賞賛されている「写経」という手法そのものが否定されてしまうのではないでしょうか。

6.

それはそうかも知れませんね。しかし、ではクラスとはいったい何でしょう?僕は、まだ答えが出せないでいます( 『クラスとは何か。』偏見プログラマの語り! )。誰か知ってたら教えてください。

7.

散らかっている(であろう)部屋を見たとして、いったい何が分かるというのでしょうか。使ったものを後始末しないと作業スペースは減るわけだから、そういう意味では一理あるように見えます。しかしそれは「後始末のための時間的コストがかからない」というメリットとトレードオフの関係にあることには留意すべきです。GC の実装だって、「あるメモリが不要になったとき、まずは何もしない」という戦略を採っています。それに、余っているスペースで十分に作業ができるのなら、メモリリーク自体は問題にならないでしょう。ゆえに、彼女の指摘は説教として不適切であるような気がします。

8.

何でもかんでも英語にするのは賛同できません。そもそもプログラムソースは、可読性が要求されるものです。もちろん多くのプログラムでは英語が使われているわけですから、全てを日本語で書くことが良いとは言いません。しかし、例えば日本の古楽器の管理をサポートするプログラムにおいて、太鼓を「Drum」琵琶を「Lute」、尺八を「Bamboo flute」に英訳して書くことにどういうメリットがあると言うのでしょう。「Taiko」「Biwa」「Shakuhati」と書くべきです。それと同様に、そのプログラムが書かれた文脈・背景を踏まえたうえでローマ字表記を使うことは、否定されるべきではないように思います。

9.

確かに「極端な解釈しかできない」のは、プログラマとして優秀とは言えないでしょう。しかし、問題を極端に解釈できるなら、妥当な対案を出せるプログラマになるまであと一歩でしょう。例えばプログラムのエラー対策において、極端で例外的なケースをイメージできないプログラマは目前の問題収束に走ってしまいがちです。そうやってプロジェクト終盤で設計のどんでん返しを誘発してしまうプログラマの方がよっぽど致命的です。下を見ればキリが無いとはいえ、極端ながらも問題を捉える能力を持つ人を "致命的" と罵る彼女に、プログラマの優劣を判断する能力はあるのでしょうか?

10.

アナタ、下の毛はスパゲッティなのですか!


以上、10 個チョイスしてみました。え、大人げない?あ、そうw

*1:一応、 bot 作者の [https://twitter.com/#!/big_bros:title=@big_bros] さんに公開の許可はいただきました。ありがとうございます!