はてなキーワード: 死活問題とは
結論から言えば、朝鮮半島とは「日本列島を守る盾」であり、同時に「敵に奪われれば刃となって突き刺さる場所」である。
私は予備自衛官補として有事の際に招集を受ける立場にある。だからこそ、地図を俯瞰して考えざるを得ない。
朝鮮半島とは、単なる隣国ではなく、日本の国防線そのものである。
明治の指導者たちは、西洋列強による植民地支配の現実を肌で感じていた。
19世紀末、欧米列強は「一国の独立を守るにはその周囲の緩衝地帯を確保せねばならない」という冷徹な国際法則を知っていた。
もし朝鮮半島が他国の手に落ちれば――たとえば清国、ロシア、あるいは後の時代で言えば中国やソ連――日本海は敵の軍港と化し、対馬・下関・舞鶴が前線になる。
日本列島が直接、他国の軍事圏と接するということは、すなわち「日本が防御不能になる」ということを意味する。
だからこそ明治政府は朝鮮半島の「独立」を保つために清国と戦い(日清戦争)、
ロシアの南下を防ぐために敢えて日露戦争という国運を賭けた戦争を選択した。
山縣有朋が残した言葉に「朝鮮の独立は日本の安寧と存立に関する死活問題なり」とある。
彼らにとって朝鮮半島とは「他国に奪われてはならぬ緩衝地帯」であり、
それを失えば日本の防衛線が対馬海峡から一気に本州の内陸へと後退する。
結果として日本は、列強の中で初めてアジアの一国が帝国主義の圧力に抗し、国家の独立を維持することに成功した。
その影には、朝鮮半島をめぐる絶え間ない外交と戦略の緊張があった。
では現代において、もし朝鮮半島が中国の強い影響下で統一された場合、何が起きるのか。
現在の北朝鮮はミサイル国家であり、南の韓国はアメリカと同盟を結んでいる。
この「南北の分断」は悲劇でもあるが、同時に日本にとっては一種の安全弁として機能している。
なぜなら、半島全体がどちらか一方の勢力に統一されていないことで、勢力均衡が保たれているからだ。
もし中国が北朝鮮を完全に支配し、さらに南側の韓国までも政治・経済的に取り込んで統一を果たしたとすれば、
中国人民解放軍は釜山・仁川・黄海沿岸を自由に使えるようになる。
対馬海峡を越えて日本海へのアクセスを得ることは、かつてのロシアが夢見た「不凍港の獲得」に他ならない。
自衛隊と米軍が対馬や九州北部で防衛線を築くことになるが、距離はわずか50km。
ミサイルだけでなくドローン、電子戦、情報戦が展開される最前線となる。
日本の電力・通信インフラは西日本から崩壊し、経済中枢は麻痺する。
つまり、朝鮮半島が中国の勢力圏に入るということは、日本の防衛ラインが「日本列島の内側にまで押し込まれる」ことを意味するのだ。
私は予備自衛官補として、再び国のために立つ覚悟を持っている。
明治の先人たちが朝鮮半島に注いだ関心と警戒は、決して過去の遺産ではない。
東日本大震災の際、私はご遺体を袋に包み、ご家族の元へ返す任務を担った。
その光景を二度と繰り返したくはない。
朝鮮半島有事を「他人事」と思っているうちは、日本は再び同じ悲劇を迎えるだろう。
だから私は声を上げる。
プログラミングとは、勉強も運動もスマブラも下手なクソ隠キャ中学生が「俺もパソコン1台で凄い技術者になって…!」とワクワクしながら始めるものの思ったより普通に難しいし学校の試験で出たような知識要求されるしで3日で放り投げ、10数年後にnoteで「お前らは絶望的にプログラミングに向いてないからやめろ」なんて記事を書くだけのザコに成り下がる、夢と希望に溢れた技術である。
近年ではパソコンのスペックの上昇にともないできることも増え、どこのご家庭にもあるRTX2080で簡単にディープラーニングもできるようになった。Unityで3Dゲームをバリバリ動かしてもブルースクリーンは出ない。やっぱ世界を広げるのは小賢しい知恵よりもスペックの暴力だぜ。
開発環境や言語も選択肢豊富で、エディタもかつては有料クラスでも手に入らなかったような贅沢な機能が満載のものが出回っている。Eclipseとか今考えるとよくあんなので開発できてたな。
いまや小学生からおばあちゃんまでアプリ作りに熱中し、高校生はIoTとかやり始め、大学生は商業レベルか?ってレベルのものをネットで発表し、私はウェブアプリのスマホでのレイアウト崩れひとつすら直せず静かにエディタを閉じてnoteで過激タイトル記事を書いている。
掛け算に順序があると思っているような知能の下級雑用係(自分のことを教育専門職だと思い込んでいる)ですら「小学生にプログラミングを教えるぞ!」と意気込んでいる。やめろ。お前らには無理だ。無理だからマジでやめろ。考え直せ。無理だって。掛け算に順序つけないと相手に教えられないレベルのやつがプログラミング教えるのマジで無理だって。算数とは次元が違うって。「ピーチ姫いつも簡単に誘拐できるし今度はベヨネッタも誘拐してみるか」ぐらいの無謀さだって。やめとけ。マジでやめろ。
まあそんなこんなで入り口はめちゃくちゃ広く、入門するのはマリオカートより簡単である。話逸れるけどSwitchのマリオカート、運転アシスト機能ついて初心者でもコース完走できるようになったから心折れちゃった人ももう一度チャレンジしてみてね。
それとは特に関係ないんだけど、大学行ってた時ティーチングアシスタント(TA)っていう授業のお手伝いさせられたのよね。ちゃんとお金出るやつ。
学部の3年か4年から始まって、院の1年か2年までやってて、途中で休学挟んだから、ええと、あー、うん、数年間TAやってたんよ。数学とプログラミングのコマ。CとOctaveとかいうやつ。Cのほうは情報学科で、Octaveは違う学科。JavaとかC++のコマはTA入れさせてもらえなかった。
プログラミングの実習は週2コマ(連続)あって、情報学科なら必修科目。なのでサポートは相当手厚く、先生とTAが絶え間なく机間巡視し、わからないことがあればセンパイがなんでも答えてくれるというわけだ。授業外でもサポートはしており、わからなければ先生や研究室にいる学生に好きなだけ聞きにいっても良いということになっていた。必修だから落とされたら困るしな。
2コマだから3時間 * 15回で、45時間。そして私の時は2年まででC/C++/Javaと必修だった(今はなんの言語かは知らない)ので、その3倍、135時間は最低やることになる。プログラミング実習以外にもプログラミング触る授業多いから実際はもっと多い。宿題やる時間もあるので実際はもっともっと長くプログラミングに触れることになる。卒論書く時期に入ると、テーマによっては書く人はさらに書くので、もっともっともっともっと長い。
これだけ時間をかければほとんどの人がプログラミングできるように……ならない。むしろできない人の方が多い。なんで。why。教えて。
会社になるとさすがにプログラミングできるできないは死活問題である。
「今日から入ったxxでーす。業界未経験ですがよろしくおねがしまーす。さっそくなんですけどPythonのここわかんないんですけどどうすれば……あっそうすればいいんですね。次はここなんですけど……なるほど!ありがとうございます。じゃあまた明日ー」
いやー社会人にもなると熱意が違うね。学生なんかわかんなくてもほとんど聞きに来ないのにな。こりゃガンガン伸びますわ。私も社会人1年生でPythonなんて3秒ぐらいしか触ったことないから適当答えてるけど。
「ちょっとお時間よろしいですか?」「いやちょっと今忙しいから後になっちゃいますわ。すんません……」
そんなこんなで1週間ぐらい放置してしまった。やべー絶対嫌われる。どこまで進んだかな……?えっまだそこ?進んでなくない?
もしかしてこれ全部教えないとダメなやつか。そりゃ大学4年間プログラミングやったやつでもプログラミングできないんだから、そうか。よく考えると当たり前だよな。
プログラミングをやめろ
大学4年間と大学院2年間プログラミングやったやつでもできないし、会社で毎日8時間を数週間プログラミングについやしてもできないやつはできないし、そもそも人類というのはプログラミングできない可能性がある。
少年少女たちに「プログラミングはいいぞ!自由にものが作れて達成感がある!頭が良くなった気分にもなれるし!」と吹聴してまわんのもいいけど、6年間情報科学について勉強したようなやつの大半がプログラミングできないんですよ。それもごくごく初歩的な部分。
野球とかサッカーなら、まあ友達との試合には参加できなくてもごく稀にバットにボールを当てたり、ボールを1回あらぬ方向に蹴ったり、ぶっちゃけ周りとのレベル差で楽しくなくてすぐやめちゃうだろうけど、なんとか基礎の一部ぐらいはできるじゃないですか。
ピアノとかダンスでも、猫踏んじゃったをごくごくゆっくり弾くぐらいはできるかもしんないし、学芸会の振り付けを10秒ぐらいは踊れたりできるかもしれない。その後やっぱ周りのレベル見て諦めちゃうかもしんないけどさ。
プログラミング、6年やってミットを頭にかぶってるバッターとか、鍵盤蓋の上から殴って音鳴らそうとするやつとか、まずそういうレベルのやつが大量発生するんですよ。だいたい7割ぐらいの率。どうすんだよこいつら。私の教育の問題か?マジで?本当に?
プロが練って考えて凝縮した本や授業、センパイたちによる指導。それらを結集して得られるはずのものが7割ぐらいどっかに消し飛んでる。無駄だろこれ。
今からプログラミングやろうとしてるやつ、お前は確実に向いてないからさっさと諦めて刺身にタンポポ乗せる仕事に戻ってくれ。参加しても鍵盤蓋叩き割るやつと同じ病室に入るだけだ。
プログラミングをやめろ。
ぼくはこう思うんですよ
そもそもなんで大の大人がそんな両手にバット持ってセカンドに立ったりゴールの方をボールのところまで動かす奇行に走るんだろうな。わかんねえや。
綺麗な分析はできないけど、いわゆる「できない」やつが共通して言ってたフレーズがある。
「ぼくはxxxだと思ってるんですけど、動かないんですよ」
うん、そうだね。そう思うんだ。でも動いてないじゃん。じゃあ違うんじゃない?モニターに「にらみつける」やってもバグは取れないし防御力下がるだけだぞ。
まず根本的に考えと事実が違ってるって結果出てるじゃん。じゃあもう考え変えちゃえば早くない?
名言の引用は好きではないけど、「プログラムは思った通りには動かない。書いた通りに動く」って言葉がある。実に名言だと思う。次点で好きなのが「ある問題を解決しようと正規表現を使うと問題が2つに増える」かな。
お前が何を思っているかはプログラミングにおいて一切影響しないんだよ。お前が何を書いて、コンピュータがどう処理したか、それが全て。
深く考えないことについてぎゃーぎゃーいうやつもいるけどプログラムなんてまず最初は動けばいいんだから何も考えずに次試せばいいだろ。んで3回ぐらいは自分で思い浮かんだの試して、全部ダメだったら調べるとか先生に聞いてみるとかさ。逆に1発で通ったら自分の思考見直して理解深めるとかさ。
ドキュメントとかあんまり理解できない初心者のうちは、とにかくお試しと修正のサイクル回すの重要で、「これがこうだから動くはず」というカードを3種類ぐらい作って全部片っ端から試すのが早いと思うよ。モニターをにらみつけるな。
お前がどう思ってるかよりも、まずはお前の書いたプログラムがどう動いているか(どう動いていないか)を確認するのが先だ。動かなかったら考えが違う、はい次のプラン、はいその次のプラン、はい次。
この「ぼくはこう思ってる」が出てくるの、なんの教育の成果なんだろうね。お前の気持ちなんてどうでもいいって現国でも数学で散々教えられただろ。
Error: variable 'a' is undefined, line 24
↑のエラーは架空のエラー文(英語下手でも許して)だけど、エラー、出るよね。プログラム組んでたら。んでやっぱいるのよ。エラーを「にらみつける」やつ。解決しねえって言ってんだろ。
「エラー出たんですけど、どうすればいいんですか」
「エラーにはプログラムがなぜコンパイル通らないかの原因がそのまま書かれている。例えば今出ているError: variable 'a' is undefined, line 24は、24行目の変数aが未定義ということを示している。事前に変数aを定義していないか、打ち間違えてsになっているとかではないのかな?」
だいたいが「腑に落ちねぇー」みたいな顔する。まあ、一気に喋りすぎたしな。疑問点1個1個潰していくか。
「何か疑問点ありそう?変数ってなにー、とか、定義ってなにー、とか」「ないです。わかりました!」
わかったのか。よかった。またモニターをにらみつける開始。なんでだよ!!!!「お前顔にチョコついてるぞ」って言われたらチョコ拭き取るだろ。変数aが未定義ですねって言われたら変数a定義すりゃいいだろ。
でもプログラミングド下手なやつ(全人類の7割ぐらい)は、エラーをにらみつけてる。ずっとにらみつけてる。防御力下限まで下がったかな。にらみつけてて何が変わるんだよ。
「英語読めなくて……」
いや「a is undefined」なんて「He is Superman」ぐらいの英語だろなんで読めないんだよ。お前この大学どうやって入ったんだよ。たしかどの入試方式でも英語あっただろ。単語わからんかったらググれ。
「aが未定義って書いてあるんですけど、ここのfor文の私の考えが間違ってるのでしょうか」
いや24行目のaって書いてるだろ。まずなんでそこ無視するんだよ。お前がfor文で使ってんの教科書通りのiだろ。24行目ってわかるか?for文あるの40行目あたりだよな?aとiが違う文字ってわかるか?
「さっきのエラー直したら新しいエラーが出たんですけど、どうすればいいですか」
千尋!贅沢な名だねえ
変数に名前をつけろ。関数に名前をつけろ。クラスに名前をつけろ。全てに名前をつけろ。
C言語の古い教科書だと「a」とか「b」とか「i」とかで書いてるけど、そんなの人間が読めるわけねえだろ。冷静に考えろ。「input」「output」「index」とかにしとけ。
2重for文の変数名i, jにしたら絶対途中で打ち間違えるだろ。お前は打ち間違える。そういうやつだ。2重ループなんてどうせ行列計算の課題だろ。rowとcolumnにしとけ。これで打ち間違っても気づくし、それぞれに意味が付いてくる。
ちなみに同じ長い名前にも優劣がある。「result」よりも「sum」のほうが強い。「result」はなんの結果かわからない(全ては結果であるので)が「sum」は合計値であることがわかるからだ。「password」と「plainPassword」なら「plainPassword」が勝つ。暗号化されていないパスワードであることがわかるので、情報量が多いからだ。
ただし例外はいくつかある。「tmp」は一時変数であることが(プログラマにとって)明らかだ。「dir」はディレクトリであることがわかる。「src」「dist」あたりもよく使われる。このあたりは短くていいんじゃねーかな。
でも、この前温度センサ扱うプロジェクトで「tmp」って変数名使って温度(temperature)と脳内で混線してバグって発狂してた同僚いたけど。そういうときは名前長くするか別の名前使おうな。
関数の名前なんて「calcAverageFromArray」ぐらい長くしていいから。「myFunc」とかしなくていいから。「fetchJsonDataFromUniversityInternalServer」とかでいいから。マジで。いやこれ本当に。
そもそも今時ディスプレイでかいし、識別子なんて先頭数文字打ったらエディタが補完してくれるし、短くするメリットがない。
それでも名前が長いと感じる?関数がでかすぎるんじゃないか。細かく処理を分けるとかしてみろ。「combineArrayAndFindMax」関数は「combineArray」と「findMax」に分割したらいいと思うぞ。名前が長いと思っても名前を削るな、機能を分割しろ。自然と名前が短くなる。
それかシンプルでかっこいい名前を見つける。「convertEvilHtmlToPeacefulText」は「sanitize」に置き換えることができる。イカす名前だ。
プログラミングできない奴はマジでこれらのことをやらない。ずっとaとかbとかzとか使ってる。お前それ自分で読めんのか。読めねえだろ。myfuncってなんだよ何するんだよ。お前自分で理解できてんのかそれ。
それでも頑なにaとかbとか使う。なんでだよ。
動作原理わからず書き散らすな。動作原理っつってもそんな深いところじゃなくて言語表面上レベルの動作な。
リテラルは値を作成して、代入は値に名前をつけている、とかその程度のレイヤー。メモリがどうこうとかはいらんと思う。あっでもポインタのときはいるか……。めんどくせえな。
まあ動作原理っていうか自分が何やってんのか理解してくれって程度の話になるんだが。
例えばfor文で処理50回まわすとき、「50回分の処理を行なっている」ではなく「ループ開始時に変数を初期化。条件判定して成立していれば文の中を実行する。条件変数の値を変化させてまた条件判定からやり直す」ぐらいの粒度で捉えててほしいかな、という気持ち。
これはfor文で詰まる人がやたら多かったからだ。彼らはfor文をアトミックな操作だと思っていた。つまりfor文はひとまとまりの命令であり、長いfor文とprintfの間に粒度の違いはないと思っていたらしい。
つまり、「for文の中でエラーが起こる」という事象がほぼ理解できない。forはアトミックであり、内部など見えないのだから。じゃあお前が今書いたfor文の中身はなんなんだってやんわり聞くと「さあ…?」みたいな反応が返ってくる。はあ。
関数についてもなかなか誤解が多かった。関数「sum_array(a, b)」と関数「average_three_numbers(a, b, c)」は全く別の原理で動いているのだと。ここでの「全く別の原理」というのはシグネチャが違うとか実装が異なるとかそういう意味ではなく、コーラを飲んでゲップが出る原理と糸電話で声が伝わる原理ぐらいの全くの別、という意味である。
彼らは関数ひとつひとつについて「新しく原理を学習」していたのだ。マジかよ……。どうやったらそんな発想に行き着くんだろう。そりゃ時間かかるわな。
そのため、関数が値を返す(または返さない)ということも理解できておらず、「関数の戻り値と関数の戻り値を足す」とか「関数の引数に関数の戻り値を直接渡す」とかやりだすと大パニックになる。メソッドチェーンとかやった日には大学潰れると思う。ただ、これはC言語が悪い部分もあると思う。配列とかいじりだすと、初心者が書けるレベルの関数だとあんまり値返さないしな。
たのむ、他のはできなくてもこれはできてほしい。自分が何をやりたいのかは理解してほしい。流石にお前のやりたいことなんて他人にはわからんぞ。
「配列の中の数値の合計値を求めたいんです」とか「名前と身長と体重をひとつにまとめた構造体が作りたいんです」とか。簡単なのでいいから。
「いま何やろうとしてどこで詰まってる?」って聞いても「……?」みたいな反応されたら困るんだよ。
例えば「キーボードから数値を10回入力し、それぞれの値を配列に格納して、最後に配列の値を逆順に表示せよ」みたいな問題が出てきたときに、「キーボードから値を入力する」「10回繰り返す」「配列に値を格納する」「配列の値を逆順に表示する」に分解できると思うんだけど、自分が何やりたいのかわからない奴はまずこれができない。
彼らには「キーボードカラスウチヲジュッカイニュウリョクシソレゾレヲハイレツニニュウリョクシテサイゴニハイレツノアタイヲギャクジュンニヒョウジセヨ」に見えている。
かろうじて「キーボード」「ハイレツ」あたりの単語は拾えるらしく、標準入力から値とったり配列を作ったりはしてるんだけど、そこから先に進まない。モニターにらみつけてる。またにらみつけるかよ。
あれだ、算数の文章題できなくてとにかく文章に出てくる数値足したり引いたりするやつ。あれのプログラミング版。文章が読めない。
こういう人にはメモ用紙取り出して、まず文章が何について言ってるのか、どういう工程に分けることができるのか、今後も同じことが起こったときにどうやって分けるのか。みたいなのを教えるんだけど、大抵あんまりしっくりこないらしく、成功したことは皆無。なんとかうまく教えたいんだが。
もうこのあたりになってくるとプログラミング関係なくね……?ってなるんだけど、意外とそういうプログラミング関係ないところで詰まる人めちゃくちゃ多いよ。
今すぐプログラミングをやめろ
「下段を奥義」とするのも獣と相対した際の死活問題から来ていると今では推測している。半身で構える下段は体当たりしてくる四足の獣の動きへ穂先の反応が遅れたとしても槍の柄が使用者と獣の間に残り、槍の柄で防御へ転じられる。これが上段や中段の構えであれば穂先の反応が遅れた瞬間に獣の一撃を直接身体へ貰うことになるだろう。下段から何が出来るか?攻撃と防御が同時に出来るのである。
「爺ちゃんの傍さ離れんなよ」
孫は聞いているんだか聞いていないのだか「うん!」と答えるが、その辺で拾った良い感じの木の枝を振り回し遊ぶ。木々が生い茂って独特の静寂さを持つ山中を老人とその孫、そして愛犬の五郎は進んでいった。
後年、知ることになるが本州の山林とは違い、ここ北海道の山は本州のそれとは違って非常に視界が悪い。本州の山林のほとんどは林業を営む方々が手入れをし真っ直ぐに樹木は伸びるが、北海道ではその圧倒的な森林面積により人の手が入っていない部分が数多く残り、文字通りの原生林として山の威容を示し、伸び放題となった木々は山中を行くあらゆる生命の視界を遮る。
老人とその孫の身なりは帽子、長袖長ズボン、長靴、本革製の手袋と手足首を覆う手甲と足甲は老人の妻、即ち孫から見れば祖母の手製だ。ハイキングならばまだしも老人と孫の装備は見るものが見ればひと目で生業を特定できる。猟師だ。可能な限り肌の露出を抑え、特に四肢を重点的に防護する見た目は娯楽ではない事を表す。
老人の右手には大鉈、左手には老人の背丈と同じ程度の狩猟槍、肩に猟銃を下げていた。孫は武器らしい武器はほぼ無いが猟に出る際にだけ持たされるマキリと呼ばれる小刀は腰に差されていた。マキリの持ち手には滑り止めを兼ねたフクロウを模した見事な装飾が施されており、この持ち手の作者は孫の目の前を行く祖父である。
この日は週のうちに何度も繰り返す山道の整備と捕獲罠の点検だ。祖父は大鉈で不要な草木を打ち払いながら進み、樹木の肌やその根本を観察する。昨今の報道でも知られるようにクマは樹木へ爪で傷を付け自身の縄張りを主張する。そして熊だけでなく多くの野生動物は排泄をする際に隠れるため木々の近くでする事が多い。
「爺ちゃんコレ!」と孫が樹木を指差す。孫はマーキングを見付けたと祖父へ伝えた。「おぉそうだよく見付けたべなぁ。クマが出っかも知れねぇから気ぃ付けろぉ」と孫を促す。当然ながら孫よりも先に祖父はマーキングに気が付いている。しかし孫の"発見"を褒めてくれるのだ。一応の確認として猟犬としてよく訓練された五郎へ目を配り何も反応がない事を知ると前へ進んだ。
いくつかの罠を巡ると、くくり罠に雄のエゾシカが捉えられているのを見付けた。祖父はそっと猟銃と大鉈を地面へ置き、槍を構えてエゾシカへ近付いた。そこそこの歳を重ねているであろうエゾシカはその場へ伏せていたが祖父を視界に収めると立ち上がるものの一切の抵抗を見せない。エゾシカはまさに威風堂々と言った立ち振舞いをし祖父を見つめている。祖父が音もなく踏み込み、首元から深く入るたったの一突きでエゾシカは倒れた。
馬ほどの体格を持つとは言え、素人目からするとたかが草食動物を容易に倒したように見えるが首元から様々な骨を避けて心臓まで一閃する達人の技だ。
実は昭和30年代に北海道で冷夏が相次いで森が飢饉状態となりエゾシカやヒグマ、キタキツネなど野生動物が人里へ大量に押し寄せる状態となったことがあった。その際に多くの民衆がヒグマに襲われるという事故が頻発し、若き日の老人は槍一本のみで日夜ヒグマを狩り続け、多いときには月に20頭以上、日に3頭ものヒグマを狩った。この若者は周囲の村落で大いに語られる槍の名手として名を馳せた。
その男気を聞きつけて槍を習おうとする男衆に混じり見物に来ていた女性は槍の名手の男に惚れ込んでそのまま押し入り女房となったという。それが孫の祖母である。
「奥義は下段」
孫は槍の名手たる祖父から毎日のように槍を習った。槍を習うとは言っても「まだ早い」と言われ穂の無い槍、すなわち単なる長い棒であり来る日も来る日も孫は祖父お手製の"槍"を振った。
祖父は口癖のように「奥義は下段」と言った。漫画の中で見るような敵を大きく吹き飛ばしたり環境大破壊を伴う派手な技でない。単に獣へ対して半身を取って穂先を地面すれすれに落とす構えこそが祖父の槍、アイヌの槍の奥義なのだという。
「槍を振った」と前述したが、実のところ槍を振り回すことはお説教を招く動きだった。「振るなァ!突かんかァ!」という祖父の怒号は今でも頭の中で鮮明に響き渡るほど毎度毎度同じ説教を貰った。
「突き引きが遅い!」「力任せに振るな!」「穂先を目線より上げんな!」「下段から何を出来るか考えれェ!」と覚えの悪い孫は何度も何度も同じ説教を受け続けたがコレがまたなかなか上手く出来ないものだった。祖父が用意してくれた的へ次々と素早く当てようとするとどうしても槍を振ってしまうのだ。
後年、孫は祖父の教えの真髄を1つずつ理解するようになってきた。
特徴と言えば祖父の槍、つまりアイヌの槍は内地(本州)の槍よりも短い。前述したが長さは使用者の背丈前後程度。これには理由があり樹木が生い茂る環境で内地の槍は振るうこと叶わず、まさに無用の長物となるのであった。内地の槍の長さは人間同士が平地で争うための長さだ。
これが理解できれば"樹木が生い茂る環境で槍は振るうこと叶わず"であり、槍は基本として突かなければならないというのも理解できるようになる。槍を振れば周囲の樹木へ当たる。しかも槍を使っているということは獣とまさに相対している時である。森林で槍を振るということは自らの死を招く愚行なのだ。
「下段を奥義」とするのも獣と相対した際の死活問題から来ていると今では推測している。半身で構える下段は体当たりしてくる四足の獣の動きへ穂先の反応が遅れたとしても槍の柄が使用者と獣の間に残り、槍の柄で防御へ転じられる。これが上段や中段の構えであれば穂先の反応が遅れた瞬間に獣の一撃を直接身体へ貰うことになるだろう。下段から何が出来るか?攻撃と防御が同時に出来るのである。
孫は何度か祖父が槍のみでヒグマを打倒するところを見たことがある。法令上、猟銃が使用できる範囲は限られ、猟銃使用許可のある場所であっても射撃方向に民家があると使用できなかったりするためだ。
「遠くへ行ってろ」と言われ祖父から離れるが、ギリギリ祖父を視認できる距離で見ていた。猟犬五郎は祖父の指示を受けるまでもなく孫が祖父から離れると護衛のように孫へついて行く。
奥義の下段を忠実に構える祖父の気迫は幼い孫が遠目で見ても物凄く伝わってくる。じりじりとヒグマとの距離を詰め、痺れを切らしたヒグマが祖父へ体当たりを敢行する。祖父の動きは音がしない破裂音である。パンッと鳴ったと錯覚するような鋭く素早い動きでヒグマの体当たりを回避したかと思えば、ヒグマは自ら後ずさりする。祖父の槍の穂先がヒグマの血で赤く染まっていた。
ヒグマの口から鼻先が切り裂かれているようだ。瞬く間に祖父はヒグマから後の先で呼吸を奪った。命のやり取りという極限のストレスの中で呼吸が難しくなるというのは息をする者にとってはかなりの重荷を背負ったことになる。時間が経てば経つほどにその巨体が自らに重くのしかかり、逃げることすら困難にさせる。
体当たりは分が悪いと悟ったヒグマは祖父へ怒涛の勢いで距離を詰め、右前腕での引っ掻きを狙うが右前腕の起こりに合わせ祖父は瞬時に熊の手を下段から貫いた。ヒグマはあまりの激痛からか唸りとも呻きとも取れる声をあげて四足を地へ付く姿勢に戻ろうとするが右前腕は軽く浮かせたままである。
三足となったヒグマは再び必死の体当たりを敢行するが祖父は素早く真横へ体当たりを回避し、三足となり横方向の動きが制限されたヒグマは祖父の動きを視線でしか追えず首へ必死の槍を受けた。祖父は力なく地へ沈むヒグマの様子を見ると距離を取り2分3分と下段の構えを解かずヒグマの様子を伺い続けた。
短いようで長い時間が経つと下段の構えを解き、祖父が手を振って終わりだと合図したことを察した孫は祖父へ駆ける。仕留めたヒグマは体調2mを優に超える大物だ。「すごいすごい!」と興奮する孫をよそに祖父はニヤリと意地悪く笑って孫へ「血抜きすんぞ」と告げた。
ヒグマはメートル100キロ、2m超のヒグマは200kg以上である。これを老人と幼き孫が気合いで持ち上げ木へ吊るして血抜きするのである。祖父との狩猟で最も楽しくないのが大物の血抜きという重労働であり「忘れてた!」と声を出さずともわかる表情を孫は浮かべた。
-----------------
父が「来月から毎日山を見て回るぞ」と言うので幼き日の思い出を書きました。
私が1人でヒグマを獲ったのは二十歳を越えた頃、何かあったときのために祖父が後ろで見守りながらだったという、祖父とは違って槍下手なのですが私程度であっても昨今の情勢で何か社会のお役に立てれば幸いかなと。
では、行ってきます。
自民党と維新の会の連立が決まり高市総理が誕生してから毎日が不安で仕方ない。
総裁選で高市氏が出馬してから湧き上がった嫌な流れが公明連立解除、維新との連立とどんどん広がっていて心が苦しい。
理由は自民党や維新の会の党風や高市総理の過去の発言から社会福祉の削減を恐れているからだ。
高市総理は過去に全受給者のたった2%の生活保護不正受給者をわざわざクローズアップしわざわざバッシングした事がある上過去ブログで福祉から就労へと書いていた。
私は生まれつきの障害があり障害者年金を受給しB型作業所に通所しながら生活をしている。
障害者年金とB型作業所の月1万円ほどの工賃しか収入がない私にとって障害者年金や将来必要になる可能性がある生活保護を守ることは死活問題だ。
私の通うB型作業所は20人ほどの通所者がいるが毎年1人か2人就職者がいれば良い方で就職率は5~10%ほどだ。
中にはB型作業所でも出来ない作業が多く作業の代わりに掃除や雑用を代わりにやっている利用者もいる。
高市総理は福祉を受けている人の何割が就労の可能性があるのか理解しているのだろうか?
福祉から就労へを求めるのなら福祉を受けている人が就労できる環境を適切な内容の仕事と最低以上の賃金を持って作るべきである。
働きたくても働けないだけで本当は働きたいのだから是非機会を与えて欲しい。
維新の会は橋本元代表の数々の悪質な自己責任論と生活保護現物支給論で不安しかない。
橋本元代表は父のリストラの責任を泣きながら問う女子学生に暴言に近い自己責任論で返した事が有名だがそんな人物の立ち上げた政党が社会的困窮者やマイノリティを切り捨てようとしないとは到底思えない。
そもそも生活保護を現物支給にするとして一時的に利用する人はともかく生まれつきの病で働きたくても働けない人はどうするのだろうか?
一生何の楽しみもなく暮らせと言いたいのだろうか?
ハッキリ言って弱者達は障害者年金や生活保護の大改悪をされてもおかしくないと思って毎日怯えている。
保守の方々は散々リベラルは頭がお花畑だの言っているが政府の政策一つで生活や命を奪われかねない弱者が政府から身を守るためにリベラルになっている事実は無視するのだろうか?
もし怯える社会的弱者に罵声を浴びせるなら本当に人として終わってる。
もし高市総理が社会福祉の大拡大に取り組むのなら支持したいと思っている。
重要な前提条件が抜けた話になってると思う。
うちの娘が袖を通すものは、水商売の女が使ったような物じゃないよな、と真顔で確認されることもありますが、当然回答はしません。その娘さんがどうみても夜職の方であってもおくびにも出しません。
って、ここがそのウエディングフォト+レンタルドレス業者ができてなかった、これが一番大きいのよ。
自社アカウントで、元AV女優のタレントのボートレースのイベント画像をシェアして「うちのドレス着てくれました!」って大喜びで紹介しちゃったんだわ。
元増田の例で言えば「水商売の女が使ったものじゃないよな」とか確認される前から「なんと某店ナンバーワンの◯◯ちゃんが着てくれたんですよ!すごいでしょ!」なんて言っちゃってたんだわ。
元増田だって、顧客の古い了見の狭さは内心批判しつつも、業界人としてそれは表には出さないんでしょ?
ブライダル業界ってそういう商売だし、そういう建前を守るのが仕事だもの。
これがなかったら、いちいち「これ私のドレスと一緒だよね!許せない!」とか騒ぐ人はそんなにいないよ。
おそらく、twitterの人は自分の思い出づくりだけが目的ではなく、SNSで「xxxさんのドレスでこんな素敵な後撮り写真撮ったよ!」ってのを後々公開すること含めて計画してたはず
その前に当のxxxさんが自社アカウントで「このドレス元AV女優が着たものですよ!」って言っちゃったら「元AV女優が着たドレス」ってログが残るわけよ。
これ、単純に不快ってだけではなく、自分は我慢してて黙ってても、もしかしたらアンチがイベント画像貼り付けて「公開処刑」するかもしれない。
けっこう致命的な話だと思うよ。
もともとの話では「ウエディングドレスを元AV女優が着るのがダメ」「元AV女優が着たドレスを着たくない」といってるわけじゃない。
「元AV女優が博打場のイベントで着た、ということを、ウエディングドレス屋(それもこだわりの撮影とプラスした一点ものドレスのレンタルを売りにしてる業者)がアピールしてしまって、
この後それ着て素敵なウエディングフォトをバズらせる予定だった自分としては困るんだけど!」って話なんだわ
(ついでにいうとこの手の整形女アカウントはだいたい結構な額の案件が動いているからイメージ毀損は死活問題でもある。お気持ちに見せかけてわりとビジネスだったりする)
でも、なんかみんながAV女優大好きだから攻撃派も擁護派も話がすり替わっちゃってる。
この前の選挙で参政党に入れた。ちなみに自分は日本生まれハーフで、父はカナダ人で日本に帰化してかなり経つ。
親が外国人で自分もハーフだから、参政党に入れたことにはもちろん罪悪感があった。選挙の話なんて滅多にしなかったけど、週末、妻に子供を任せ、実家の手伝いをするために帰った時に、正直なことを話した。
予想通り、もちろん喧嘩になった。「あいつらはトランプと同じ狂人だ。お前をそんなふうに育てた覚えはない」とまで言われた。父の口からは英語がちょくちょく出てた。
ちなみに、自分は妻と共働きで世帯年収は2000万弱ある。自分1500、妻500くらい。日本学研究するほど日本に惚れて移民してきた博識な父と、大学職員の母の間で育ったせいか、自分は昔から勉強もでき、英語も苦労しなかったからかなり良いところに就職できた。今は20代後半で、数年前子供も生まれ三人ぐらし。(この年齢でこの年収もらえる界隈は限られているからこれ以上の情報は控える)
参政党に、こんなパワーカップルが投票するなんておかしいと思われるかもしれない。けど、まずは生活面から以下の理由がある。
至急困っていることは、世帯年収がこんなにあっても都内で子育てできるような物件が買えないこと。これはマジで早急にどうにかしてほしい。もちろん年収と信用はあるからローンは組める。けど、買付証明書を提出したところで、中古の大家は「即時現金で購入していくバイヤー」と優先して商談するから、自分みたいな25年ローン野郎に売ってくれる物件がない。商談が進んでいても契約前に別のバイヤーに割り込まれる。これを何度もやられた。頭に来るのは、多くのバイヤーは海外(主に中国)の富裕層で、彼らは投資目的だから、物件はピカピカのまま放置される。要するに実需を生む日本人が住居にありつけず困れば困るほど海外のバイヤーが儲かっていく構造になっている。
知っての通り新築は倍率が高すぎるし、そこでも海外のバイヤーが転売目的で購入していく。いまの日本(というか東京と、最近は近郊までも)は、世帯年収2000万あって購買力があっても、マンションを買えない。というか売ってくれない。参政党は、外国人による不動産投資規制を「諸外国の水準」まで厳しくしてくれると言っている。日本は外国人に優しすぎる。子供の成長に伴う住居の問題は家族にとっても死活問題だし、東京の少子化は日本で一番進んでいるからこそ、ソウルや香港のように取り返しがつかなくなる前に、住居については「日本人ファースト」を国策にして取り組んで欲しかった。
次は体感治安の悪化。自分はハーフだし、会社は英語で仕事するから、生まれてこの方外国人と関わらず生きてきたことがない。だから分かるのは、ある時期から明らかに移民や観光客の質が低下した。ちなみに、これは父も一定程度は同意してくれている。上手く言えないが、今の訪日外国人は、日本文化を消費している。礼儀正しい日本人を利用して迷惑行為を行う外国人YouTuberが炎上するのもそうだが、文化に敬意を払うどころか、日本文化の寛容で優しい部分を糧にすることしか考えていない外国人が増えた。そして、それを非難されると「外国人の権利」みたいな文明の言葉を持ち出してきて応戦してくる。だから明文化されてない文化を持ち出しても彼らには法的には絶対に負ける。父をはじめ、まだ日本に制度的な空白があり、外国人向けの民間のサービスも乏しかった時代に、涙ぐましい努力をして文化に敬意を払いながら日本人と関係を築くしかできなかった世代の移民からは、「支払い」と「手続き」だけ済ませば日本語を話せなくても日本で好き放題できる移民や観光客たちはハッキリ言って見下しているし、一緒にされたくないとはよく聞く。個人的にあまり好きではないがフィフィとかもその類だと思われる。
ちなみに自分には学生の弟がいるのだが、弟は飲食バイト先で、日本人ではあり得ないやり方でテーブルをぐちゃぐちゃにする外人を何度も見て腹を立てていると言っていた。トイレの使い方も汚い。(これは職場でも外人の使ったトイレは汚いから自分にも想像がつく)。あと外人(特にインド系)は体臭がキツすぎる。(日本が清潔すぎるせいで、外国人の粗野な特質がモロに出てしまっているのは少し可哀想でもあるが。)予想だが、若い世代ほど接客などで直接迷惑な外人に対峙しているからこそ、参政党の過激な部分に拒否感があまりなく、参政党への投票率が高かったのではないか。
また、特に白人は、僕らハーフもそっち側だと思って「日本を蔑むサークル」に巻き込んでくる。日本人の真面目で勤勉なことを揶揄したり、家や車、声が小さいこと、お辞儀すること、わかりやすいアジア人差別などなど。これは白人と関わったことある外人顔日本人ならあるあるのはずだ。もちろんそんなヤバい人は殆どいないのは強調したいが、「お金」と「権利」のお墨付きを得ればそういう奴らでも、日本文化をメチャクチャにできる。日本文化は素晴らしいけど、グローバル基準に消費され続ければ、個性を失って死ぬと思う。正直、東京の飲食店の質は数年前に比べて味がかなり落ちている(しかも値段は上がっている)と思うし、京都のテーマパーク化もだけど、世界に誇る日本文化はある程度敷居を上げたり、日本人をターゲットにしないと守れないと思う。
トイレットペーパーの持ち去り、エアコン室外機の盗難、農家の野菜盗難、車上荒らしみたいな、日本の治安の良さを逆手に取った外国人犯罪には憤りしかない。トイレットペーパーを持ち歩く中国社会や、子供だけで外出できず、車内に荷物を置いておけないアメリカ社会のような方向へ、日本社会がグローバル化してしまうのは本当に悲しい。
確かに、参政党は「日本人ファースト」の名の下に、反ワクチン、外国人排斥、陰謀論を掲げているおかしな連中だと思う。父との喧嘩はそこが争点だったし、自分も参政党の異常性は理解できるからこそ罪悪感は今でもある。けど、参政党の思想は棚に上げて、彼らが無視できない勢力になることは、日本にとって残念ながら必要だと思う。貧乏な家がホストファミリーになれないように、日本社会は、日本人ファーストの充電期間なしには、再び外国人を受け入れられるくらい余裕な社会にはなれないのではないか。
自民党が圧倒的に強く保守的な日本で、急進的な参政党が与党第一党になることはないだろうから、そういう意味では、野党参政党の台頭は国政に示唆を与えるのに丁度がいい。これを機に「持続可能な外国人との共生のあり方」を国会でちゃんと議論してほしかった。その一心のために、かなり複雑な気分で自分は参政党に投票した。
とりあえずこのようなことを父に伝えて、父は自分が陰謀論や反ワクに染まったアホではないことが理解できて安心したらしいが、参政党のような極右勢力が、日本社会に、たとえ必要悪としてでも出てくるのは良くないと譲らなかった。父の出身のバンクーバーだってRichmondは完全に中国化してるし、他にも例えば母校のUBC(ブリティッシュコロンビア大学)も今ではUniversity of Billions of Chineseって揶揄されてるくらいだから父も移民問題には憂慮しているらしいが、過激派になびくのはそれ以上に許せないそうだ。そんなこんなでモヤモヤは晴れず、なんとなく鬱屈とした週末だったから、文章にしたかった。
「年収2000万だけどマンション買えない。参政党生きろ!!!」とか、「在日二世だけど参政党投票した」みたいな、自分の特殊な属性をつかったもっとバズりそうなタイトルも考えたけど、親子関係のモヤモヤが動機だし、自分に嘘をついているみたいだからやめた。
とりあえず住むところ頑張って見つけます。
2025年、私たちはソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代を現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たちの仕事は、いずれAIに奪われるのではないか」と。
この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマの仕事の本質が、歴史上かつてないレベルで抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考を要求されることになる。
本稿では、プログラミングの歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわち「Why(なぜ作るのか)」を定義し、記述する能力の重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略の提示である。
LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。
コンピュータの黎明期、プログラミングとは、計算機が理解できる命令(How)を、一行一行、丹念に記述する作業そのものであった。アセンブリ言語や初期のFORTRAN、COBOLといった言語は、ハードウェアの制約を強く受けており、プログラマはメモリ管理やプロセッサの動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。
この時代のテストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定の入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジックと実装の詳細が密結合し、コードは特定の処理手順を記述した、硬直的な塊となっていた。
風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間の認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミング(XP)の中で、テスト駆動開発(TDD)という考え方が登場する。
TDDの本質は、単なるテスト手法の改善ではない。それは、プログラミングのパラダイムを根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマの意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。
テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーがログインボタンをクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。
この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式でソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャーやビジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである。
TDD/BDDによってプログラマの意識が「What」に向かい始めると、コードそのものもまた、宣言的なスタイルへと進化していく。この変化を劇的に加速させたのが、モダンなフレームワークの存在だ。
Reactを例に考えてみよう。Reactが登場する前、フロントエンド開発はjQueryに代表されるように、DOMを直接操作する命令的なコード(How)の連続だった。「このボタンがクリックされたら、この要素のテキストを書き換え、あちらの要素を非表示にする」といった具合だ。
しかし、Reactは「UIとは、ある状態(state)に対する純粋な写像である」という宣言的なモデルを提示した。プログラマがやるべきことは、UIの状態(`state`)と、その状態がどのように見えるか(JSXによるコンポーネント)を宣言することだけだ。状態が変更された際に、DOMをどのように効率的に更新するかという面倒な「How」の部分は、Reactの仮想DOMと差分検出アルゴリズムがすべて隠蔽してくれる。プログラマは「What(UIのあるべき姿)」を記述するだけでよくなったのだ。
この「WhatからHowへの変換」は、様々な領域で見られる。
これらのフレームワークやツールは、いわば「特定の制約下における、WhatからHowへの高性能な変換器」として機能してきた。プログラマは、フレームワークが課す「お作法」や「制約」を受け入れることで、退屈で間違いの多い「How」の記述から解放され、より本質的な「What」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。
現状は、この歴史的変遷の延長線上にある。プログラマの仕事は、手続きを記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。
フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定の領域に特化した変換器」であったのに対し、LLMは「あらゆる領域に対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。
前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たちに特定の「制約」を課してきた。Reactを使うならコンポーネントベースで思考し、状態管理の作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。
しかし、LLMはこの前提を覆す。LLMは、特定のフレームワークや言語の知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由な形式で「What」を伝えることができる。
例えば、こうだ。
ユーザー認証機能付きのシンプルなブログアプリを作ってほしい。フロントエンドはReactとTypeScript、UIコンポーネントはMUIを使う。バックエンドはNode.jsとExpressで、データベースはPostgreSQL。ユーザーはGoogleアカウントでログインでき、新しい記事を作成、編集、削除できる。記事にはマークダウン記法が使えて、画像もアップロードできるようにしてほしい。
この要求(What)は、特定のフレームワークの流儀に則ったものではない。複数の技術スタックを横断し、機能要求を自然言語で並べただけのものである。しかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベルの要求から、ディレクトリ構造、設定ファイル、APIエンドポイント、フロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。
これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定のフレームワークが存在しなかったニッチな領域や、複数の技術を組み合わせる複雑なシステム構築においても、AIによる宣言的プログラミングの恩恵を受けられる時代が始まろうとしているのだ。
LLMという汎用変換器の登場により、プログラマの生産性は、「いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである。
質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である。
これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーやデザイナーとの対話を通じて、日常的に行ってきた思考プロセスそのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力(プロンプト)という形で、明示的に言語化されることを要求するのだ。
やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDがテストコードという形式で「What」を記述したように、私たちは自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コードが蒸発していく未来である。
「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。
答えは、明確にNoである。
ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ず「Why(なぜそう作るのか)」という、背景、文脈、そしてトレードオフの考慮が必要不可欠となる。
簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。
これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストとシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。
LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報が必要だからだ。
これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネスの目標、組織の文化、ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。
ここで重要なのは、これまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。
私たちが技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single Page Application)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニアの採用市場が活発だから(Why)」といった、様々な「 Permalink | 記事への反応(0) | 17:09
2025年、私たちはソフトウェア開発の歴史的な転換点に立っている。大規模言語モデル(LLM)の進化は、GitHub Copilotのようなコード補完ツールに始まり、今や「何を作りたいか」を自然言語で伝えるだけで、アプリケーションの雛形が数分で生成される時代を現実のものとしつつある。この光景を目の当たりにした多くのプログラマが、漠然とした、しかし確かな不安を抱いているだろう。「私たちの仕事は、いずれAIに奪われるのではないか」と。
この問いに対する私の答えは、半分はYesであり、もう半分はNoだ。より正確に言えば、プログラマの仕事の本質が、歴史上かつてないレベルで抽象化され、その役割が再定義されるのだ。私たちは、コードを「書く」作業から解放される一方で、これまで以上に高度な思考を要求されることになる。
本稿では、プログラミングの歴史を「How(いかに作るか)」から「What(何を作るか)」への移行として捉え直し、LLMがこの流れをいかに加速させるかを論じる。そして、その先にある、AIには決して代替できない、人間ならではの競争優位性、すなわち「Why(なぜ作るのか)」を定義し、記述する能力の重要性について深く考察していく。これは、単なる未来予測ではない。今を生きるすべてのソフトウェアエンジニアにとっての、生存戦略の提示である。
LLMの登場を特異点として捉える前に、我々が立っている場所を正確に知る必要がある。ソフトウェア開発の歴史は、常に「抽象化」との戦いであった。そしてその歴史は、プログラマの関心が「How」から「What」へと徐々に移り変わっていくプロセスとして描くことができる。
コンピュータの黎明期、プログラミングとは、計算機が理解できる命令(How)を、一行一行、丹念に記述する作業そのものであった。アセンブリ言語や初期のFORTRAN、COBOLといった言語は、ハードウェアの制約を強く受けており、プログラマはメモリ管理やプロセッサの動作といった、極めて物理層に近いレベルでの「How」を意識する必要があった。
この時代のテストもまた、「How」に強く束縛されていた。書かれた手続きが、意図した通りに順番に実行されるか、特定の入力に対して期待された計算結果を返すか。テストの関心事は、あくまで「手続きの正しさ」の検証にあった。ビジネスロジックと実装の詳細が密結合し、コードは特定の処理手順を記述した、硬直的な塊となっていた。
風向きが変わり始めたのは、ソフトウェアの規模が拡大し、その複雑性が人間の認知能力を超え始めた頃だ。1990年代後半から2000年代にかけて提唱されたエクストリーム・プログラミング(XP)の中で、テスト駆動開発(TDD)という考え方が登場する。
TDDの本質は、単なるテスト手法の改善ではない。それは、プログラミングのパラダイムを根底から覆す思想だった。TDDは、「まずテストを書く」ことを強制することで、プログラマの意識を「これから実装するコード(How)」から「そのコードが満たすべき振る舞い(What)」へと強制的に転換させたのだ。
テストはもはや、書かれたコードの後追いで正しさを検証する作業ではない。それは、これから作られるべきソフトウェアの「仕様書」であり、「振る舞いの宣言」となった。例えば、「ユーザーがログインボタンをクリックしたら、ダッシュボード画面に遷移する」というテストコードは、具体的な実装方法(`onClick`イベントハンドラの中で`window.location.href`を書き換える、など)には一切言及しない。それはただ、達成されるべき「What」を記述しているだけだ。
この思想は、ビヘイビア駆動開発(BDD)へと発展し、`Given-When-Then`といった、より自然言語に近い形式でソフトウェアの振る舞いを記述するスタイルを生み出した。プログラマだけでなく、プロダクトマネージャーやビジネスアナリストといった非技術者をも巻き込み、「What」を共通言語として定義する試みが本格化したのである。
TDD/BDDによってプログラマの意識が「What」に向かい始めると、コードそのものもまた、宣言的なスタイルへと進化していく。この変化を劇的に加速させたのが、モダンなフレームワークの存在だ。
Reactを例に考えてみよう。Reactが登場する前、フロントエンド開発はjQueryに代表されるように、DOMを直接操作する命令的なコード(How)の連続だった。「このボタンがクリックされたら、この要素のテキストを書き換え、あちらの要素を非表示にする」といった具合だ。
しかし、Reactは「UIとは、ある状態(state)に対する純粋な写像である」という宣言的なモデルを提示した。プログラマがやるべきことは、UIの状態(`state`)と、その状態がどのように見えるか(JSXによるコンポーネント)を宣言することだけだ。状態が変更された際に、DOMをどのように効率的に更新するかという面倒な「How」の部分は、Reactの仮想DOMと差分検出アルゴリズムがすべて隠蔽してくれる。プログラマは「What(UIのあるべき姿)」を記述するだけでよくなったのだ。
この「WhatからHowへの変換」は、様々な領域で見られる。
これらのフレームワークやツールは、いわば「特定の制約下における、WhatからHowへの高性能な変換器」として機能してきた。プログラマは、フレームワークが課す「お作法」や「制約」を受け入れることで、退屈で間違いの多い「How」の記述から解放され、より本質的な「What」の定義に集中できるようになった。我々が「生産性が高い」と感じる開発体験は、この優れた変換器の恩恵に他ならない。
現状は、この歴史的変遷の延長線上にある。プログラマの仕事は、手続きを記述する職人から、振る舞いを定義し、それを実現するための最適な「変換器(フレームワーク)」を選択・設定するアーキテクトへと、その重心を移してきたのだ。
フレームワークがもたらした「WhatからHowへ」の潮流は、LLMの登場によって、未曾有のスケールで加速されようとしている。フレームワークが「特定の領域に特化した変換器」であったのに対し、LLMは「あらゆる領域に対応可能な、究極の汎用変換器」としてのポテンシャルを秘めているからだ。
前章で述べたように、ReactやTerraformといったフレームワークは、その恩恵と引き換えに、私たちに特定の「制約」を課してきた。Reactを使うならコンポーネントベースで思考し、状態管理の作法に従う必要がある。Terraformを使うなら、そのエコシステムとHCLの流儀を受け入れなければならない。これらの制約は、WhatからHowへの変換を自動化するための「レール」であり、私たちはそのレールの上を走ることで効率を得てきた。
しかし、LLMはこの前提を覆す。LLMは、特定のフレームワークや言語の知識を事前に学習しているが、その利用において絶対的な制約を課すわけではない。私たちは、より自由な形式で「What」を伝えることができる。
例えば、こうだ。
ユーザー認証機能付きのシンプルなブログアプリを作ってほしい。フロントエンドはReactとTypeScript、UIコンポーネントはMUIを使う。バックエンドはNode.jsとExpressで、データベースはPostgreSQL。ユーザーはGoogleアカウントでログインでき、新しい記事を作成、編集、削除できる。記事にはマークダウン記法が使えて、画像もアップロードできるようにしてほしい。
この要求(What)は、特定のフレームワークの流儀に則ったものではない。複数の技術スタックを横断し、機能要求を自然言語で並べただけのものである。しかし、現在のLLM、特にGPT-4oやそれに類するモデルは、このレベルの要求から、ディレクトリ構造、設定ファイル、APIエンドポイント、フロントエンドコンポーネントに至るまで、驚くほど具体的なコード(How)を生成することができる。
これは、フレームワークが担ってきた「WhatからHowへの変換」が、特定のレールから解き放たれ、より広範で柔軟な領域へと拡張されたことを意味する。これまで自動化が難しかった、あるいは特定のフレームワークが存在しなかったニッチな領域や、複数の技術を組み合わせる複雑なシステム構築においても、AIによる宣言的プログラミングの恩恵を受けられる時代が始まろうとしているのだ。
LLMという汎用変換器の登場により、プログラマの生産性は、「いかに質の高いWhatをLLMに伝えられるか」に直結するようになる。これは、俗に「プロンプトエンジニアリング」と呼ばれるスキルだが、その本質は、ソフトウェア開発における「要求定義」そのものである。
質の高い「What」とは何か。それは、曖昧性がなく、網羅的で、矛盾のない要求である。
これらは、優秀なソフトウェアエンジニアが、プロダクトマネージャーやデザイナーとの対話を通じて、日常的に行ってきた思考プロセスそのものではないだろうか。LLMの登場は、この思考プロセスを、より明確に、よりテキストベースで「記述」する能力を求める。私たちの頭の中にあった暗黙的な仕様が、LLMへの入力(プロンプト)という形で、明示的に言語化されることを要求するのだ。
やがて、ほとんどのプログラミング作業は、この「Whatの記述」に収束していくだろう。TDDがテストコードという形式で「What」を記述したように、私たちは自然言語や、より構造化された要求記述言語を用いて、AIに対して「What」を宣言することになる。コード(How)は、その宣言から自動生成される中間生成物に過ぎなくなる。まさに、コードが蒸発していく未来である。
「What」を伝えれば「How」が手に入る。この魔法のような世界の到来を前に、私たちは一つの重大な問いに直面する。それは、「そのWhatからHowへの変換は、本当に一意に決まるのか?」という問いだ。
答えは、明確にNoである。
ある「What(要求)」を実現するための「How(実装)」は、無数に存在する。そして、どの「How」を選択すべきかを決定するためには、単純な機能要求(What)だけでは情報が全く足りない。そこには、必ず「Why(なぜそう作るのか)」という、背景、文脈、そしてトレードオフの考慮が必要不可欠となる。
簡単な例を考えてみよう。「1億件のユーザーデータを格納し、ユーザーIDで高速に検索できるシステム」という「What」をLLMに与えたとする。LLMは、どのような「How」を提案するだろうか。
これらの選択肢は、どれも「What」を満たしている。しかし、その特性は全く異なる。案Aは多くのエンジニアにとって馴染み深く開発が容易だが、10億、100億件へのスケールは難しいかもしれない。案Bはスケール性に優れるが、厳密なトランザクション管理は苦手だ。案Cは高速だが、運用コストとシステムの複雑性が増す。案Dは安価だが、検索速度は他に劣る。
LLMは、これらの選択肢をリストアップすることはできるだろう。しかし、このプロジェクトにとって最適な選択肢はどれかを、自信を持って決定することはできない。なぜなら、その決定には、LLMが与えられていない「Why」の情報が必要だからだ。
これらの「Why」こそが、無数に存在する「How」の中から、ただ一つの「正解」を選び出すための羅針盤なのである。そしてこの「Why」は、ビジネスの目標、組織の文化、ユーザーの期待、技術的な制約といった、極めて人間的で、文脈依存的な情報の中にしか存在しない。
ここで重要なのは、これまでもエンジニアは、この「Why」に基づく意思決定を、意識的あるいは無意識的に行ってきたという事実だ。
私たちが技術選定を行うとき、単に「流行っているから」という理由だけでReactを選ぶわけではない。「SPA(Single Page Application)にすることでユーザー体験を向上させたい(Why)」、「コンポーネント指向の開発によって長期的な保守性を確保したい(Why)」、「Reactエンジニアの採用市場が活発だから(Why)」といった、様々な「 Permalink | 記事への反応(0) | 17:09
東京での子育て事情な。俺も地方出身の転職勢だから車なし生活なんて最初意味不明だったわ。
都心は車持たない子持ち家庭がゴロゴロいる。維持費も駐車場代も高すぎてもう論外。使う頻度考えたら無理ってやつだろ。
まず、子どもが急に熱出した時、これ最悪だよな。
うちの場合、基本タクシー一択。タクシーアプリ入れとけ。焦らず呼べる。
もちろん金はかかるけど、具合悪いガキ連れて満員電車とかマジで無理だからな。そこはもう割り切れ。
あとは地域にもよるけど、病児保育とか緊急一時預かりもある。
利用できっかは運次第だけど、登録だけしとけ。少しはマシになる。
一番多いのはネットスーパーの宅配。これは絶対使え。米とか飲み物とか重いもんはこれで済ませるのが常識。
当然手数料かかるけど、幼児連れて買い出し行く労力考えたら激安だろ。うちもメインこれだし。
あと、東京はスーパーがクソほど多い。歩いて数分のとこに何軒もあるのが普通。だから毎日ちょこちょこ買い足す奴もいる。
子ども背負って両手に袋とか、マジで地獄だろ?だからみんな最低限の量にしてる。駅ビルとかにもスーパーあるから、会社帰りに寄る奴も多い。
基本的に東京での子育ては金で便利さ買うってのが現実。車ねえ代わりに交通網は半端ないし、歩けば大体済む。
病院も山ほどあるし、塾とか選び放題。でも家賃はアホみてえに高いし、家は狭い。子育て世代のコミュニティは住む場所によるなあ。
駅からの距離だけじゃなく、「子育て支援が充実してる区か」「近くに公園や病院はあんのか」「保育園入りやすいか」とか、公式資料はもちろん住んでる奴のブログとかXで調べまくれ。
単身赴任も選択肢にあるなら、最初は増田だけ行って、東京に慣れてから家族呼び寄せるパターンもある。
その間に金貯めるなり、住む場所じっくり探すなりできるしな。
いじめられるわけ無いだろ
せいぜいいじられる程度だ
ただ女子のiPhoneの渇望はかなり強いようで、至るところで親と喧嘩になっている(個人的に聞いた噂だけどね)
大抵は親のお下がりを使ってるよね、タイミング的にはiPhone8〜iPhone12が多いのでは
今学生に一番流行ってるBeRealの日本のシェアは91%がiPhoneだ
https://sensortower.com/ja/blog/bereal-mau-increased-in-japan
この数字は恐ろしいよね
BeRealをやるような陽キャ層(大体学生のうちの半分弱)はiPhoneってこと
女子学生にとってiPhoneがどれだけ死活問題(だと本人が思ってる)かがわかる
くだらねーと言えばくだらねーんだけど
____
大学生100人アンケート2023 iPhone85%(男女含め)
https://pantograph.co.jp/blog/others/smartphone-home2023.html
中高生、iPhone74% 2018年(男子中学生50%、女子高校生84%)
https://mmdlabo.jp/investigation/detail_1739.html
https://mmdlabo.jp/investigation/detail_2374.html
https://news.yahoo.co.jp/expert/articles/59364b6eb0e584a934f8800903026547f40dbe87
親に言う時に誇張している可能性あり
なお当の親(40代くらい)はAndroid率が女性53%男性61%だから、Androidを使っている可能性が高くこれは喧嘩になるね
機能的にも見た目的にも近年ますます差が無くなってきているし、どっちかしかできないことは減ってるのに、この状況はすごいよね
ブランディングってやつなのか
整骨院の肩パワー首パワー王にそれぞれの力を授けてもらって、
でも夕方ぐらいになると重たーくなる鈍痛がずっしり肩にのしかかる感じの、
今そんな感じだけれど、
あれは辛かったので
いかに頸椎らへんが重要な何かの要になっている要潤さんじゃない方の要だと思うのね。
たぶん思い当たる節は
NIKKEタブレットを寝転びながらプレイしていたって説が濃厚説浮上なのよね。
きっとそうよ。
なので、
思い当たる節といえばそれぐらいしかないのできっとそうかもしれないわ。
ドラクエIIIでやるってーとなると
首より腰よね。
いや、
ちょっとこれ再発首パワーと肩パワー繰り返していたら
暮らしがままならないのでこれからは要注意しないといけないわ。
あとさ、
頸椎あたりの周辺を伸ばすのって自分でケアするのはなんか繊細なところだから
自分でできないでしょ?
きっと危ないわ。
なので、
メンテナンスで3か月か半年かの間に頸椎伸ばしの首パワーを授かりに定期的に行った方がいいのかしら?って思うのよね。
一応やんじゃない。
正しいやり方であってんのかな?って正解がよく分からないまま自己流でやっちゃってるのも
でも首伸ばし以外はそんなに緊張感の走るようなストレッチじゃないので、
適宜やった方が自己流でも良いのかしらって思うわ。
そんなことならストレッチマンのストレッチパワーが溜まるテレビをちゃんと真面目に見ておけばよかったわ。
にしても、
正しい姿勢を保ちつつ
横着な姿勢でタブレットでなんやらいろいろプレイしない悪い姿勢にならないようにしなくちゃって
今回得た教訓ね。
でも今回の前に何年か前に同じ整骨院で首パワーを首伸ばしマシーンで授かったときは
原因はなんだったのかしら?
その時はそんなにゲーム!って燃えていたわけではないのでタブレットだってやってなかったし
となるってーと、
そうとしか思えないわ。
そんでね、
その時も数回の首伸ばしマシーンで首パワーを先生から授かって数回で回復したのよね。
今回またその同じ整骨院にいったとき先生前のカルテを私のカルテを見てくれて、
首パワー肩パワー王は言うのよね。
私の異常ステータス点灯の首パワーと肩パワーは通常通りに戻るわ。
ドラクエIIIでいうところの
皆の肩や首の痺れを回復させる屋さんになれば繁盛するかもしれないわね。
あ!今思いついたんだけど、
NIKKEタブレットでばかりやっていたらまたこれ再発したら嫌なので、
それも考えた方がいいのかしらね?
でさ、
気になるのが60フレーム出るのか?ってこと。
フレームレートが違うと与えるダメージ量がぜんぜん違くなってくるので、
でもこれはこれで、
起動して立ち上がりの待つ感じ、
タブレットだと即NIKKEって出来るからせっかちな私は起動時間に耐えられる頭問題も勃発よね。
でも
一度どんな感じかパソコンでNIKKEるのもいいかもしれないわ。
私の首パワーと肩パワーをこれ以上減らさないようにしないとね。
自覚しないとよ!
うふふ。
納豆巻き味濃くて美味しいわよね。
私の朝のパワーを得ることができるのよ。
あれ実は納豆自体よりタレの方が美味しいと感じていたりして?違うかー。
なんてね。
あのタレも結構効いてるかもしれない。
なににしても納豆パワーは美味しいわよね。
朝の元気の源よ。
オクラが出始めてきそうまだ早いわよね。
まだ無かったので、
朝はまだひんやりしているときない?
でも今日とかはお昼とかは暑くなりそうなので、
寒暖の差もーって言うのも
いつまで言っていればいいの?って思っちゃうわ。
暑くなってきそうなので水分補給もまたしっかりとね。
すいすいすいようび~
今日も頑張りましょう!
以前ボランティアに携わっていた時にハッタショモンスターがいた。まあボランティアの現場に変な人がいるのはふつうのことだが。「O田が一枚噛むと全てが停まる」と戦々恐々だった。あらゆる案件について進行中の作業プランを白紙に戻し、自分がその場で思いついたゴミみたいな案とゼロベースで対等に比較検討しろと大騒ぎするのだ。
どう対処していたかと言うとシンプルに軽く無視したり、あんまり大声出す場合は軽く威圧したりしていた。作業を止めるわけにはいかない。O田によって生じる完全に無駄な時間をいかに短くするか。軽いイジメだと言われたらまあそうだろう。当人は異常にプライドが高く指導的立場のつもりだったのでイジメられてると訴えることはなかった。
職場やクラスのいじめなんかも、やってる側としては「だって他にどうしようもないじゃないか」と、必要悪のつもりというケースは少なくないだろう。なんで話の通じないやつのわけのわからないハッタショワールドのルールに一方的に歩み寄らねばならないのかと。「抑制的な最小限の暴力」以外の解がないではないかと。
零細企業やベンチャーの雇用側の視点に立つなら、うっかりたちの悪いモンスターを入れてしまって居座られたら文字通り死活問題だ。
いろんな巡り合せで到底イジメたりできない地位におかしい奴が就くことが世の中には往々にしてある。
その存在は社会の内圧を高め歪みをもたらし、多くの人びとがそれぞれの立場・状況において「これはもうコントロールされた暴力以外の解がない」と考えるに至るだろう。
しかし当然ながら最小限の暴力によってガン細胞だけを切除して万事解決となることはない。暴力は必ずハレーションを起こして更なる暴力を呼ぶことになる。
いじめと戦争の原因は相似形なんだろうな。100人が居てどうしても50人分のパンしかないからとかそういう理由ではない。
蛇足だがより卑近な例を。自治厨という言葉が昔あった。2ちゃんねるや増田みたいなところはモンスターが集まる。異常者は流入するがめったに退出はしないのでダムが砂に埋まるように異常者ばかりになっていく。でもキチガイに注意なんかしてたら余計荒れるだけだ。どれだけキチガイが増えようとスレッドのシミか模様だと皆が思っていれば問題は起きない。でも結局多くの人がキチガイに注意したり相手してしまう。混沌のままに安住できず秩序を志向してしまう。話の通じない有害な人間を、消す方法があるもんなら消したいと考える。