
はてなキーワード:車輪の再発明とは
俺はここ20年創作をしていなかった。
大学生時代にクッッッッッソ暇なときにちょっとだけ、本当にちょっとだけ朝目新聞にジョジョパロなんかを投稿してたりしたが、そういう半端なことをしたせいで「創作ってなんかおもんないな。別に俺以外の奴がやってるの見たほうが手っ取り早いやん」と思ってしまったんだと思う。
一通りのジャンルに飽きているが、遠征や推し活をする活力はない。
陽キャのやってるような趣味をちょっと試しても全然楽しくなくて辞めてしまう。
「安定重視でオタク活動に精を出すんや!」と選んだ仕事は、ただただ退屈なだけで、仕事のために勉強をしたりのし上がろうなんて気は全く起きない。
ニュースアプリなんかでは自分の職業に関係あるニュースが流れたらひたすら拒否って出にくいようにしている。
童貞歴◯◯年のエリート童貞である俺は、この年になっても2次元でシコっている。
2次元でシコり続けると人間の性癖は極端になっていくもので、俺のストライクゾーンは極限まで下へと到達してしまった。
いくら2次元が無限の自由の治外法権でもそこまでいくと作者の数も減ってくる。
毎週シコっていれば内山亜紀の時代から連綿と積み上げられてきたコンテンツでも消費し尽くしてしまう。
そこにAIという光が指した。
暴力的な生成スピードはあらゆるジャンルのオカズ供給量を改善した。
世間的なストライクゾーンのど真ん中である界隈においては過剰供給となり質の低下への不満が声を大にして叫ばれていたが、飢餓寸前の地域によっては十二分な質の提供に歓喜の声が上がっていたのである。
だが、その状況が、飽食の時代を前にしたことが、俺の中により強烈な欲求、より狭い性癖が満たされることの渇望を呼び起こした。
AI生成が無限の可能性を秘めていると言っても、性癖が限定的になるほどに供給量が下がることは避けられない。
生成できるパターンが無限に近くとも、それによって供給されるコンンテンツが無限だであることは意味していない。
前置きが長くなった。
俺は最近AIで「双子同士がセックスしている作品」を描いている。
もちろんストライクゾーンの下限を突き詰めた上でだ。
AIは俺の願うままに多くの絵と文を作り上げてくれたが、俺の中に疑問があった。
「勃起はするっていうけどさ、やっぱこの量は嘘すぎるよね?」
でもフィニッシュは欲しいよね、そんな思いをずっと抱えていた。
だが、そこを突き破る答えにある日到達する。
『膣内放尿』である。
僕は‥‥バカだ!!!!
なぜすぐに気付けなかったのか。
試しにAIに打ち込んでみる。
「pissing into the uterus」
感動した。
出力は機械任せだ。
でも俺は確かに「自分の願望を叶える方法を考え出し、それを実現する手段を確立し、求めていたものを手にした」という感動の中にいた。
なぜ俺が朝目新聞に居た頃にこの感動を得られなかったのかも、洞察完了(わかっ)てしまった。
なんとなく皆がやっているからジョジョパロを描いていただけで、別に俺はそこまで面白いと思っていなかったからだ。
今度のものは違う。
俺が俺のために俺の望むものを生み出す日々。
幸福の中にいる。
現代科学の基礎の基礎、「巨人の肩に乗る」という意識を常に持っている人間には、AIはとても魅力的な道具である。
それはただネット上の文章を網羅して圧縮記憶しただけのものであり、しかしだからこそとても便利だ。
ただ「誰かがかつて書いていたようなこと」を思い出せるだけである。
それで良い。「自分で考えることで完璧な答が見つかる」なんて妄想は、非科学的な勘違い中二病だけのものである。
我々の現代科学を作ってきたのは、「先人の書いたものを読み、話し合い、また未来にその過程を残す」というコミュニケーションの力である。
読み間違い、記憶違いなんてのは人間もする。だからクロスレビューは常に必要だ。
AIは先行研究をさらい、新機軸の既存視点のレビューを加速し、科学的発展を確かなものにする欠かせないツールである。
これが使えないのは、そもそもこういう科学発展におけるコミュニケーションの寄与を理解していない奴だけ。
こういう奴は、たいてい「自分は凄いアイデアを考えたぞ」と車輪の再発明をして喜んでいるタイプ。しかも低学歴門外漢で、まともな基礎知識もないのに。
ここで言う「プログラミング初級者」とはプログラミングの記述が上から下へ向かって順番に処理されること、条件分岐やループという概念があることを理解しており、RPGゲームが作れる「RPGツクール(現RPG Maker)」や学童向けプログラミング環境「Scratch」、「ナビつき! つくってわかる はじめてゲームプログラミング(ナビつく)」、ADVゲームが作れる「吉里吉里(もしくは吉里吉里2)」、過去にBASICやC、HSP、Javascriptあたりでプログラミングへ挑戦し挫折したなどなど、ある程度の「プログラマブルなロジック」構築の経験がある者を指します。
ある時、筆者はふと思いました。「生成AIはなんだかんだで膨大なテキスト情報を処理している事がキモだよなぁ」とありきたりなことを。
そして、同時にプログラミング初級者の弱点として「現在記述されているコードの管理においてテキストと実際の処理フローが脳内で一致しない」「プログラミング言語ごとに定められているルールや関数予約語の把握が困難」なのが問題とも考えました。
前述したプログラミング初級者の弱点の考え自体は車輪の再発明であり、「Scratch」や、より高度な「UML」が既に存在しており、特筆すべきことは何もありません。
しかし、「Scratch」や「UML」、なんなら「RPGツクール」や「吉里吉里」などに無い点として、現代では自然言語処理が大幅に向上した生成AIが実用の域にまで到達しつつあるのが従来とは異なる点でした。
つまり、自然言語を混ぜ込みやすいテキストベースの言語、かつ、処理を記述するとフローが視覚的に理解しやすい言語、可能であれば情報量が多くて一部の界隈で広く使われている言語があればプログラミング初級者も気軽にプログラミングできるのではないか?と発想しました。
コンピュータ(コンパイラやインタプリタなどソフトウェアを含む)が解することができる言語にはプログラミング言語以外にも様々あり、今回取り上げるのは「データ記述言語」と呼ばれるものです。
データ記述言語の中でもグラフ作成へ特化しており、特にフローチャート作成で真価を発揮する「DOT言語」というものがあります。
早速ですが、実際に手を動かしてみましょう。ちなみにDOT言語はGraphviz OnlineというWebツールがあるため別途に何かしらをインストールして環境構築する必要はありません。便利な世の中ですね。
上記のGraphviz Onlineを開くと、既に左側のDOT言語で記述された内容が、右側で作図されています。DOT言語はこのような図を作図するためのデータ記述言語です。
一旦、左側の記述をCtrl+Aで全選択をしDeleteなどで全削除し、下記の内容をコピペしてみましょう。
digraph graphname {
A -> B;
}
DOT言語の詳細な使い方は様々なWebサイトやブログ記事、Qiitaなどへ譲るとして、A - > Bの見た目から発想の転換をしてみると処理Aから処理Bという流れに見えませんか?
DOT言語は生成AIを利用する上で有利なテキストベースでありながらグラフを作成できるのがキモであり、例えばこのA -> BがA「Webページを開いたら」 → B「Hello, Worldと表示する」という風にできるのであれば処理のフローが可視化されており本当に素晴らしいことです。
ここでプログラミングの有識者は「DOT言語をUMLなどに見立てて処理を記述するのは良いが、プログラミング初心者は求めた結果を出力するロジックやアルゴリズムを発想する知見や経験値が圧倒的に足りていないのが問題ではないか?」と至極真っ当かつ反論の余地がない問題点の指摘をすると思いますが、そこで活きるのが生成AIです。
生成AIは初級者プログラマ個人のロジックやアルゴリズムの作成能力へ無関係にロジックやアルゴリズムを生成できる(可能性が少なくともある)ので、処理のフローをDOT言語で記述することにより処理フローから初級者プログラマが求めるプログラムを生成AIへ推論させ生成させるというのが狙いです。実際に試してみましょう。
digraph graphname {
A[
label = "Webページを表示する"
];
B[
label = "Webページを表示したらHello, worldとテキストを表示する"
];
A -> B;
}
プログラミングの有識者はこの時点で「なるほど、自然言語の記述をそのままDOT言語に入れ込んでしまうのか」と気付いたのではないかと思います。
このDOT言語をGoogle Gemini 2.5Flashへ「下記のデータ記述言語のDOT言語で記述された処理フローをJavascript言語へ変換をしWebページ上へ「Hello,world」を表示したいので変換をお願いします。」と命令すると以下のコードが生成されました。
<!DOCTYPEhtml>
<html lang="ja">
<head>
<meta charset="UTF-8">
<metaname="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World Page</title>
</head>
<body>
<divid="output"></div>
<script>
//Webページが表示されたら(DOMが完全に読み込まれたら)実行される
document.addEventListener('DOMContentLoaded', function() {
// "Webページを表示する"ステップは、このHTMLファイル自体が表示されることで達成されます。
// "Webページを表示したらHello, worldとテキストを表示する"ステップ
const outputDiv = document.getElementById('output');
outputDiv.textContent = 'Hello, world';
});
</script>
</body>
</html>
フローを記述する利点は、ロジックやアルゴリズムを発想する知見や経験値が足りなくとも、フローのステップが明確に分かれているので生成AIが処理を切り分けて推論してくれることであり、そしてプログラミング初心者自身がフローチャートを視覚で確認できるので「Aを処理したらBを処理する」と切り分けて考えやすいことです。
また、求めている結果ではなく誤った結果が生成されても、A - > B - > Cとフローを細分化していくことで生成AIの推論精度を高めていくことができるのも利点です。
より生成AIへ精度の高い推論をしてもらうために補足情報を付加するのも有用です。
digraph graphname {
A[
label = "Webページを表示する"
];
B[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];
A -> B;
}
labelの記述内容もcommentの記述内容も生成AIが推論のための情報として利用するので誤った結果が生成されてもA - > B - > Cとフローを細分化しなくとも良い場合があります。
DOT言語を知るプログラミング有識者が「DOT言語の仕様を考えれば確かにそうだが、その発想はなかった」と言っていただけるであろうDOT言語コード例だとこういう記述方法もアリです。
digraph増田コード {
最初の処理[
label = "Webページを表示する"
];
次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];
最初の処理 -> 次の処理;
}
ノードの名称へ自然言語を採用することにより、例えばゲームプログラミング時に「キャラクターがジャンプする」という読んだそのままな処理のためのノード、というか一般的に言うオブジェクトを作成することが可能で、後は->で繋げて処理をさせられます。
ちなみに別のノードを作成する際に「"キャラクターがジャンプする"から継承する」の様なことをcommentなどへ記述しておくと生成AIが推論して継承します。なんならcommentなどへ「キャラクター画像にimage.gifを使用」などと記述しておくとファイルの読み込みもします。
更にDOT言語にはカスタム要素という仕様が存在しており、DOT言語の仕様で定められた予約語以外も使用が可能です。
digraph増田コード {
最初の処理[
label = "Webページを表示する"
];
次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機",
font_style = "フォントを太字のボールド体、色を赤(#FF0000)とする"
];
最初の処理 -> 次の処理;
}
生成AIはカスタム要素の名称からも推論を発揮し、上記の場合であればフォントスタイルを指定していると推論をするので生成AIの推論精度を高める補足情報として機能します。
つまりこれはカスタム要素の名称として"Action"などの名称を採用すると"動作"として推論をし、"decision"ならば"条件分岐"ですし、"input"ならば"入力"ですし、"loop"ならば"繰り返し"ですし、"Type"ならば"種別"です。
より詳細に process[type="Action"] などのノードを作成してどんどん生成AIの推論精度を高めていくことが可能であり、そろそろ察してきているかと思いますが 処理[種別="動作"] と自然言語で記述しても機能します。
プログラミング有識者は更に「プログラム言語自体の予約語、例えばJavascriptを生成する事を前提にlengthを名称にすると配列を使おうとするのか?」と疑問に感じるでしょうがお察しの通りで生成AIは配列を使おうとするので、敢えて使いたいプログラム言語の機能や外部ライブラリなどがある場合は補足情報として機能する形で記述しておくと生成AIは推論へ利用します(まぁそこまで知識ある方なら該当のプログラム言語使ったほうが手っ取り早いと思いますが)。
以上をもって「生成AIを利用したプログラミング初級者向けの温故知新な提案」を終えたいと思います。
色々とツッコミどころには筆者自身が気付いていて。例えば「結局はDOT言語の仕様を覚えないといけないのでは?」とか「プログラミング初級者に任せると生成前のソースであるDOT言語コードがスパゲッティになりそうだよな」とか「面倒くせぇから普通にプログラミング覚えろや」とか理解してますし至極真っ当かつ反論の余地がないと思ってます。
今回の提案のプログラミング有識者向けの本質は「生成AIへ向いた中間言語の発掘」であり、「DOT言語ならそこそこ普及してるしプログラミング初級者でも扱えるんじゃね?」と業務中に発想したものを書き留め公開いたしました。
何かプログラミング有識者の皆さんからより良い発想があれば参考にしたいと考えていますのでよろしくお願いいたします。以上。
Permalink |記事への反応(36) | 19:36
孫正義はASI、人工超知能とか言ってるけど、現行の生成AIの本質は車輪の再発明をしないということで、人類に集積された知識を循環させるということだと思うんだよね
だから、生成AIを一番有効活用できる分野はやっぱり、ITだと思うんだよね
プログラミングの課題ってのは車輪の再発明をみんながし続けてきたってことで、ここが解決されるなら、
あと必要なことは仕様を詰めることと、仕様から具体的な処理に分解していって、必要な処理、関数を生成AIに実装させれば大体がモノができるようになる
通常求められるアルゴリズムというのは物事の本質に根ざした独創性の求められる美しい唯一無二の回答ではなく、
現実に行われてる処理を都合のいい形に整形してしたうえで型式にはめてパターン化するという作業で、
実装として実際にどんな手法を使うかは仕様の制約によって多少縛られるに過ぎず、そこまで考えるほどのことではない、基本的にはね、と言う訳でここは生成AIにブン投げればいいってことになっていくと思う
今日「VTuberはいかにしてリアルを表現してきたか」っていう記事を読んだ。
読んでて思ったのだが、これって今まで動画配信コンテンツで散々やってきたことを“Vtuber”というパッケージに押し込めているだけなのでは。
配信サイトでVtuberが一大ジャンルになったころ、Vtuber独自の面白みは薄れていった。
ゆっくり実況のゆっくりが別アバターになって多少うごけるようになって、音声ソフトが肉声ベースかボイスチェンジャーになってこそいるが「実質的に適当なキャラを配置して喋っているだけ」という動画がほとんどだったからだ。
先ほど挙げた記事で紹介されている実写とかになると、いよいよ限界を感じる。
手元だけ映して何かをしたり、被り物をつけて何かをやったりなんて、ずっと前からやっていたことだ。
それこそYoutuberという呼称すらない頃から枚挙に暇がない。
目新しさがないこと自体が問題というよりは、「わざわざ開拓地を広げておきながら見慣れた景色が広がっている」というのが面白くない。
同じことはやればやるほど退屈になるし、「それって他のジャンルが散々やってきていることじゃないか」というのは拭いきれない。
そんなことを考えていた時、ふと思い出したのが「まんがタイムきららの4コマ漫画がすごいことになっている2025」と、そこでの反応だった。
4コマ漫画の表現技法や試みを画期的だと紹介する記事ではあるのだが、その実やっていることは他ジャンルの漫画が当然のようにやってきたことである。
人気ブコメ上位でも
なんて身も蓋もない意見がある。
例示されている漫画は4コマとして見るとたしかに斬新。でも既存の漫画コマに当てはまると普通に見える。不思議な感覚だ。四コマだらけのきららでこれを見ると「おおっ」となりそうなのはわかる。
自分はその「不思議な感覚」の実感はないのだが、いいたいことは分かる。
「わざわざ開拓地を広げておきながら見慣れた景色が広がっている」と前述したが、それだって所変われば壮観な情景であり、可能性の提案だ。
VTuberの様々な実写に対するアプローチもあくまでVtuberというジャンル内での試みのひとつと考えれば新鮮味はある。
野球に球を蹴る要素を入れたら「それってサッカーでやってることでは」となるが、それはそれで面白いだろう。
ただ、それらを踏まえた上で思うのは、そうして可能性を押し広げた結果やってることが既存に収まるのであれば、ジャンル・カテゴリそのものの独自性を損なうのではないかってこと。
先ほど挙げた4コマ漫画の話しかり「“ならでは”の面白さ」があるのに、それを損なってまで既存のものを“つまみ食い”するのって結構リスキーなように思う。
4コマ漫画が4コマの枠からはみだそうとすれば、“枠外”から「4コマでやらなくてもよいのでは」という評価は避けられないし、その指摘を全面的に否定できるほどの性質を担保できてないのも事実。
気づくの遅すぎるというかそれ社会全体で一度やった流れなんですよ
日本のJTCも全く同じでさ
高卒中卒が組織をつくった創業期は変な人材でも片っ端から集めてたけど
そんな連中ばかりだとトラブルが絶えないし、許されるのはごく最初期のみで
社会からのハードルが上がると「経歴のきれいな人材が要りますよね、しかも若くないと教育できませんよね」
ってことになり、新卒一括採用したり、資本があるところは高校や専門学校やら作って青田刈りしてきた
それを今更なんか新しいことに気づいたかのようにハッとして
やっぱり中年でこじらせてる奴はダメだった!そんな奴ら中途でとってもどうしようもない!
ってさすがに周回遅れ過ぎるだろ
それでもまだ、はてな民の若いころはITというフロンティアがあったころはそういうやつらを受け入れてくれて
成り上がれる余地があったからマシだったし、組織化を一からやって車輪の再発明して偉そうなこと言えたわけだが
AIは低スキル人材の居場所からつぶしていくから協調性や肉体労働適正がない奴らは
若いころレールに乗れなかった時点でもう詰みなんだよな
ともかく、カワンゴをほめたやつは二度と新卒一括採用叩くんじゃねえぞ
https://anond.hatelabo.jp/20250113003714https://anond.hatelabo.jp/20250113004321
株価に影響するからなのか、米国の話に多くの時間を割いてしまっている。
人口が多い場合は、それでもどう稼ぐかを考えている人口が一定数いるのだろうけど、
日本の場合、上記の内容が目立つため、これで稼げるのでは、と参入している人・企業が多い気がしてならない。
そして人は飽きやすいため、常にネタを求め、より過激になっていき、フェイクだろうが罵倒だろうが、だんだん関係なくなってくる。
どこか海外で話題になっているものの使い方だけ調べて適用し、もう勝負はついた車輪の再発明だと国内他者が作るの諦めさせている。
国内で誰も作らなくなっているので、年収を上げて募集しても、そもそも人材が国内にいない。
国内での研究内容についても誰も話題にしない、評価もしないので、アカデミアの人達の興味本位の内容だけになり、
論文は出るものの、国内では採用するような企業はなく、海外勢が成功するための手助けをしているだけになっている。
今だと半導体だろうか。
皆の興味関心事は、成功する/しないか、で野球球団を応援して勝つ/負けるを言ってるのと変わらない。
失敗すれば、やっぱり政府が関わるべきじゃないんだという人達が多く湧いてくるだろうし、
今も技術の詳細は何もしらず、インテルでも難しいんだからくらいの話で失敗するという話が多くなってしまっている。
死ぬのが怖い(痛そう)
死ぬのが怖い(地獄とかあったら嫌じゃね?/「無」って怖くね?)
死ぬのが怖い(自分の存在や生きた痕跡が忘れられるって恐ろしくね?)
意識とは何なのか?死とは?知りたい
自分の満足と納得を追求したい、この気持ちだけは本物だと信じてみよう
サウナ気持ち良すぎワロタ 夜中のお出かけ楽しすぎワロタ 暇を持て余して抽象的な事ばっか考えてる人、バカですw
ゴチャゴチャと理屈を捏ねるまでもなく、人生とは何らかの熱狂的な情熱を放てるか否かが全てではないか?
生きるのが怖い、腰抜けには死ぬことすらままならないのが心底恐ろしい
自分が何を悩もうとも運命が存在するのならそれもまた予定調和に過ぎないが、もし人の意志に聖域があるのだとしたら?その源が神なのか自然の摂理の偶然性にあるのかは分からないが、今まで確信や納得だと思っていたものよりもより純度の高い信仰がそこにはあるのではないか?
それを実証的に明らかに出来そうな気はしないし、無根拠に信じるというのは蓋をするのと同義でもあるかもしれない
記憶にある限り、こんな感じで興味関心が移ろいでるな。マジで他人が登場しない。
般教の思想史でも似たようなトピックと似たような理屈が出てきたりして面白い。やっぱ人の考える事って似通うんだな。人類、歴史を伝って思春期やってるじゃん。
というよりその歴史が何らかの形で自分の考えに影響を与えたのかも分からんけど。思想史的に時代が進んだり戻ったりしてるような気がする。
車輪の再発明というやつか。自分で捏ねくり回して得たからこその納得というやつが人生に対する実感をもたらすと思えてならねえ。
本でも読めば近道出来たかもしれない事から目を逸らすような自己弁護なのかもしれないけども、まあ別にいいや。長い人生始まったばっかだし。