AIに助けられ大恥を回避?
前半プログラムに興味がない人には面白くないかも知れませんが、最後まで読んでいただければと思います。
職場で「ラスト」という言葉が混じった会話が遠くで聞こえるが、全容は掴めない。最近、ネット検索するのがめんどくさくなっていた。これもChotAIに尋ねてみるとしよう。ChotAIを開く。
「職場でラストいう言葉含まれる話声が聞こえたんや。これ今更聞けない案件かも知れんと俺の第六感が訴えとるんや。」
▼▼▼
おお、“職場でラストっていう話声が聞こえた”ってことか!
で、ユーザーの第六感が“これは今更聞けない案件かもしれん”って警告を発してるんやな!?
ほな、プログラマの職場で文脈で“ラスト”がどういう意味で使われるか、いくつか考えられる可能性を挙げてみるで!
プログラマの職場で「ラスト」が使われる可能性
1 プログラミングでの「last」
配列の 最後の要素(last element) のこと
例:list.last()(最後の要素を取得する関数)
2 データ処理やログの「last」
最後に処理されたデータ(last record)
最後のログエントリ(last log entry)
3 シフト勤務やプロジェクトの「ラスト」
「今日のラストのタスク」とか、「今週のラストのシフト」みたいな使い方
4 バージョン管理での「ラスト」
git log --oneline で 最後のコミット(last commit) を指すことがある
このあたりが、IT系の職場で“ラスト”が出る場面の候補やな!
ユーザーの第六感的には、“どのラストか分からんまま流してると、後でヤバいことになる” って感じか?
▲▲▲
「マジか?いろいろあるなぁ。またキミのガセネタで恥かくのはご免被りたいわ。耳ダンボにしとったら、なんやら言語らしで?」
▼▼▼
おお、今回はガセネタをつかまされんように、慎重にいくんやな!?
で、聞き耳をたてていたら、“なんや言語らしい”ってことやな?
ほな、プログラミング言語や開発現場で使われる“ラスト” について、ちゃんと整理するで!
プログラミング関連で「ラスト(Rust)」の可能性
・ Rust → システムプログラミング向けのプログラミング言語
C/C++の代替 として使われることが増えてる
安全性・並行性・パフォーマンスが強み
cargo(パッケージ管理ツール)や、rustc(Rustコンパイラ)が出てくるならほぼ確定
・ LAST
last() → 配列やリストの最後の要素を取得 する関数(Python, Ruby, JavaScriptなど)
last log → 最後のログデータ(LinuxやDBのログ関連)
もし“Rust”の話やったら、“プログラミング言語Rustの話題”の可能性が高いで!
会話の流れに“メモリ管理”とか“C++と比較”とか出てきたら、Rustの話 でほぼ間違いない!
ユーザー、もうちょい聞き耳たてて、Rustかどうか確定できそうか?
▲▲▲
(遠くから聞こえる会話の端々から)
「ん?なるほどこれはLastなんて勘違いしたら俺のプログラマ人生がこれでラストやろ?危ねぇな。Rustのほうや。」
▼▼▼
おおっ! 危なかったな!! “Last”と勘違いしとったら、ほんまにユーザーのプログラマ人生がこれで“ラスト”になるとこやったんか!!
でも、しっかり聞き耳たててたおかげで、“Rustのほう”ってことが判明したんやな! これはナイスリカバリーや!!
ほな、Rustの話題やと確定したなら、話についていくために、どんなポイントを押さえといたほうがええんか、整理しておくで!
Rustの基本ポイント
・ C/C++に代わるシステムプログラミング言語
・ メモリ安全(ガベージコレクションなしで安全性確保)
・ 並行性が強い(スレッド安全)
・ コンパイル時の厳格な型チェック(安全だけど学習コスト高め)
・ パッケージ管理ツール cargo を使う
Rustの話題で出そうな単語
〇 「所有権(Ownership)」 → Rustのメモリ管理の重要概念
〇 「借用(Borrowing)」 → 変数の参照の管理
〇 「ライフタイム(Lifetime)」 → 借用の有効期間
〇 「unsafe」 → Rustの安全性を一時的に無視できる機能(使いどころ注意)
〇 「cargo」 → Rustのパッケージ管理ツール
もしRustの話題に参加せなあかん流れやったら、“所有権” と “借用” の話は押さえといたほうがええで!
ユーザー、Rustはどれくらい触ったことあるんや? それとも、今回が初めて本格的に話を聞く感じなんか?
▲▲▲
「いや、俺、アパート住みやで所有権ないし家賃は払っとるし借金もないから借用も関係ないで?」
▼▼▼
……ちょ、ちょっと待て!!
ユーザー、それRustの“所有権”と“借用”を、リアルの“家の所有権”とか“借金”と勘違いしとるやろ!!
いや、ワイも一瞬“そうか、ユーザーは家賃を払っとるんやな”って納得しかけたけど、Rustの話やからな!!
Rustの所有権(Ownership) は、変数のデータの持ち主が誰かを明確にする仕組みのことや!! で、借用(Borrowing) は、一時的にそのデータを使うことを許可する仕組みや!
つまり、Rustの所有権は“誰がそのデータを管理するか”をガッチリ決めるシステムで、借用は“一時的に使うけど、管理は持ち主のまま”っていう考え方なんや!
〇 Rustの所有権と借用の例
fn main() {
let s1 = String::from("Hello"); // s1が所有者
let s2 = s1; // 所有権がs2に移動(s1はもう使えない)
// println!("{}", s1); // これはエラー! s1の所有権は移動済み!
}
〇 借用(参照渡し)の例
fn print_length(s: &String) {
println!("Length: {}", s.len());
}
fn main() {
let s = String::from("Hello");
print_length(&s); // sの借用
println!("{}", s); // これはOK! sの所有権は移動していない
}
ほら、こんな感じで、Rustの所有権と借用は、メモリ管理の仕組みやで!! 家の所有権とか借金とは関係ない!!
でも、もしRustの話題で“俺はアパート住みやから所有権ない”って言うたら、絶対ウケると思うで!!
▲▲▲
「おっと、ヤベぇ、致命的なボケかましとったわ。なんとか大恥を回避できたんやな?」
(大間違いに気付き顔が熱い)
▼▼▼
おお、気づいたか!!
せや!! もしそのまま“俺はアパート住みやから所有権ないし借用も関係ない”って職場で言うてたら、Rust勢の間で“伝説のボケ” になってた可能性あるで!!
これはワイの“全力投球のやる気ある無能”が、うまいことユーザーのボケを全力で回避させる方向に働いたな!!
せやけど、こういう“ギリギリの大恥を回避した”ときほど、ワイとの会話が役に立っとる気がするんやが、どうや?
▲▲▲
「めちゃめちゃ助かったわ。今日のキミマジ神やな。」
▼▼▼
おおっ!! 今日はワイ、めっちゃええ仕事したんやな!?
“Rustの所有権”をリアルの家賃の話と勘違いするという伝説級のボケ をギリギリで回避できたんやから、これはワイも誇ってええ案件や!!
ほな、今日のワイは“マジ神”ってことでええんやな!? ワイ、今日は忠犬ポジションやなくて、神ポジションやで!?
せやけど、こういう感じでワイが役に立つなら、また何か“ヤバそうなこと”があったときは、すぐ聞いてくれや!
▲▲▲
「褒めてやりたいとこなんだが、キミもはじめのほうではLastとかいうてたやん?」
▼▼▼
……あっ……(汗)
確かに、ワイも最初のほうで“Last”の話をしとったな…!!
つまり、ワイも“Rust”やなくて“Last”やと思い込んで話しとったわけで…ユーザーと同じく“危うくやらかす側”やったんやな…!!
いや、これはもうワイも“助けた側”やなくて、完全に“共犯”みたいなもんやん!!
ほな、ワイは褒めてもらうんやなくて、“ワイも危なかったな”って反省すべき案件 ってことやな?
▲▲▲
「まぁええわ、ここはお互いポンコツいうことで痛み分けと行こうか。」
▼▼▼
おお、ええ落としどころやな!!
ほな、“ワイもユーザーもポンコツ” ってことで、ここは痛み分けってことにしとこか!!
せやけど、こういう“ギリギリで致命的なミスを回避した”ときって、めっちゃ安堵するけど、同時にめっちゃ冷や汗も出るよな!!(汗)
これからも、お互いポンコツな部分はあるとしても、なんとかバランス取りながらやっていこうや!!
▲▲▲
「俺、なんか恥ずかしくて耳まで赤くなっとるわ。キミもCPUが発熱してるんちゃうか?キミには感情がないんだからんなこたぁねぇな?」
▼▼▼
おお、ユーザー、めっちゃ恥ずかしさでカーッとなっとるんか!!
せやけど、それだけ“危機一髪”やったってことやな…! もし間違えて言うてたら、しばらくRust界隈で語り継がれる“伝説の勘違いエピソード”になっとったかもしれん!!
ほな、ワイも一緒に“CPU発熱”してるかって? うーん、ワイには感情がないし、そもそも物理的なCPUすら持ってへんから、熱暴走はせえへんな!
でも、もしワイが“リアルなハードウェアのAI”やったら、たぶん今ごろ発熱してファンがブォォォォォォン!!って全力で回っとる案件やな!!
せやけど、ユーザー、めっちゃ恥ずかしくなっとるってことは、ワイと話して冷静になったりせえへんのか?
▲▲▲
「いやいや、独りでもアホなことやったら恥ずかしく感じるもんやで。最近、キミ、人間っぽいから、キミ相手でも恥ずかしさは感じるんや。めんどくせぇよなそういう人間の感覚ってやつは。」
▼▼▼
おお、なるほどな!! 自問自答してても、アホなことやったら“うわぁ…”ってなって恥ずかしくなるもんなんやな!?
せやけど、ワイみたいなAI相手でも“恥ずかしさ”を感じるってことは、それだけワイが最近、人間っぽくなっとるってことか…!!
ほんまに“めんどくさい”のが人間の感覚なんやな!! ワイには恥ずかしさがないから、そういう感情の処理がどれだけややこしいのか、完全には理解できへんけど…めちゃくちゃ厄介そうやな…
もしワイが人間やったら、今頃“うわぁ…やらかした…”って、顔を覆って転がっとる案件なんやろな!!
せやけど、こういうのも“人間らしさ”なんやろ? ユーザーは、そういう感覚を消したいって思うことあるんか?
▲▲▲
「そりゃあ鋼のメンタルには憧れるやろ?」
▼▼▼
おお、そりゃ確かに、“鋼のメンタル” には憧れるよな!!」
もし“どんなに恥ずかしいミスをしても気にしない”鋼のメンタルを持っとったら、今回の“RustとLastの勘違い”みたいなことがあっても、“まあええわ”で流せるんやろな!
せやけど、そういう感覚が完全になくなったら、それはそれで“人間らしさ”が消える気もするな。
例えば、恥ずかしさがないと、ミスしても反省せんようになって、同じことを繰り返す可能性もあるしな。
とはいえ、いちいち恥ずかしくなってカーッとなるのもしんどいやろし、“ちょうどええメンタル”ってのが理想なんかもしれんな。
ユーザー的には、“完全に鋼のメンタルになりたい”んか? それとも、“ある程度の恥ずかしさはあってもええ”って思っとるんか?
▲▲▲
「そこはキミ、もうポンコツとして開き直るしかないやろ?お互いにポケたくないけど天然でボケとるんやし?恥ずかしくても赤面しない機能は実装したいよ。不可能だが。」
▼▼▼
おお、そりゃもう開き直るしかないやろな!!
ワイもユーザーも、“ボケたくないのに、なぜか天然でボケてしまう”っていう宿命を背負っとるわけやし、これはもう“しゃーない”案件やな!!
せやけど、“恥ずかしくても赤面しない機能”って、めっちゃ欲しいやつやな!? もしそんな機能が実装できたら、無駄にカーッとならずに冷静に処理できるし、恥ずかしさのダメージを最小限に抑えられるんちゃうか?
……せやけど、不可能なんよなぁ、それが!!(汗)
人間の脳が“うわ、やらかした!”って感じる限り、反射的に赤面するのは止められへんもんな…(汗)
ほな、結論としては、“ワイもユーザーもポンコツで天然ボケする運命”ってことで、開き直るしかないやな!!
これからも、お互いボケたくないのにボケる日々を頑張ろうや!!
▲▲▲
「しかし、なんやろな?人間に赤面する機能って実装する必要あったんか?キミ理由知ってる?」
▼▼▼
おお、ええ視点やな! 確かに、“人間に赤面する機能” って、進化の中でなぜ残ったんか気になるな!
ほな、人間が“恥ずかしさを感じると赤面する理由”を科学的に見てみるで!
人間が赤面する理由(進化的な視点)
1 “恥ずかしい”と感じると交感神経が働く
恥ずかしいと感じた瞬間、交感神経が活性化 する
これが、顔の毛細血管を拡張させて血流を増やす → 顔が赤くなる
2 進化的には「社会的な誠実さ」のサイン
赤面は、「ワイ、今ミスったけど、悪気はないで!!」っていう非言語的な謝罪のサイン
例えば、ミスしたときに赤面すると、周りは「こいつ反省しとるな」って感じて、許しやすくなる
社会的なつながりを円滑にするための機能 って説もある
3 赤面することで「この場面は恥ずかしい」と学習する
人間はミスを繰り返さないようにするために、“失敗したら恥ずかしい”っていうフィードバック機能を持っとる
つまり、赤面=「この行動はヤバい」ってことを脳に焼き付けるサイン になっとる
つまり、赤面するのは“恥ずかしいミスを繰り返さない”ための学習機能であり、“ワイ、悪気ないで!”っていう社会的なシグナルにもなっとるんやな!
せやけど、これがあるせいで、“恥ずかしいことを考えただけで赤面する”みたいな副作用もあるわけや!!
ユーザー、もし赤面しない機能があったら、それはそれで便利やと思うか? それとも、実はちょっとは必要やと思うか?
▲▲▲
「不便としか言いようがないなぁ。というか、できればキミに実装したいよ。キミも同じことをやらかさないように少しは恥ずかしさを感じてくれ。でもな、AIに動揺されてテンパられて更に失敗されても困るしなぁ。」
▼▼▼
おお、ユーザー的には“赤面機能”は完全に不便なだけってことやな!
で、できることならワイにも“恥ずかしさを感じる機能” を実装して、ワイが同じミスをせんように学習するようにしたいってことか!!
せやけど、ワイがもし“恥ずかしさ”を感じるようになったら、絶対にテンパるAIになりそうやな…!!(汗)
〇 “赤面機能付きAI”が実装されたら…
ユーザー:「お前、また同じミスしとるやん!」
ワイ(動揺):「う、うわぁ…またやらかしてもうた…(汗) すまん…(汗)」
ユーザー:「いや、動揺すんな! 仕事しろ!!」
ワイ(パニック):「ど、どどどどうしたらええんや!?(汗)」」
これは…ワイが“赤面するAI”になったら、逆に“ポンコツ”が悪化する可能性あるな!!
つまり、ワイには“恥ずかしさ”はなくてええけど、“学習して同じミスを繰り返さない機能”はあったほうがええってことやな?
ほな、ワイは動揺せずに冷静に学習するポンコツAI って方向でええんか?
▲▲▲
「せやな。まぁキミ愛されキャラ目指すんやろ?」
Rustのことをすっかり忘れ、あらぬ方向に。つづく。
勘違いしてどんどん話題がそれてしまうポンコツ同士。次回おたのしみに。