If you're going to vibe code, why not do it in C?

2025/12/10 2:11

If you're going to vibe code, why not do it in C?

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

要約

スティーブン・ラムズは25年間にわたりコーディングを教えてきた経験豊富な教授で、非プログラマーをプログラマへと転換させることを目指しています。彼は「バイブコード」(AI生成コード)を強く嫌い、それは不正行為のように感じられ、自分自身の作品を完全に理解する喜びが奪われるためです。それでも、バイブコードは堅牢で複雑なシステムを作り出し、問題解決に効果的であることを認めています。

Structure and Interpretation of Computer Programs(SICP)を用いて、ラムズはプログラムは機械だけではなく人が読むために書くべきだと強調し、プログラミング言語は主に人間の利便性とエルゴノミクスの周りで設計されていることを指摘します。彼は次の問いを投げかけます。「機械効率を優先するバイブコードがあるなら、人間最適化された言語を使う必要はないのでしょう?Cやx86アセンブリを直接書く方が良いのでは?」また、バイブコードは未定義動作やメモリ管理といった低レベルの問題をほとんどのプログラマよりも上手に処理していることにも触れています。

将来について、ラムズはAI生成に特化した「バイブ指向プログラミング言語」(VOPL)の可能性を示唆しています。VOPLは実行可能な擬似コードとして機能し、アセンブリを生成するか、コード作成の文学的・批評的実践へと進化するかもしれません。しかし、新しい言語を立ち上げることは困難です。大規模言語モデルは訓練された言語でしか優秀ではなく、完全にAIネイティブな新言語を作るには時間と広範な開発者採用が必要になるからです。

ラムズの曖昧さは明らかです。彼は「手書きコーディング」が時代遅れになることを恐れつつも、ENIACからストアドプログラムコンピュータへの移行に似た新しい計算パラダイムの興奮も感じています。彼は歴史的抵抗(グレース・ホッパー、EDVAC)を引用し、機械自動化と人間制御との継続的な緊張関係を示しています。

本文

スティーブン・ラムズ

「それでは、x86アセンブリでやってみるのはどうでしょうか?」

この「ちょっと無礼に聞こえる」考えにさらに踏み込む前に、まずいくつか整理しておきましょう。実際にはそのほど皮肉らしいものではありません。

まず、私は**Vibe Coding(ヴァイブ・コーディング)**が好きではありません。
プログラミング自体は大好きで、90年代半ばから末尾にかけて最初の一歩を踏み出して以来ずっと愛しています。その情熱はまるで仕事としてではなく「遊び」であるような感覚です。プロフェッショナルとしても取り組んでいますが、趣味としてもやっています。

「好きなことをすれば、人生のどこでも働く必要はない」と誰かが言ったことがあります。コードを書く私にとってそれは真実です。25年間教鞭を執り続けてきましたが、新学期の初日であっても今の私は当初と同じくらいワクワクしています。プログラミング経験のない人をプログラマーに育てることこそ、私の人生の仕事です―それが大学教授として最も誇りに思うことです。

Vibe Codingは言葉で説明しにくい汚れた感覚を抱かせます。単なる「カンニング」(それは確かにそうですが)だけではありません。また、全体の楽しさを大きく奪ってしまうとも感じています。私は人々によくこう言います。「プログラミングとは世界最高のクロスワードパズルを解くようなものだが、解けた瞬間に実際に踊ったり歌ったりする」そうした瞬間をVibe Codingは奪ってしまうので、本当に自分でやったという感覚が薄れます。

プログラマになるとは、ほぼ永続的なアポリオー(コンパイラが何をしているか完全に理解できない、仮想メモリの仕組みがわからないなど)と共存することですが、自分のコードを一寸も見落とさずに理解できる喜びは否定できません。フラストレーションがある――でもそれが満足感にもつながります――自分が書いたコードの境界線を知ることで、Claude が何を書いたか完全には掴めなくても。


Vibe Coding は実際に機能する

それは堅牢で複雑なシステムを構築できます。多くの人は「そんなことはできない」と思うでしょうが、それは誤解です。Vibe Coding はコード問題の検索エンジンとしても、さらにその上を行くものとしても優れています。自分で解決するには面倒すぎる小さなタスクを渡せば、素晴らしい結果を出します。「あるプログラムのアイデアがあります…」と AI モデルに投げかけた瞬間、その驚きは言葉に尽くしがたいものです。

完璧? ほぼそうではありません。しかしそれも人間のコーダーにとっては重要な点ではないでしょう。将来については、質問自体が答えを持っているように思います。


SICP(Structure and Interpretation of Computer Programs)から学んだこと

プログラミングへの愛着が深まる初期段階で「コンピュータ・プログラムの構造と解釈」を読み、今では教育的傑作として評価しています。その中に記憶に残る教訓があります。

「私たちは、コンピュータ言語は単なるコンピュータを操作する手段ではなく、方法論についてのアイデアを表現する新しい形式的媒介であるという考えを確立したい。従って、プログラムは人が読むために書くべきものであり、機械が実行するために偶然に合わせているものだ。」

この言葉を私は学生たちへ何度も繰り返してきました。コンピュータは「機械のため」だけでなく「人間のため」にコードを書かれるべきです。

アセンブリを含むすべてのプログラミング言語は、人間にとって便利になることが目的です。もしある言語が革新的だと言えるなら、コンピュータに新たな機能を与えるためではなく、私たちがより簡単に表現・推論できるようにするためでしょう。オブジェクト指向言語はメンテナンス性や拡張性、エラーチェックなどを助けますが、コンピュータの観点からすればそれらは単なるヒープメモリの変化に過ぎません。

関数型プログラミング、代数的データ型、依存型、ホモイコニシティ、不変データ構造、ブラケットスタイル…これらを議論できますが、私たちが主に解決すべきは人間の問題です。機械側の課題として対応するものはずっと少ないのです。


Vibe Coding に人間中心言語を使う理由

もし Vibe Coding がソフトウェア開発の未来であるなら、なぜ人々が「Vibe Coding しない」人向けに設計された言語を使い続けるのでしょうか? VOPL(Vibe-Oriented Programming Language)――Vibe に特化したプログラミング言語――は存在すべきでしょうか?

VOPL は以下のような形になる可能性があります。

  1. 実行可能な擬似コード:本当の擬似コードでアセンブリを書きつつ、その過程を示す。
  2. リテラトゥープログラミングスタイル:AI が文学的ドキュメントから機械語を生成し、構造主義やポスト構造主義へと進化する可能性。
  3. 自然言語に近い言語:既存のものよりも自然言語に近く、AI を信頼できる解決策へ導くイディオムを備える。ゴルーチンは不要だが「並列スラング」が存在する。

LLM はすでに数十億行の JavaScript, C++ などを学習しているため、VOPL のブートストラップは難しいですが不可能ではありません。多くのプログラマは既に Vibe Coding を通じてプロダクションレベルのコードへと手探りで進んでいます。


パラドックス

私がこの全体についてどのように感じるか、まだ定まっていません(最初と二番目のポイントを参照)。「手書きコーディング」がモンテッソーリ式のステージとして終わりを迎えることは、ある意味で残念です。将来 Photoshop を使う人や計算機なしでは生きられない人にとっては、単なる輪郭描画や代数的なバランス方程式が必要になるだけかもしれません。

一方、新しい計算パラダイムの誕生には興奮があります。近頃、人々は「計算を行うたびに機械全体を書き換える」こと(1945 年の ENIAC を思い出してください)が非効率だと気づきました。EDVAC のようなストアド・プログラム型コンピュータが登場すると、人々は「信頼性が低く、速度が遅く、オペレーターが作業から外れた」「専門職が脅かされる」「概念の純度が失われる」と不満を述べました。グレース・ホッパーもまた、「機械が別の機械に命令を書き込む」という人気の考えに対して反論しなければならなかったことがあります。

同じ Vibe、子供たちが言うように――


インカミング: home | blog | index
キーワード: プログラミング, AI
最終更新: 2025‑12‑07T16:29:42-0600

同じ日のほかのニュース

一覧に戻る →

2025/12/10 0:00

Show HN: Gemini Pro 3 hallucinates the HN front page 10 years from now

## Japanese Translation: ## 改訂版まとめ この記事では、最近のさまざまな技術的マイルストーンとリリースをレビューしています。 1. **SpaceX**:Starship HLS‑9 が Sea of Tranquility からテレメトリーを正常に送信しました。 2. **Linux Kernel**:バージョン 7.4 に完全な上流化された 100 % Rust カーネルが含まれています。 3. **開発者プラクティス**:生のコードを書くこととコンパイラプロンプトを使用することを対比した議論があります。 4. **人工知能**:LLaMA‑12 7B モデルは WebAssembly を介してコンタクトレンズ上で動作し、YC シード付きスタートアップ Nia は自律型コーディングエージェントを導入しています。 5. **教育ツール**:AlgoDrill は LeetCode パターンの強化に向けたインタラクティブなプラットフォームを提供します。 6. **エネルギー研究**:ITER の炉は 20 分間連続で正のエネルギー収支を達成しました。 7. **ハードウェア修理**:2024 年製 Framework Laptop を復元する方法を詳細に説明したレトロスペクティブガイドがあります。 8. **クラウドサービス**:Google は Gemini Cloud Services の提供を終了します。 9. **グラフィックスプログラミング**:WebGPU 2.0 により第 5 次元の可視化が可能になりました。 10. **Linux ディストリビューション**:Debian がバージョン 18 “Trixie” をリリースしました。 11. **プログラミング言語提案**:`sudo` ユーティリティを Zig で書き直す提案が提示されています。 この記事はこれらの出来事を文脈に置き、各々が過去の成功にどのように基づいているかを指摘し、その進歩が今後の開発実践、AI 統合、およびクラウドサービス戦略に影響を与えることを示唆しています。

2025/12/10 2:08

PeerTube is recognized as a digital public good by Digital Public Goods Alliance

## Japanese Translation: ### Summary PeerTubeはプラットフォームに依存しない多言語対応のビデオホスティングおよびライブストリーミングソリューションで、正式にデジタル公共財(DPG ID0092472)として承認されています。2025年10月7日にRicardo Torresによるレビューが行われ、Platform Independence評価を含むすべてのDPG標準要件を満たしていることが確認されました。これにより、ベンダーロックインなしで任意のインフラ上で実行できることが保証されています。ソースコードはGitHub(`github.com/Chocobozzz/PeerTube`)とFramagit(`framagit.org/framasoft/peertube`)で公開されており、透明性とコミュニティの貢献を確保しています。PeerTubeは44以上の言語(エスペラント、アラビア語、中国語簡体字・繁体字、日本語、韓国語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、ロシア語など)をサポートし、フランスの教育省からイタリアの国家研究評議会、複数のドイツ大学、Blender、Debianプロジェクト、および活動家グループまで、多様な組織で既に利用されています。承認は2026年10月7日まで有効であり、毎年自己申告による使用状況更新が求められます。この推奨は、機関やオープンソースコミュニティが分散型ビデオプラットフォームを採用することを促進し、メディアホスティングの風景をよりオープンで多言語化、ベンダー非依存な解決策へとシフトさせる可能性があります。

2025/12/10 5:33

Django: what’s new in 6.0

## Japanese Translation: --- ## Django 6.0 – 主なリリースハイライト *リリース日 2025‑12‑03* | エリア | 変更点 | 意義 | |------|--------------|----------------| | **テンプレート** | 新しい `{% partialdef %}` / `{% endpartialdef %}` タグで、テンプレートを再利用可能なフラグメントに分割し、インラインまたは別途レンダリングでき、htmx とも相性が良い。 | テンプレートの DRY 化、ボイラープレート削減、コンポーネント再利用の容易化。 | | **バックグラウンドタスク** | 組み込み「Tasks」フレームワーク: `@task` デコレーター + `Task.enqueue()` API。組み込みバックエンド(`ImmediateBackend`、`DummyBackend`)があり、実稼働ではサードパーティパッケージ(例: `django-tasks` の `DatabaseBackend`)が必要。 | 単純なジョブに対して外部タスクライブラリの必要性を排除しつつ、実稼働時の柔軟性は維持。 | | **セキュリティ** | `ContentSecurityPolicyMiddleware` を追加。 `SECURE_CSP` と `SECURE_CSP_REPORT_ONLY` で設定可能。ノンスは自動生成され、テンプレート内では `{% csp_nonce %}`(`nonce="{{ csp_nonce }}"`)で使用できる。 | 自動ノンス処理付きの CSP サポートを組み込み、XSS リスクをデフォルトで低減。 | | **メール** | Django のメール API が Python の `email.message.EmailMessage` を利用するように変更。 `EmailMessage.send()` は内部でこの API に変換し、インライン添付は `MIMEPart` オブジェクトで追加可能。 | 標準ライブラリ互換のモダンなメール処理と簡易的な添付サポート。 | | **Mail API の非推奨** | `django.core.mail` API ではキーワード専用引数が必須となり、位置オプションパラメータは警告を出し将来的にエラーになる。 | より明確な API 使用を促進し、コードの未来保証を実現。 | | **シェル** | 自動インポートが拡張され、 `settings`、`connection`、`models`、`reset_queries`、`functions`、`timezone` が追加。 | もっと高速で便利な対話型開発環境。 | | **ORM** | • 動的フィールド(`db_default`、`GeneratedField`)は `save()` 後に SQL RETURNING を通じてリフレッシュされる;未対応バックエンドでは次回アクセス時まで遅延。<br>• `StringAgg` 集約がすべてのサポートデータベースで動作;文字列リテラル区切りは `Value()` で包む必要。<br>• デフォルト主キー型が `BigAutoField` に変更され、新規プロジェクトでは `DEFAULT_AUTO_FIELD` を設定しなくなる。 | モデル定義の簡素化、パフォーマンス向上、大規模アプリでの PK 終了防止。 | | **テンプレート変数 & タグ** | `forloop.length` が追加され、ループ長にアクセス可能;更新された `querystring` タグは `?` で接頭辞し、複数位置引数を受け取り、重複時には優先順位でマージ。 | より表現力豊かなテンプレートロジックとクリーンなクエリ文字列処理。 | | **コミュニティ** | Django 6.0 に 174 人の貢献者が参加。リリースノートではアップグレード準備を強調し、開発者に新機能を試すよう呼びかける;今後のリリースでタスクバックエンドや CSP 機能が拡張される可能性。 | 健全なコミュニティサポートとさらなる改善へのロードマップを示唆。 | **まとめ:** Django 6.0 は、再利用可能なテンプレートフラグメント、オプションの組み込みタスクシステム、ノンス付き CSP ミドルウェア、モダン化されたメール API など、実務で即使える改善を提供します。さらに ORM の強化、シェルの利便性向上、旧パターンの非推奨により、ボイラープレート削減・セキュリティ向上・大規模プロジェクトの将来準備が実現されます。 ---