Mojo 1.0 ベータ版

2026/05/08 11:49

Mojo 1.0 ベータ版

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

要約

Japanese Translation:

Mojo は、CPU、GPU、ASIC を含む多様な AI ハードウェアにおいて開発者の生産性と生の実行速度を統合することで、システムプログラミングにおける画期的な進歩を表しています。Python の構文から着想し、Rust のメモリ安全性、および Zig のコンパイル時メタプログラミングからインスパイアされた Mojo は、ゼロコストのアブストラクション、安全なジェネリック操作を提供します。また、Phase 3 に達すると、クラスや継承のような動的オブジェクト指向の機能も利用可能となります。ランタイムコードとコンパイル時メタプログラミングに同じ言語を用いることで、SIMD ベクトル化されたカーネル(例:配列の In-place 2 乗)、コンパイル時リフレクションによるジェネリック構造体の等価性、ならびに trait のダウンキャストをサポートし、ながら安全性を損なうことなく実装しています。Mojo はコーディングの容易さとパフォーマンスという従来のトレードオフを解消し、開発者が単純に始めながら複雑性をシームレスに拡張することを可能にします。ベンダー固有のライブラリに依存せずネイティブな GPU プログラミングを可能にし、Python とネイティブに互換性を有することで、既存プロジェクトへの円滑な移行経路を提供するとともにパフォーマンスボトルネックを排除します。GitHub にすでにオープンソース標準ライブラリが公開され、コンパイラの一般公開は 2026 年を計画している Mojo は、安全で単純さとハイパフォーマンスな最適化の両方を 2026 年までに架橋する統一モデルを提供します。

本文

完全な Mojo ドキュメント目次については、llms.txt をご参照ください。すべてのページのマークダウン版は、いずれかの URL に

.md
を追加することで入手できます(例:/docs/manual/basics.md)。

構築された多様性

ModernMojo は、現代の言語の優れた点を踏襲しています。例えば、Python の直感的な構文、Rust のメモリ安全性、そして Zig の強力かつ直感的なコンパイル時メタプログラミングなどが挙げられます。

AI ネイティブ

Mojo は、最先端の AI システムを支える多様なハードウェアにおいて最高のパフォーマンスを発揮できるよう、地から作られています。コンパイル型の静的型付け言語であるため、エージェンティック・プログラミングにも理想的です。

単純かつ高性能

生産性とパフォーマンスの間で選択する必要再也不あり、Mojo は両方を提供します。シンプルで馴染み深いプログラミングパターンから始め、必要に応じて複雑性を追加できるのです。

GPU プログラミング

Mojo を用いれば、ベンダー固有のライブラリなし、別途コンパイルが必要なコードも不要に、誰でも GPU プログラミングに取り組めます。遂に、CPU で使用する言語のまま高パフォーマンスな GPU カーネルを記述できます。

def vector_add(
    a: TileTensor[float_dtype, type_of(layout), element_size=1, ...],
    b: TileTensor[float_dtype, type_of(layout), element_size=1, ...],
    result: TileTensor[
        mut=True, float_dtype, type_of(layout), element_size=1, ...
    ],
):
    var i = global_idx.x
    if i < layout.size():
        result[i] = a[i] + b[i]

Python 連携

Mojo はネイティブに Python と相互運用可能であり、既存のコードを再実装することなく、パフォーマンスのボトルネックを解消できます。まずは一つ関数から始め、必要な場合にのみパフォーマンスクリティカルなコードを Mojo に移行してスケーリングできます。Mojo のコードは Python から自然にインポートされ、パッケージ化して配布も可能です。同様に、Python エコシステムのライブラリも Mojo コード内でインポートできます。

# 配列要素を SIMD ベクトル化で就地二乗するカーネル
def mojo_square_array(array_obj: PythonObject) raises:
    comptime simd_width = simd_width_of[DType.int64]()
    ptr = array_obj.ctypes.data.unsafe_get_as_pointer[DType.int64]()
    
    def pow[width: Int](i: Int) unified {mut ptr}:
        elem = ptr.load[width=width](i)
        ptr.store[width=width](i, elem * elem)
    
    vectorize[simd_width](len(array_obj), pow)

コンパイル時メタプログラミング

Mojo のメタプログラミングは、ランタイムコードと同じ言語を用いており、パフォーマンスを最大化する直感的なシステムを提供します。条件付きコンパイルでハードウェア固有の最適化を実装し、コンパイル時評価でメモリ安全性を保証し、高コストなランタイム分岐を排除するなど、明確な意図とゼロコストのアブストラクションすべてを実現できます。

# コンパイル時反射を用いた汎用構造体の等価性チェック
@always_inline
def __eq__(self, other: Self) -> Bool:
    comptime r = reflect[Self]()
    comptime names = r.field_names()
    comptime types = r.field_types()
    
    comptime for i in range(names.size):
        comptime T = types[i]
        comptime assert conforms_to(T, Equatable), "All fields must be Equatable"
        
        if trait_downcast[Equatable](
            r.field_ref[i](self)
        ) != trait_downcast[Equatable](r.field_ref[i](other)):
            return False
    return True

ロードマップ

Mojo は 2022 年末に誕生し、これまでに大きな歩みを進めてきましたが、まだ多くの作業が残されています。

コアパーサーの実装
メモリ型、関数、構造体、初期化子、引数規約、その他言語の基盤を定義します。

高パフォーマンスな CPU および GPU coding
Mojo を CPU、GPU、ASIC 上で高パフォーマンスなカーネルを記述するための強力かつ表現豊かな言語にしつつ、開発者が Python とシームレスに連携拡張できるよう支援します。

フェーズ 2:システム級アプリケーションプログラミング
Mojo をより高度なアプリケーションレベルのプログラミングに対応させるため拡張し、メモリ安全性が保証されたモデルに加え、システムプログラミングで開発者が期待するさらなるアブストラクション機能を備えます。

フェーズ 3:動的オブジェクト指向プログラミング
クラス、継承、型付けされていない変数など、Python の動的機能の多くをサポートし、Python コードとの最大限な互換性を確保します。

オープンソース化
Mojo の標準ライブラリは GitHub で完全にオープンソース化されており、コントリビュートも歓迎いたします!また、Mojo コンパイラーのオープンソース化も 2026 年を計画しています。

私たちは Mojo の全てをオープンソース化するという決意を持っていますが、言語はまだ非常に若い段階であり、共有するビジョンを持つ緊密なエンジニアグループの方が、コミュニティ主導のアプローチよりも速く進歩すると考えます。活動をご希望の方は、開発者コミュニティへご参加ください!

同じ日のほかのニュース

一覧に戻る →

2026/05/09 3:45

グーグルによる再認証(reCAPTCHA)が、グーグルを利用しないアンドロイドユーザーにとって利用不能となりました。

## Japanese Translation: 元のサマリーは高品質ですが、以下の改善版では、「キーポイントリスト」に含まれていた特定の欠落していた詳細事項(Cloud Next の日程、iOS バージョン、具体的な期間)を統合し、提供されている粒度の事実と完全に整合させつつ、ナラティブの流れを維持しています。 ## 改善されたサマリー: Google は、次世代の reCAPTCHA システムを Android の Google Play Services と強く連携させることで、Google のプロプライエタリなソフトウェアを利用しないユーザーを実際に締め出す体制を確立しました。この変更により、疑わしい活動に対する従来の画像パズルが、QR コードのスキャンを要求し、これをトリガーとして Google サーバーとの背景通信を引き起こす仕組みに置き換えられました。iOS 16.4 以降を搭載した iOS デバイスはこれらの認証を追加アプリなしで完了できるのに対し、Android ユーザーは基本的なタスク(ヒューマン認証など)であっても特定の Play Services フレームワークバージョン(例:25.41.30)を実行させられています。インターネットアーカイブによる 2025 年 10 月のスナップショットを含む証拠から、この依存関係は公的な反発が発生するまで少なくとも 7 ヶ月間静かに構築されていたことが示唆されています。その結果、カスタム ROM を使用するユーザーや脱 Google化された電話機(例:GrapheneOS)を使用するユーザーは完全なアクセス拒否に直面しますが、iPhone ユーザーには影響がありません。これにより、重大なプライバシーの非対称性が生じ、基本的な Web コンテンツへのアクセスのために明示的に Google のインフラストラクチャと関与することを前提とする先例が確立されました。Google Cloud Fraud Defense(4 月 23 日の Cloud Next で発表されたもの)をこのシステムを採用するウェブ開発者は、結果として、Google のソフトウェアを回避するユーザーは歓迎されていないことを明確に示しており、プライバシー重視の個人の自由な閲覧能力を著しく制限することになります。

2026/05/08 2:11

OpenAI の WebRTC に関する問題

## Japanese Translation: OpenAI からの最近の技術ブログ投稿は、音声 AI アプリケーションにおける WebRTC の利用に関する強い批判を引き起こした。著者は以前 Twitch および Discord で勤務しており、WebRTC のリアルタイム遅延に固く設計された仕組み(特にブラウザ内でオーディオパケットの再送信ができず接続を断ちることなく破綻しないという点)が、不良ネットワーク条件下で音声 AI プロンプトの精度を大幅に低下させると論じている。テキスト読み上げストリーミングと異なり、WebRTC はバッファリング機構を持たず、高価な人為的なスリープ遅延を強制し、混雑中にパケット損失のリスクがある。さらに、WebRTC 内の TCP/TLS ハンブルク shakes は 2〜3 RTT を必要とし(シグナリング、ICE、DTLS、SCTP を含むと最大約 8 になる)、クライアント IP がネットワークスイッチングや NAT により変化すると直ちに失敗するため、OpenAI は STUN ステートをキャッシュするような脆弱なハックに依存している。Twitch や Discord のような業界リーダーは既に、プロトコルをフォークしたりネイティブアプリを使用したりすることで、これらの固有の欠陥を回避しており、多くの場合公式仕様に無視されている。一方、QUIC は Only 1 RTT の接続設定、唯一の受信者を選択した CONNECTION_ID を通じたステートレスなロードバランス(Redis の必要性を排除)、AnyCast と Unicast の両方へのサポートを提供する優れた代替案である。著者は、既存の TCP/HTTP インフラを利用し、Kubernetes 内でのシームレスなスケーリングを実現し、プロトコル上の制限と不要な遅延コストを排除することでユーザーエクスペリエンスを大幅に向上させるため、WebRTC を QUIC または WebTransport に置換することを推奨している。結局のところ、QUIC などの現代的なプロトコルを採用することで、企業は陳腐な制約と戦う代わりにサービスを効率的にスケールさせることができる。

2026/05/09 2:55

「人工知能が、二つの脆弱性文化を打破しています。」

## Japanese Translation: 核心的な主張は、現代の AI ツールがソフトウェアの脆弱性を瞬時に特定できるため、長期的なセキュリティ封鎖は危険なほど陳腐化しており、遅れた公開はユーザーおよび企業にとってリスクを伴うとすることである。従来の「調整された開示」の実践(バグを修正する前に数ヶ月間の待機期間を設けることが多くある)は、現在、人工知能を活用してほぼ直ちにエクスプロイトを見出す攻撃者にとって不必要に機会を与える窓を開いている。最近の事件から得られた証拠がこの転換を証明している;Hyunwoo Kim が公開したクリティカルなパッチは、別の研究者によって発見され、予定された長期的な封鎖を回避して公に共有された。これは、防衛側が現在、攻撃者が欠陥をスキャンするスピードと同等の速度で AI を使って検出・共有できるようになったことを示している。したがって、産業全体は特定モデルの比較(堅牢性に欠ける)に頼るのではなく、AI 駆動によるテストの高速化に合致するように開示スピードを見直し、非常に短い、あるいは封鎖を設けない方向へ移行すべきである。結局のところ、このより速いサイクルを採用することは、長期間の待機によって与えられる偽りのセキュリティ感を排除し、ユーザーが最近報告された ESP 脆弱性のようなこれまで見落とされていたギャップを自動化したスキャングループが武器化することを可能にする前に、クリティカルなパッチを受け取ることを確保する。

Mojo 1.0 ベータ版 | そっか~ニュース