Show HN: Wyzer プログラミング言語

2026/08/07 21:28

Show HN: Wyzer プログラミング言語

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

要約

Japanese Translation:

Wyzer は、Choreographic Programming と Perceus メモリモデルを統合して分散安全性を実現する静的型付け・コンパイルプログラミング言語です。Rust 並みのメモリ安全性と並列性の保証を目標としながら、所有則の複雑さやガベージコレクションによるオーバーヘッドを回避します。Wyzer では、実行前に全スレッドおよびプロセス向けにコードを生成するための統一された「ネットワークルール」を採用し、事前に安全性を検証して分散システムにおけるデッドロックを防ぎます。安全性は、隠蔽された例外や重い非同期パターンではなく、明示的な

Result<T, E>
型とエラー処理用の
match
表現を通じて強制されます。変数はデフォルトで不変(
let
)であり、可変性には
var
、コンパイル時定数には
const
が使用されます。メモリ管理は Koka と Lean 4 に着想を得た参照カウント技術に依存し、値が単一の当事者によって所有されている場合に機能風な更新をサポートします。言語は標準的な制御フロー(括弧なしの
if
while
for
)を提供し、構造体フィールドへの直接アクセスを許可します。現在早期の研究段階で未解決の技術的課題が残っており、Rust の安全性保証を学習曲線やガベージコレクション言語に見られる予測不可能さの問題なしに提供することを目的としています。主要なリソースには、導入、変数、制御フロー、関数、構造体、メモリモデルを扱う公式ドキュメントが含まれ、貢献者は
RESEARCH.md
を参照すべきです。コミットメッセージの生成、研究の統合、ブランド/ロゴデザインには AI アシスタンスが使用されました。

本文

Wyzer: シンプルで分散安全なプログラミング言語

「簡素さは権威の欠如を意味するものではなく、権威そのものに対する虚飾のなさです。」— アティクシ・シャルマ

Wyzer は、振る舞いプログラミングと Perceus メモリモデルを採用した、静的型付けかつコンパイルされるリソース指向型のプログラミング言語です。

背景と課題

Rust がプロセス内での安全性を保証する一方で、以下の課題にはまだ対処していません:

  • 分散デッドロック
  • プロトコルの不一致
  • クロス・サービス間の正当性(正しさを保証すること)

これらの問題を解決するために、Wyzer は**「振る舞いプログラミング」**という概念を導入しました。これは、複雑なネットワーク問題に対処する少数の真剣な試みの一つです。

貢献を歓迎しています。


公式ドキュメント

Wyzer のプログラミング手法を詳しく学ぶには、以下のセクションを確認してください:


Wyzer プログラミングの概要

Wyzer は簡素で、明確であり、かつ読みやすく設計されています。以下はコードを書くための概要です。

1. 変数と型

すべての要素には明確な型が付けられ、変数はデフォルトとして**不変(変更できない)**です。

  • 変数を変更したい場合は
    let
    の代わりに
    var
    を使用してください。
  • コンパイル時定数には
    const
    を使用します。
fn main() {
    const MAX: u32 = 100;  // コンパイル時定数
    let x: u32 = 10;       // 変更できない
    var y: u32 = 20;       // 変更可能
    
    y = y + x;
    std::io::println(y);
}

2. 構造体とデータ

カスタムデータ構造を定義し、そのフィールドに直接アクセスできます。

struct Point {
    x: u32,
    y: u32
}

fn main() {
    let p: Point = Point { x: 10, y: 20 };
    std::io::println(p.x);
}

3. コントロールフロー

標準的な

if/else
while
、および
for
ループをサポートしています。ループでは条件を囲む括弧は不要です。

fn main() {
    let mut i: u32 = 0;
    while i < 3 {
        std::io::println(i);
        i = i + 1;
    }
}

4. エラー処理と Match

エラーは隠されません。失敗する可能性がある関数は

Result<T, E>
を返します。
match
式を使用して、成功(
Ok
)およびエラー(
Err
)の両方を安全に処理します。注意
match
は式なので、単独で文として使用する場合に末尾にセミコロンが必要です!

fn main() {
    let result: Result<u32, str> = Ok(42);
    
    match (result) {
        Ok(value) => std::io::println(value),
        Err(err_msg) => std::io::println(0)
    };
}

FAQ:概要と革新性

数学的な知識なしに簡単に理解できるガイドです。

1. Wyzer とは?(1 つの段落で)

Wyzer は「リソースの所有権が誰にあるかが明確でないことが、メモリバグやデッドロックなどの原因である」という一つのアイデアに基づいています。Rust がメモリ管理、並行処理、ネットワークという 3 つの異なるアプローチを採用するのに対し、Wyzer はこれらすべてに適用される単一の所有権ルールを採用しています。

2. なぜ新しい言語を作るのでしょうか?

既存のオプションの良い点を引き継ぎつつ、何が素晴らしいかに基づいて設計されました。

  • Rust: ゴーカコレクションを使わずに安全なメモリ管理が可能です。しかし、学習曲線が急勾配で、一般的なコード構造を書くのが困難です。
  • Go, Java, C#, Python: ゴーカコレクターを使用するため使いやすさは高いですが、速度が遅く予測がしにくいです。リアルタイムシステムには適していません。
  • ネットワークプログラミング: 現在では手作業で行われることが多く、プログラム同士が互いに正しく通信することを願う必要があります(失敗するとバグ)。

Wyzer の目標: Rust の安全性を維持しつつ学習のハードルを下げることであり、その単一のルールを使ってネットワークプログラムをも安全にすることです。

3. 実際の新規性は何か?

多くの構成要素は既にあるもので、新しくなのはそれらを組み合わせることです。

  • Perceus リファレンスカウント: Rust の複雑さなしで高速なメモリ管理を実現(Koka と Lean 4 から借用)。
  • 振る舞いプログラミング: 全てのコンピュータ用のコードを生成する単一のネットワークルールを作成(学術研究から借用)。
  • 適用範囲の拡大: このアイデアをネットワークだけでなく、スレッドや中断(インタラプト)にも適用。同じルールでメモリの安全性、中断の安全性、そしてネットワークの安全性を保証します。

メリット: メモリ、スレッド、ネットワークを安全に管理するために学ぶべきルールは一つだけです。

4. コアな設計原則

  • 一つの書き方: 同じものを記述する二通りの方法があれば、片方を削除します。
  • 魔法は隠さないが、清潔に保つ: 重要なことはコード内に可視化されますが、余分なボイラープレートは不要です。
  • コンパイラに任せるが、混乱を避ける: コンパライラに仕組みを理解させますが、複雑になりすぎた場合は明確なルールが必要です。
  • 未完成であることを正直に伝える: 未解決の問題を明確に示します。

5. コアの意味論(平易な言葉で)

  • メモリ(第 5 章): データを変更しない関数的コードを書きます。データの所有者が一人だけの場合、コンパイラが直接メモリを更新します。ゴーカコレクションやライフタイムルールなしで C と同等の高速性を得られます。
  • 所有権が全て(第 3, 6, 7 章): リソースを使用した後には二度と使用できないというルール。これはメモリ、ネットワークメッセージ、ハードウェア中断に適用されます。
  • 安全なネットワーク(第 6 章): 通常の関数を書いて型で所有権を示します。コンパイラがネットワークルールを自動的に導出し、検証してくれます。実行前にデッドロックやメッセージの損失を検出します。
  • 非隠れたコントロールフロー:
    async/await
    や分割などの暗黙的な処理はありません。エラーは標準的な型として返され、隠された例外として扱われません。

6. よくある質問

質問回答概要
これは Rust を複雑にしているだけではありませんか?いいえ。安全性を維持しつつ学習曲線を下げており、ネットワーク機能を実装しています。
振る舞いプログラミングはすでに解かれた研究分野ではありませんか?数学的には成立していますが、実用的な言語での使用は稀です。汎用言語へ持ち込むことを目指しています。
なぜ独自の方法を使うのですか?特定の問題を解決するツールを使わずに、単一のルールでメモリ、スレッド、ネットワークのすべてを同時に解決できるかを試みています。
これは本番環境で使えますか?正直に申し上げますと、早期の研究段階です。いくつかの大きな問題はまだ未解決です。
一言で言うと何ですか?メモリ、スレッド、ネットワークのための単一の所有権ルール。ゴーカコレクションなし、複雑な Borrow Checker なし、そしてネットワークエラーなし。

AI による支援

本プロジェクトにおける AI の活用状況:

  • コミットメッセージの作成に AI を使用。
  • 研究(振る舞いプログラミングや Perceus メモリモデルの詳細な理解)に AI を使用。
  • ブランドデザインとロゴ設計に AI を使用しました(素晴らしいアイデアへの感謝)。

顕著な例

  • donut.wyz:有名なトーラス(ドーナツ)を Wyzer で再実装したプロジェクトです。

同じ日のほかのニュース

一覧に戻る →

2026/08/08 2:56

DeepSeek V4 フラッシュ 7 月 31 日

## Japanese Translation: ARC プライズ 2026 コンテストは開催中です。コンテストの最新情報を受け取るため、公式更新への登録を開始することで、参加者は情報を入手することができます。本サービスは、無断でスパムが送信されないことを保証しており、コンテストに関連する情報のみを送信します。参加者はいつでも登録を解除でき、組織側とのコミュニケーション経路について完全なコントロールと透明性のある、不快でない連絡手段を確保できます。

2026/08/08 3:01

屈辱の集会所

## Japanese Translation: 「恥辱の議場」プロジェクト(クリスチャン・ドマスの主導)は、速度最適化ではなく単一指令の絶対的なフローア(最小値)を記録することを目的としています。最も高速に計測された指令はインテル Core i7 での `nop`(1 サイクル)ですが、極端な遅延は `vmovdqu ymm` 命令(約 1.39 秒)や AMD Ryzen チップ上の `wrmsr` 命令(約 0.92 秒)に見られます。勝者の高遅延戦略には、GPU レジスタへのアクセスのために PCIe ファブリックを飽和させるなどの複雑な回避策や、微コードアシストをトリガーするために NaN などの特殊値の使用が含まれます。注目されるエントリーには、仕様違反の非対齐読み込み命令やネスト深さ最大級の `enter` 命令があります。この競技は厳格な規則に従っており、ファクトリーストックのハードウェア上で単一かつ割り込み不能な指令の実行を要求します。将来のプロジェクトでは、インテル Sapphire Rapids でさらなる長遅延(推定で 1 トリリオンサイクル)を探る可能性がありますが、ARM と RISC-V のリーダーボードは引き続き観測中です。これらの発見は深層アーキテクチャ的不効率を明らかにし、開発者が理論的な性能限界と、ハードウェアの欠陥や微コード振る舞いによる実際の物理的遅延を区別するのに役立ちます。

2026/08/08 3:51

古の図書館 – ギリシア語・ラテン語のテクストが 1,060 点、単語をタップして解析する

## Japanese Translation: このデジタルプラットフォームは、古典正典のための完全な解析リーダーを提供し、ラテン語およびギリシャ語の両方で 140 名の著者による 1,060 の基礎的作品へのアクセスを可能にします。コレクションには、叙事詩(ホーマー)、哲学(プラトン、キケロ)、歴史(タチトゥス)、伝記(サッルスティウス、リヴィウス)、弁論(キケロ、カエサル)、書簡(オラティウス、セネカ)といったジャンルにわたる 293 のラテン語作品が含まれ、さらに叙事詩(ホーマー、ヘシオドス)、悲劇と喜劇(ソフォクレース、アリストファネス)、歴史(ヘロドトス、トゥキディデス)、哲学(プラトン、アリストテレス)、伝記(プルートルコス)、地理学(ストラボン、パウサニアス)、医学(ガレン、ヒポクラテス)、数学・科学(ユークリッド、プトレマイオス)を網羅する 767 のギリシャ語作品が含まれています。また、聖書テキスト、初期キリスト教の著作、参考用文法書も含まれています。コア機能には統合された辞典エンジンがあり、あらゆる単語をクリックすると、すぐにその基本形・形態論学および完全な辞書項目が表示され、ラテン語の場合は Lewis & Short、ギリシャ語の場合は Liddell-Scott-Jones を経由します。このシームレスな相互作用により、物理的な書籍を相互参照する必要がなくなり、古代の知識の包括的なライブラリがユーザーの手のひらにあります。したがって、学者や学生は、デジタルインタフェースから離れることなく、形態論学的詳細の効率的な探索を行いながら、文化財を保護しつつ、現代教育および厳密な研究のために entire canon を跨いで直接テキスト内で深い言語分析を実行することができます。