発表前に、Google と Facebook のスポンサー紹介がありました

 

「牛を失ってから牛小屋を直す」ということわざが、未来への備えをするなという意味ではないのと同じように、
「車輪を再発明するな」も、洞察を得るために時間を投資するなという意味ではないと思います。
こうした言葉がどのような状況で出てきたのか、その前後を切り取ってしまうと本来の意味は歪められます。

 
det7eng 2025-05-27 | 親コメント | トピック: なぜ米国は常に貿易赤字を計上するのか? (libertystreeteconomics.newyorkfed.org)

アメリカの最大の特産品はドルだと思います

 
yolatengo 2025-05-27 | 親コメント | トピック: Cursorの使い方(+ 最高のヒント)[翻訳記事] (siosio3103.medium.com)

同じ問題を解決するために何度も繰り返しているとコンテキストウィンドウのサイズを超えてしまい、そういうときにAIが壊れるような経験を何度もしたのですが、このような場合は他の方はどうしているのか気になります。 私は何度も試して、どうにも間抜けな振る舞いをし始めたらモデルを変えて、プロンプトウィンドウを新しく開きます。

 

つい最近の体験ですが、私は最近、自分だけのとても特別な車輪をひとつ作りました。
Nuxtで1000ページ規模のアプリをビルドするのに7分かかっていたのですが、
いくつかの自動化をあきらめて作り直した結果、20秒ビルドに成功したんです。

 

ご回答ありがとうございます!

 
superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing)

添付していただいた2つ目の quickSortInPlace()、これも遅い実装ですね。

以下のコードを実行してみてください。

function quickSortInPlace(arr, left = 0, right = arr.length - 1) {
if (left >= right) return;

const pivotIndex = partition(arr, left, right);
quickSortInPlace(arr, left, pivotIndex - 1);
quickSortInPlace(arr, pivotIndex + 1, right);
}

function partition(arr, left, right) {
const pivot = arr[right];
let i = left;

for (let j = left; j < right; j++) {
if (arr[j] < pivot) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++;
}
}

[arr[i], arr[right]] = [arr[right], arr[i]];
return i;
}

function quickSort(arr) {
if (arr.length <= 1) return arr;

const pivot = arr[arr.length - 1];
const left = [];
const right = [];

for (let i = 0; i < arr.length - 1; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}

return [...quickSort(left), pivot, ...quickSort(right)];
}

const repeat = 100;
const arrLength = 10000;
const unsortedArray = new Array<number>();
for(let i = 0; i < arrLength; i++)
unsortedArray.push(Math.round(Math.random() * arrLength));

let sorted: Array<number>;

const qb = performance.now();
for(let i = 0; i < repeat; i++)
sorted = quickSort(unsortedArray);
const qe = performance.now();

const rqb = performance.now();
for(let i = 0; i < repeat; i++) {
let copied = [...unsortedArray];
quickSortInPlace(copied);
}
const rqe = performance.now();

console.log(q: ${qe - qb} ::: rq: ${rqe - rqb});

 

深い洞察を感じる文章です。さすが a16z です。

 
superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing)

普段はあまりコメントしないのですが、この文章にだけコメントを残した理由は、著者の考えにかなり共感しているからです。重要なのはAIやLLMそのものではなく、どんな環境が来ても開発者としての「自分」が備えていなければならない、ということだと思います。

LLMは学習されたソースの特性上、世界中に広がるオンラインデータの平均値に近いデータを主に提供します。(前述のjsクイックソートがその証拠です。)だから私はたいてい、思想やデザインの面で一般的な観点とどの程度一致しているか、ずれているか、あるいはこれまでどこに聞けばいいのか微妙だった内容を質問するために多く使っています。

 
superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing)

さらにこれ以上議論を続けることに、どんな意味があるのかよく分かりません。

そもそも、AIが生成したコードにはある程度のリスク要因があり得るので、十分に精査したうえで適切に活用するのがよい、という意見なのであれば、著者の文章のどの考え方が偏っているのかを説明してもらえればよいのではないでしょうか。要約にも「文脈のない scaffold/草案コードを素早く提供することはできるが、完全な設計とチューニングは人間の開発者の役割である」とあり、似た意味の内容が含まれていますから。

 
superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing)

基本的に、コレクションの生成・運用・マージに伴う負担への理解がまったく感じられないコードだと言えます。C++ の場合、すでに約10年前に Move Constructor に関する提案・実装も登場しており、メモリコピーに関するコストには常に鋭敏であることが基本中の基本です。quick sort はその仕組み上、すべての値の index を確定できるアルゴリズムであり、各フィールドはランダムアクセスできるようにしておくのが望ましいです。

マニアックな最適化なしでも、上記の内容だけを適用すれば、リンク先で示されている方式とは2倍以上の性能差が出ます。

 
superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing)

return [...quickSort(left), ...equal, ...quickSort(right)];

この部分のコードをよく見て、考えてみてください。

 

LLMやAIは、時間が経つにつれて進化していますよね。ほんの数か月前までは、指示したとおりのコードの一貫性などはほとんど期待できませんでしたが、今ではそのスペース内でAIに初期構成を依頼したコードをファイルとしてアップロードし、新しいコードを書く際には常に既存のコードスタイルを守って書くよう指示して使えば、かなり一貫性のあるコードを書いてくれるようになりました。

 

yolo modeauto run mode に変わったそうです。

 
blizard4479 2025-05-26 | 親コメント | トピック: あなたの仲間を見つけよう (foundersatwork.posthaven.com)

いろいろ試しながら方向性を探っていたのですが、行動よりも人を中心にしたアプローチというのは興味深いですね。ロールモデルのようなものでしょうか? 面白く読ませていただきました。ありがとうございます。

 

リンクがうまく動作していないようなので、もう一度やってみます。 https://chatgpt.com/canvas/shared/68341217ae788191b66a523c948b1a8e

 

こんにちは。興味本位で「Webフロントに入れるのですが、js でクイックソートのアルゴリズムを少し実装してくれ」と言ってみたのですが、私には何が問題なのかよく分かりにくくて。教えていただけるととても助かります。あらかじめありがとうございます。 https://chatgpt.com/share/68340f9b-b684-8002-8dd5-495d477065cd

 

Common Lispのプロジェクトですね。だから ocicl+make の組み合わせが使えるわけですね。これをVibe AIに投げて、ただ typescript+deno で作ってくれと頼むほうが、メンテナンスはしやすそうです。

 
crawler 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing)

著者の分野に言及した理由や、自分のドメインというものがどういう意味なのかを、あまり理解されていないようですね。
自分で考えずにあらゆる判断をAIに委ねるのも愚かに見えますが、
その反対側にいる人たちのことも、私にはよく分かりません。

最後にお聞きしたいのですが、superscvさんはコーディングにLLMをどう使うのがよいと考えているのか、気になります。