Java 26 が登場しました。

2026/03/18 3:44

Java 26 が登場しました。

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

要約

Japanese Translation:

概要:
Java 26 は、パフォーマンス、安全性、および開発者のエルゴノミクスを向上させつつ、Project Valhalla の基盤を築くことに焦点を当てた一連の拡張機能を提供します。以下の10件のJEPが含まれます:

  • JEP 516 – Ahead‑of‑Time Object Caching(GC 依存しない論理インデックスを追加;
    -XX:+AOTStreamableObjects
    で強制可能)。
  • JEP 522 – G1 GC Improvements(第2カードテーブル、5–15% のスループット向上、約0.2% のヒープオーバーヘッド)。
  • JEP 517 – HTTP/3 Support in HttpClient (
    HttpClient.Version.HTTP_3
    を明示的に指定、4 つのネゴシエーション戦略)。
  • JEP 524 – PEM Encoder/Decoder(PEMEncoder/PEMDecoder API、オプションで暗号化/復号化をサポート)。
  • JEP 525 – Structured Concurrency (
    StructuredTaskScope
    、シャットダウンポリシー、新しい Joiner メソッド)。
  • JEP 526 – LazyConstant (
    LazyConstant<T>
    と遅延コレクションファクトリー)。
  • JEP 529 – Vector API (Eleventh Incubator)(x64/AArch64 上で SIMD をサポート、
    FloatVector
    DoubleVector
    など)。
  • JEP 530 – Pattern Matching for Primitives (
    switch
    instanceof
    、レコードパターンにプリミティブを拡張し、支配チェックを厳密化)。
  • JEP 500 – Final‑Field Mutation Deprecation(警告を出す;将来のリリースでは例外をスロー)。
  • JEP 504 – Applet API Removal (
    java.applet
    パッケージ全体を削除)。
    このリリースは、PEM ハンドリング、Structured Concurrency、Lazy Constants、Vector API、および switch 文のパターンマッチングといった機能もプレビューしています。
    影響: 開発者は GC スループットの向上、HTTP/3 ネットワーキング、安全なコーディング実践(最終フィールドのミューテーション禁止)、高性能ベクトル演算から恩恵を受けることができます。エンタープライズでは、アプレットや unsafe final フィールドのミューテーションに依存するコードを更新し、将来のリリースとの互換性を保つ必要があります。これらの JEP が築いた基盤は、Java 26 を Project Valhalla の価値型機能への堅牢な土台として位置づけます。

本文

Java 26 – 主な機能ハイライト


JEP概要

JEPタイトルステータスプロジェクト機能種別Java 25以降の変更
500Finalを本当にFinalにする準備コアライブラリ廃止警告
504Applet APIの削除クライアントライブラリ廃止廃止
516任意GCでのAOTオブジェクトキャッシュHotSpotパフォーマンス新機能
517HTTP Client APIへのHTTP/3対応コアライブラリ拡張新機能
522G1 GC:同期を減らしてスループット向上HotSpotパフォーマンス新機能
524暗号オブジェクトのPEMエンコーディングセキュリティライブラリセキュリティ小規模
525Structured ConcurrencyLoom並行性小規模
526Lazy Constantsコアライブラリ新API大規模
529Vector APIPanama新API-
530パターン、instanceof、switchでのプリミティブ型Amber言語小規模

新機能

HotSpot

JEP 516 – 任意GCでのAOTオブジェクトキャッシュ

  • 問題点:キャッシュされたオブジェクトは GC 固有の形式で保持され、同じ GC でしか再利用できませんでした。
  • 解決策:メモリアドレスではなく 論理インデックス を使ってキャッシュします。ロード時にインデックスを実際のアドレスへ変換し、ZGC・Shenandoah 等任意 GC で利用可能です。
  • 使用方法
    • -XX:+UseCompressedOops
      か 32 GB 超のヒープでトレーニング → 新しい GC 非依存形式でキャッシュ。
    • 強制的に新形式を使う場合:
      -XX:+AOTStreamableObjects

JEP 522 – G1 GC:同期を減らしてスループット向上

  • 問題点:G1 は最適化スレッドとアプリケーションスレッドを単一のカードテーブルで同期させ、スループットを低下させていました。
  • 解決策:2 つのカードテーブルを導入し、アプリケーションスレッドは同期なしで1つを書き込み、最適化スレッドはもう1つを処理します。ポーズ時間目標が逸脱する恐れがある場合にテーブルを原子操作で交換。
  • 効果:頻繁な参照更新のワークロードでは 5–15 % のスループット向上、x64 で最大 5 % 追加。

コアライブラリ

JEP 517 – HTTP Client APIへのHTTP/3対応

  • 概要
    HttpClient.Version.HTTP_3
    HttpRequest.version(HttpClient.Version.HTTP_3)
    を追加。
  • ネゴシエーション:タイムアウト、レース、ディスカバリ、フォースの 4 戦略で HTTP 2 または 1.1 へのフォールバックを決定。
  • 結果:サーバが QUIC ベースの HTTP/3 を提供している場合に透明にサポート。

プレビュー機能

JEP 524 – 暗号オブジェクトのPEMエンコーディング

  • 新 API (
    PEMEncoder
    ,
    PEMDecoder
    ,
    PEM
    ) でキーと証明書を PEM 形式でエンコード/デコード。暗号化・復号・鍵ペア処理もサポート。

JEP 525 – Structured Concurrency(第6回プレビュー)

  • StructuredTaskScope
    がスコープ付き実行を提供し、失敗時に未完了タスクを自動キャンセル。シャットダウンポリシーは
    Joiner
    で制御。

JEP 526 – Lazy Constants(第2回プレビュー)

  • LazyConstant<T>
    は初アクセス時に一度だけ計算される値を保持。重いオブジェクト生成を遅延させ、起動時間を短縮しつつイミュータビリティ保証を維持。

JEP 529 – Vector API(第11回インキュベーター)

  • SIMD で高速化されたベクター演算 (
    FloatVector
    等) とゼロコピーの配列変換。対象領域は ML、線形代数、暗号、金融など多岐にわたる。

JEP 530 – パターン、instanceof、switch におけるプリミティブ型(第4回プレビュー)

  • instanceof
    switch
    でプリミティブ型を扱えるようになり、byte/short/int/... のガード付きタイプパターンチェックが可能。プリミティブに対する支配ルールも改善。

廃止

JEP機能理由
500深いリフレクションでの Final フィールド変更安全性を警告し、将来は明示的に有効化されない限り例外を投げる。
504Applet API (
java.applet.*
,
javax.swing.JApplet
等)
必要なくなったため。セキュリティ・互換性の懸念で完全に削除。

最後に

Java 26 は GC 非依存キャッシュ、G1 のスループット向上、HTTP/3 サポート、Lazy Constants、Structured Concurrency など焦点を絞った改善を提供します。また、将来の機能(Project Valhalla)への土台も整えつつ、不要なレガシー API を整理しています。

Happy coding!

同じ日のほかのニュース

一覧に戻る →

2026/03/18 3:59

**スラグの十年**

## 日本語訳 --- ## 要約 Slug アルゴリズムのライブラリは十周年を迎え、パブリックドメインに移行しました。これにより開発者はライセンス費用から解放され、強力な GPU‑direct テキストレンダリングが提供されます。2016 年秋に開発され、2017 年中頃に *JCGT* に論文が掲載され、その直後に Slug ライブラリのバージョン 1.0 が公開されました。 **主要な技術的進歩** - **ダイナミック拡張(Dynamic Dilation)**:MVP 行列とビューポート寸法を用いて頂点シェーダで半ピクセル外側に自動拡張を計算します(式 \(d = \frac{s^3t + s^2\sqrt{u^2+v^2}}{u^2+v^2-s^2t^2}\))。これにより不要なパディングが排除され、エッジは鮮明に保たれます。 - **バンド分割最適化の削除**:ピクセルシェーダを簡素化し、バンドデータサイズを 4 つの 16‑bit コンポーネントから 2 に半減します。 - **アダプティブスーパーサンプリングの廃止**:ダイナミック拡張がエイリアシングを処理するため、追加コードはほぼ読み取り可能な文字だけに効果がありました。 - **絵文字レンダリングの簡素化**:レイヤーごとのループから独立したグリフレイヤリングへ切り替え、頂点数オーバーヘッドを削減しました。 これらの変更は、2016 年代のコンソールでの頑健性と高速化、高品質なアンチエイリアス出力(任意のスケールやパースペクティブ)を実現し、新しい GPU への保守性も向上させることを目的としていました。 **業界採用** Slug は C4 Engine のテキストエンジン、後に Radical Pie 方程式エディタで活用されました。Activision、Blizzard、id Software、2K Games、Ubisoft、Warner Brothers、Insomniac、Zenimax などの主要ゲームスタジオや、Adobe などの非ゲーム企業もライブラリを使用しています。 **パブリックドメイン状態** 特許 #10 373 352(2019 年に付与)は 2026 年 3 月 17 日からパブリックドメインへ譲渡されました。USPTO に Form SB/43 が提出され、料金が支払われたため、すべてのコードが自由に利用可能です。参照用頂点シェーダとピクセルシェーダは GitHub 上で MIT ライセンスされています。 **影響** 開発者は Slug の GPU‑direct レンダリングとダイナミック拡張を、ゲーム、アプリケーション、あるいは任意のグラフィックスソフトウェアにライセンス料なしで統合できます。簡素化されたシェーダは開発時間とリソース消費を削減し、パブリックドメイン公開によりコミュニティによる貢献が促進され、技術のさらなる洗練が期待されます。 ---

2026/03/18 5:23

**仕事を成し遂げる:メタプロンプティング・コンテキストエンジニアリング・スペック駆動型開発システム**

## 日本語訳: **GSD(“Get Shit Done”)** は、Claude Code、OpenCode、Gemini CLI、Codex、Copilot、および Antigravity など複数の AI コーディングランタイムを統合する軽量メタプロンプトフレームワークであり、コンテキストロット(文脈劣化)を緩和し、信頼性の高いコード生成を実現します。 インストールは `npx get-shit-done-cc@latest` で行い、ランタイムごとにグローバルまたはローカル設定(例:`--claude --global`、`--opencode --local` 等)を選択します。 コアワークフローは一連のコマンドによって駆動されます: - `/gsd:new-project` (プロジェクトスケルトン作成) - `/gsd:discuss-phase`、`/gsd:plan‑phase`、`/gsd:execute‑phase`、`/gsd:verify‑work`、`/gsd:complete‑milestone`、`/gsd:new‑milestone` - `/gsd:quick`(アドホックタスク)でオプションフラグ `--discuss`、`--research`、`--full` を付与可能。 各フェーズは構造化ファイル(`PROJECT.md`、`REQUIREMENTS.md`、`ROADMAP.md`、`STATE.md`)と XML 形式の計画を生成し、Git に対してアトミックにコミットします。コミットは `feat(08‑02): add email confirmation flow` のようなパターンに従い、正確な bisect と明瞭な履歴が保証されます。 GSD は研究者・計画者・実行者・検証者という 4 人のエージェントを調整し、メインコンテキストウィンドウ(≈30–40 %)を新鮮に保ちつつ数千行のコードを生成します。 設定は `.planning/config.json` に格納され、ユーザーは `mode`、`granularity`、`workflow.research`、`git.branching_strategy` およびモデルプロファイル(`quality`、`balanced`、`budget`)を指定できます。また、`.env` やシークレット・キー等の機密ファイルを保護する deny リストも用意されています。 本プロジェクトは MIT ライセンスで公開されており、OpenCode、Gemini CLI、および Codex 用のコミュニティポートが存在します。Amazon、Google、Shopify、Webflow のエンジニアに信頼されており、最小限の “ロールプレイ” オーバーヘッドを重視しています―数個のシンプルなコマンドで複雑なワークフロー管理を抽象化します。 今後のアップデートではエージェントオーケストレーションの拡張、クイックモードフラグの洗練、および設定オプションの強化を目指しています。ワークフローを簡素化しツールング・オーバーヘッドを削減することで、GSD は個人開発者および企業にとって開発サイクルの高速化とコード品質の向上を実現できます。

2026/03/18 3:37

Python 3.15 のJIT(Just‑In‑Timeコンパイラ)が再び順調に進んでいます。

## Japanese Translation: (すべての主要ポイントを取り入れています):** CPython 3.15/3.16 JIT プロジェクトは、初期段階でパフォーマンスマイルストーンを達成しました。macOS AArch64 上では、JIT が tail‑calling インタプリタより約11〜12 %高速であり、x86_64 Linux では標準インタプリタを約5〜6 %上回っています。また、パフォーマンステストは幅広い結果を示しています。`unpack_sequence` マイクロベンチマークを除けば、約20 %の遅延から100 %以上の速度向上まであります。 主な技術的進歩には次が含まれます: - **トレース記録**:単一の「tracing」命令とデュアルディスパッチテーブルを使用し、インタプリタの肥大化を削減。Linux 上では約6 %遅延から約1〜2 %高速に改善しました。 - **参照カウントの除去**:分岐除去最適化で、命令ごとのオーバーヘッドを削減し、貢献者にとって有益な学習機会を提供します。 JIT チームは 2025 年に主要スポンサーを失いましたが、コミュニティの監督によって努力が継続しています。コア貢献者には Savannah Ostrowski、Mark Shannon、Diego Russo、Brandt Bucher、Hai Zhu、Zheaoli、Tomas Roun、Reiden Ong、および Donghee Na が含まれます。中間レベルの貢献者数は 2 人から 4 人に増加しました。 Savannah の 4 台のマシンで毎日 JIT を実行し、パフォーマンスフィードバックを提供し、回帰を検出し、新しい最適化を検証します。スプリント計画(Cambridge コア スプリント)は、CPython 3.15 で 5 %高速な JIT、3.16 では 10 %、フリースレッディングサポートの追加、および JIT の各段階で活躍するメンテナーを 2 人ずつ確保することを目指しています。 これらの進歩により CPython は競争力を維持し、より広いコミュニティ参加を促進し、フリースレッディングなど将来の機能への土台を築いています。

Java 26 が登場しました。 | そっか~ニュース