やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

シェルスクリプトをうまく書けたときの多幸感

 めっちゃ嬉しいし、超気持ちいい。あの感覚について考えてみた。

いつ?

 どんなときに気持ちいい?

  • 仕事を細かく関数化できた
  • カプセル化できた(名前汚染回避)
  • 短く分かりやすい名付けができた
  • 入出力インタフェースがわかりやすくできた
  • パイプでやりたいことを構築できた

なぜ?

他言語と比べてみる

 なぜシェル(bash)のときだけ、あれほど気持ちいいのか?

 他の言語を書いているときと比べてみる。

  • C#は最高(でもワンライナーやパイプ的快感がない)
  • Pythonだとイラつくことが多い(環境構築。非タイプセーフ。名前の不統一 etc...)
  • シェルは苦痛と快楽の両方がある。そのギャップが大きいのが特徴か

ギャップと反転

 気持ちよさはどこから生まれる?

  • シェルは難しい。難しくて苦労した分だけ反動で快感に変わる

 なんかマゾっぽい。だが、不幸を知らねば幸福が実感できないもの。今ある幸せは失ってはじめて気付くもの。つまり、苦痛こそが快楽のタネ。苦痛だらけのシェルは快楽のるつぼ。

男性心理をワシづかみ!

 シェルは小悪魔的。とても楽に書けることもあれば、辛すぎることもある。だからこそ、自分の創意工夫によっていい感じに書けたとき、強い快楽で満たされる。支配欲、征服欲を刺激されて、もてあそばれている感。プログラム言語界の峰不二子

 知れば知るほどわからなくなり、これで完璧と思ったら別の書き方を発見して困惑する。ネコのような奔放さ。決して確定させない秘密だらけの謎の美女。いい女は隠し事だらけ。謎の多さが魅力。冒険心、探検心、攻略心をくすぐられる。男を惑わす魅惑の言語とはシェル子のこと。

 できないことは外部に丸投げ。甘え上手。Pythonのように半端に安易に高級言語オブジェクト指向を取り込んで自壊するような間抜けはしない。時代の流れも無視して、己の価値を信じ続ける芯の強さ。孤高の一匹姫。この相反する二面性・ギャップにイチコロ。

多幸感

 シェルスクリプトをうまく書けたときの、あの興奮、あの快感、あの気持ちよさ。

 あの感覚に名付けるなら「多幸感」だろう。多幸感とは、非常に強い幸福感や、超越的満足感のことである。

名前 意味
高揚感 気持ちが高ぶり興奮した感覚
幸福感 幸せ。心が満ち足りていること
快感 気持ちのいい感じ
満足感 満ち足りた感じ
達成感 物事を成し遂げたことによって得られる満足感
多幸感 非常に強い幸福感や、超越的満足感のこと

 高揚感はある。だが、何かが足りない。漫然とアゲアゲといったり、漠然とアゲポヨ〜という感じでは、どうにも手ヌルい。ただアガっているだけではないか。ガチ勢でなくエンジョイ勢的な生ぬるさを感じる。もっと目がイッちゃっている感が欲しい。

 幸福感は、なんか違う気がする。間違ってはいないが、もっと病的で悪魔的で邪で危ない感じが必要だ。

 快感はある。ただ、爽快さもあるかのような語感なのがひっかかる。シェルの件は鬱々とした作業の結果なので、鬱積した万感の思いを篭めたい。愉快ではなく愉悦。ジェットコースターに乗るとかドラッグ一発などで安易に得られる快感とは別物なのだよ。もっと歪んだ感じ。

 満足感は近い。だが、満足感は与えられるだけでも起こりうる。しかしシェルの件は違う。必要のない無駄なこだわりによって、はじめて生じうるのだ。本来は決して生まれることも無かった満足感、すなわち自己満足感である。その異常性を言い表すには、どうにも薄味。そもそも、シェルはどこまでいっても満足には至らない。むしろ不足があるからこそ、足そうとして自己満足を得るもの。その病的さを言い得ていない。

 充足感充実感は違う。絶対に違う。シェルの件は充足なのではく過剰なのだ。必要のない無駄な技術を追求する無駄な作業によって生まれる奇跡の感覚だ。リア充には決して分からない狂った何かなのだよ。

 達成感はかなり近い。満足感よりも近い。だが、達成感だったら他の言語でも同じように得られる気がする。目標の仕事が達成できるコードが書けたら、それで得られそうに思える。それは真っ当で健全で生産的なビジネスマン風である。そうじゃない。bashできれいにコーディングできたときの、あの感じは。汚泥に飛び込み、泥まみれになって、ようやく宝石を見つけ出した感じがない。もっとハチャメチャなアドベンチャー要素がいる。

 多幸感。これだ。なんかヤバイ感じ。危ない感じが語感から伝わる。「非常に強い幸福感」とか「超越的満足感」とか、過剰で痛々しい感じがそれっぽい。他の言語ならサクッとできるのに、シェルにこだわるあまり、無駄に創意工夫を求められる。そしてその無駄な仕事を見事、美しく仕上げたからこそ得られる過剰な快楽。まさに多幸感。

 結論:シェルスクリプトをうまく書けたときの、あの興奮・快感・気持ちよさは「多幸感」と表すのがベスト。

所感

 高ければ高い壁の方が、登ったとき気持ちいいもんな。まだ限界なんて認めちゃいないさ。誰のマネもしない自分だけのコードを書けばいい。問題解決のレシピなんてない。もっとマシなはずのコードを探して。終わりなき旅。

 いつまでも童心を忘れぬ男のための言語。それがシェルスクリプト

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux