プログラミングは美しくなければならない。
実際、美しく書けるかどうかではない。美しく書こうという心構えが大切だ。コーディングの話ではない。いやコーディングの話なのか?
計画の段階で「こういう風に書き始めよう、ああいうステートメントを書くだろうな、ちょっとだるいな。あのライブラリ使うな、久しぶりだし覚えてないなぁ。あとこういうAPIが必要だな。勉強しないと。。。。」
こんな脳内ふわふわ計画段階で、8割決まっていると私は思う。問題点、課題が正確に把握できているならば、それを実行すればいいだけだからだ。
やることが分かっている。明確な着地点が見えている。これ以上ないことだ。
生きるということはあいまいだ。20世紀の哲学者、アルベール・カミュは著書「シーシュポスの神話」でこう書き出している。
「真に重大な哲学上の問題は一つしかない。自殺ということだ」
生きるということにそもそも意味がないならば、今すぐ死ぬのが正解だ。つまりカミュは、下記のifが、初期化処理内(人が生まれた時)にあるだろう、という。
While(true)
{
if (「生きる意味」 == true)
{
人生();
}
else
{
break;
}
}
友と談笑するのも、仕事に汗水流すのも、すべての前提、根本にある if (「生きる意味」 == True) が真であってこそ。そもそもfalseなら、人生()メソッドはいらない。今すぐ生きるというWhile(true)からbreakするのが論理的じゃあないか。
でも、残念ながら生の意味は誰にも分らない。 bool 「生きる意味」 は、 Public Static ではないローカルな変数だ。その真偽に私たちはアクセスできない。
―――何故こんな事になったのだろう。分らぬ。全く何事も我々には判らぬ。理由も分らずに押付けられたものを大人しく受取って、理由も分らずに生きて行くのが、我々生きもののさだめだ。―――
とは中島敦「山月記」の一節だが、とっても濃厚な一文で、ハッ、とさせられる。
私は100%独学でへっぽこプログラミングをしている。田舎の小さな町工場で、Excel関数を一つも知らない事務員さんや、21世紀だというのに紙の帳簿に入出庫を記帳している経理や、毎回紙のカレンダーに予定を書いてる職長や、客先との急ぎではないやり取りを毎回電話でしている同僚のため、「少しでも仕事を楽にしてあげられたらいいな」という心でプログラムを書いている。全部は無理だ。私はヤハウェじゃない。少しづつ。ひとつづつ。
しかしSEなわけではなく、普通に工場の作業員である。金属プレス加工業を営む会社にお世話になっており、鉄を曲げたり、穴を空けたりする合間に、VBAやVSをポチポチしている。
片手間の、独学で、大した技量でないのは自分でわかっている。先人の書いた記事とにらめっこして、本を読んで、やっとこさぐちゃぐちゃのコードが、どうにか動く。
いろんなやり方がある。一つの目的に、選択肢が3つ4つgoogleで検索上位にヒットする。どんな言語で書くかも選ぶ余地があったりする。
自由だから、どれかしらの方法を選ぶしかない。なるべく簡単な方法を。どれが一番簡単か考える。英語のサイトだとちょっと気後れする。だからQiitaで、日本のみなさんが書いてくれたものを参考にすることが多い。
―――人間は自由の刑に処せられている―――
ジャン・ポール・サルトルの言葉だそうだ。なんと簡潔で美しい言葉だろうか。私たちの生活や努力が、この一言にバネのように撓んでしまわれているように私は思う。
今までQiitaの記事に、たくさん助けられた。だから自分も、少しづつここに書いていけたらと思った。もちろん、自分自身の備忘録、復習のためが一番だけど、もしも誰かの助けになれたらこんなに嬉しいことはない。こんな気持ちを引数にして、誰かに値を渡せたら。
私が初めてちゃんとコーディングしたのはExcelVBAだった。同じ事業所の事務員さんが、毎日製品の入出庫をExcelに記帳していた。
会社全体の帳簿であり、どこに何個ものがあるのかは考慮外だったが、だれかのわがままで事業所ごとの在庫も記帳し始めた。会社としては頼んでいない。彼女が勝手に始めた仕事。
客先との取引の流れを、細かく都度メールにまとめて配信していた。会社としては頼んでいない。誰かが、自分が楽をしたくて彼女に頼んだのだろう。彼女が勝手に始めた仕事。だからだれも手伝わなかったし、彼女だけいつも忙しそうだった。
みんなのためにと、彼女は思ってくれていたのだと思う。会社のカギは私が持っていたので、残業したい、とよく相談してくれた。
だんだん彼女は元気がなくなってしまった。手伝いますよ、と声をかけても、私が好きでやってることだから、といつも断られた。会社としても、そんな仕事しなくていいよ、と何度も伝えていた。彼女は頑なだった。
なにかできることは。そう思って、VBAを勉強し始めた。
出来上がった時、もう遅かった。 彼女はうつ病の診断書を持ってきた。そのまま退職してしまった。
だから、きれいなコードじゃなくていい。
無駄があっても、動きが遅くても、ユーザビリティが低くても、ベストプラクティスじゃなくても、オブジェクト指向の理解が間違ってても、UIがダサくっても。
誰かの助けになるかもしれないから。
誰かを守る武器になるかもしれないから。
プログラミングは美しくなければならない。