**T‑Ruby** は、型構文を取り入れたバリアントの Ruby です。

2025/12/27 5:27

**T‑Ruby** は、型構文を取り入れたバリアントの Ruby です。

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

要約

Japanese Translation:

T‑Ruby は、オプションの静的型付け構文を追加する新しい Ruby 拡張です。開発者はメソッドにインライン型ヒント(例:

def greet(name: String): String
)で注釈を付けることができます。コンパイル時にこれらのアノテーションは除去され、通常の Ruby コードと IDE や型チェッカー用の対応する
.rbs
ファイルが生成されます。Sorbet などのツールとは異なり、T‑Ruby はソースコードに直接型を埋め込むため、実行時のオーバーヘッドはありません。プロジェクトは Stripe によって作成され、オープンソースかつ実験的であり、コミュニティからの貢献を奨励しています。クイックスタート手順には、gem のインストール(
gem install t-rubytrc --init
)、継続コンパイル用のウォッチモードの有効化、および型定義を提供する
.trb
ファイルの作成が含まれます。T‑Ruby はコンパイル時に安全性を提供しつつ、Ruby の動的な特性を維持し、メンテナーはユーザーからのフィードバックを積極的に求めてツールの改善に努めています。

本文

T‑Rubyとは?

T‑Rubyは、Rubyに追加構文を導入し、コンパイル時にチェックされる静的型付けを提供する拡張です。


信頼できる結果

  • T‑Rubyのコードは標準Rubyへ変換され、RBSファイルが生成されます。
    そのため、RubyとRBSエコシステム全体との互換性が保証されます。

大規模でも安全に

T‑Rubyを使えば、大規模なプロジェクトでも型安全性を確保できます。
スケールアップ時も安心して開発できます。


# hello.trb
def greet(name: String): String
  "Hello, #{name}!"
end

def add(a: Integer, b: Integer): Integer
  a + b
end

コンパイル結果:

# hello.rb
def greet(name)
  "Hello, #{name}!"
end

def add(a, b)
  a + b
end

対応するRBSファイル:

# hello.rbs
def greet: (name: String) -> String
def add: (a: Integer, b: Integer) -> Integer

既存の方法との比較

既存のRuby型付けソリューションと比較し、T‑Rubyがどこで差別化されているかを確認してください。


動作原理

Stripe が開発した Ruby の静的型チェッカーです。

sig
ブロックを使ってメソッドに型を宣言します。

# typed: strict
require 'sorbet-runtime'

class Greeter
  extend T::Sig

  sig { params(name: String).returns(String) }
  def greet(name)
    "Hello, #{name}!"
  end
end

現行アプローチの制約

  • 実行時依存(
    sorbet-runtime
    gem)が必要です。
  • 型は
    sig
    ブロックで別途記述する必要があります。
  • 独自 DSL の学習コストが高いです。

T‑Ruby アプローチ

T‑Ruby はインライン型(TypeScript に似た構文)を採用し、実行時依存は不要です。また標準の RBS ファイルを生成します。

すぐに始める

  1. プロジェクト初期化

    gem install t-ruby
    trc --init
    
  2. ウォッチモード開始

  3. 型付き Ruby を書く

    # src/hello.trb
    def greet(name: String): String
      "Hello, #{name}!"
    end
    

既存ツールとのシームレスな連携が可能です。


旅に参加しよう

T‑Ruby はオープンソースプロジェクトです。あなたの貢献は大きな影響を与えます。
まだ実験段階で、コアコンパイラは動作しますが改善点は多くあります。

フィードバックや提案はいつでも歓迎です!

同じ日のほかのニュース

一覧に戻る →

2025/12/27 2:13

**原文:** 「How uv got so fast」 **改訂(整理済み):** 「How did UV get so fast?」 **日本語訳:** 「UVはなぜそんなに速くなるのですか?」

## Japanese Translation: ``` ## Summary uv は Rust のみを利用するよりも、モダンな設計選択とパッケージング標準を採用しているため、pip より優れています。不要なオーバーヘッドを伴うレガシー機能(.egg サポート、pip.conf の読み込み、デフォルトのバイトコードコンパイル、system‑Python インストールの許可、厳格な仕様準拠、requires‑python の上限無視、複数インデックスが設定されている場合に最初のインデックスを選択)を削除することで、uv は不要なコードパスを排除します。さらに、HTTP レンジリクエストによる部分的な wheel ダウンロード、並列ダウンロード、ハードリンクまたはコピーオンライト可能なグローバルキャッシュ、ネイティブ TOML パース、および効率的な PubGrub 依存関係解決器を使用してインストール速度を加速させています。Rust は rkyv によるゼロコピー逆シリアライズ、ロックフリーの同時実行データ構造、単一静的バイナリであるためのインタプリタ起動コストゼロ、および高速比較/ハッシュのためのコンパクトな 64‑ビットバージョン表現を提供します。 Python のパッケージングは、setup.py スクリプトがインストール時に実行される必要があったため遅くていました。PEP 518–658 の導入によりメタデータが宣言的フォーマットへ移行し、PyPI 上の Simple API(2023年5月以降利用可能)が有効になりました。uv は 2024 年2月にリリースされ、初日からこれら新しい標準を活用しています。 影響は大きく、開発者は依存関係をより迅速にインストールでき、軽量な環境を構築できます。これは、Python エコシステム全体で最新のパッケージング標準を完全にサポートするツールへの広範な移行を促進する可能性があります。 ```

2025/12/23 23:51

2025年の最高アイテムとおすすめ

## Japanese Translation: ## Summary 2025年、著者はハンス・ボーマーの再帰的実数計算法や日本漫画カフェドキュメンタリー『マンブー』などの注目すべきIT・テック発見で生産性の高い一年を達成しました。彼はClojureのcore.asyncとJDK 21バーチャルスレッド、結合型関数言語Juxt、WordPressからMarkdown/org-mode静的サイトパイプラインへの移行についての技術ブログを複数公開しました。また、ブラジルで開催されたClojure/conjとClojure South Brazilという二つの主要なClojureカンファレンスに参加し、コミュニティの影響力を強調しました。 色分けされた月次マトリクスを備えたスプレッドシートベースのタスクトラッカーが導入され、著者のミニマリストでシステム思考的アプローチを反映し、専用プランナーよりもスプレッドシートを好む姿勢を示しました。プログラミングはClojure(16年にわたるフルタイム作業)に集中しつつ、Joy、Clojerl、Scittle、Javaによるコンパイラ開発も探索しました。 2025年にはゲーム・フィクション・システム思考に関するエッセイなど非技術的なアウトプットが増加し、2026年にはさらに多くのフィクションとカードゲームルールを企画しています。著者の「人生を変えるテクノロジー」主張はZettelkastenメモ取り法の採用に集約され、新しい非技術的投稿が可能になりました。大規模言語モデル(LLM)との広範な実験は限定的な実践的利益しか生まれず、問題設定とソクラテス対話における欠点を批判しています。 また、本年には好きな本(例:『オシリスの目』、『ナルキッサスとゴールドマン』)、音楽、映画、ポッドキャスト、テーブルトップゲームの厳選リストも含まれました。2026年を見据えて、著者は非技術的執筆を増やし、カードゲームルールを発表し、Clojure 1.13を進化させ、物理アーティファクトを作成し、未翻訳の本を読み、Goodnotes、Antinet、Booxなどのツールを使ってテックラダーを洗練する予定です。すべてはミニマリストでシステム志向のワークフローを維持しながら行われます。 この要約は元のリストからすべての主要ポイントを取り込み、推測を避け、明確な主旨を提示し、曖昧または混乱する表現を排除しています。

2025/12/27 8:09

「テキストに常に賭ける」

## Japanese Translation: ## Summary テキストは、これまでに発明された中で最も強力で多用途かつ信頼性の高い通信技術であり、可能な限り常に選択すべきです。約5,000年間安定した媒体として存在し、その長寿を示す耐久的な遺物が残っています。テキストは比類のない柔軟性を提供します:正確な意味を伝えることができる一方で、暗黙の文脈も許容するため、文学・歴史・哲学・数学・論理学・プログラミング・工学・注釈学・ファンフィクションに不可欠です。他のメディアと比べてテキストは格段に効率的であり(例:5 kB のブログ投稿がより大きな画像と同じ情報量を持つ)、電信・電子メール・チャット・ウェブなど後続技術を可能にしました。テキストは一対一、一対多、多対多のあらゆる社会的相互作用をサポートし、検索性・索引化・翻訳・非同期性・アルゴリズム処理(例:差分検出や要約)が可能です。また、多者編集、分岐会話、注釈付け、引用、構造化応答、およびレビューも許容します。著者は、テキストが通信・データ保存・アルゴリズム処理の基盤メディアとして残ると信じており、その幅広さ・深さ・スケーラビリティに匹敵するフォーマットは他に存在しないと述べています