
2026/01/07 20:59
**Elo – JavaScript、Ruby、およびSQLにコンパイルされるデータ表現言語**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Eloは、ノーコードツールを使用する非技術者向けに設計された軽量で携帯可能なデータ表現言語です。すべてのスクリプトが同一の方法でJavaScript、Ruby、およびSQLにコンパイルされるため、ブラウザ、サーバー、またはデータベース上で同じロジックをコードを書き換えることなく実行できます。
Elo のすべての値は不変です。等価演算子は一つだけ(
==)で、可変オブジェクトや new は存在せず、組み込みスキーマが自動的に入力を検証し型変換します(例:Int(c | c > 0))。関数パイプライン演算子(|>、filter、map、reduce)とラムダ構文により、開発者は再利用可能なデータパイプラインを構築できます。また、ガード構造(guard positive: _.age > 0)は実行時の検証と安全な推論を提供します。
Elo は日付・時間・期間をファーストクラスでサポートし、明確なリテラル表記(例:
+ P30D)があります。タイムリーな式や基本的なプログラミング概念を学ぶためのプレイグラウンドも用意されています。
今後のリリースでは、Bmg フレームワークを介して関係代数機能(クエリ、結合、集計)を追加し、すべてのターゲット言語で統一的にコンパイルできるようにします。データ操作ロジックを統一することで、Elo はノーコードプラットフォームの開発時間とバグを削減し、ウェブフロントエンド、バックエンドサービス、およびデータベースの統合をよりシームレスに行えるよう支援します。
この言語は Bernard Lambeau(設計者・監督)と Claude Code(AI共同設計者・実装者)によって作成されました。
本文
シンプルで設計が優れ、携帯性と安全性を兼ね備えたデータ表現言語
Elo は JavaScript、Ruby、および SQL にコンパイルされます。
デザインの「シンプルさ」
- 純粋なデータ言語:すべてが値であり、参照セマンティクスや
などはありません。new - 一つの等価演算子だけで動作します。
- 非技術者にも安全に使えるよう設計されています。
3× 真のポータブル
一つの式が意味的に同等な JavaScript、Ruby、SQL にコンパイルされます。
フロントエンド・バックエンド・データベースがすべて同じデータ言語で話し合います。
実際のデータ向けに構築
第一級の日時・時間・期間を直感的な構文で扱えるよう設計されています。
入力を検証し型変換するスキーマも備えており、ビジネスロジックはどこでも動作します。
Elo の特徴
実世界のデータ問題に対処するために、Elo はシンプルな構文で強力な機能を提供します。
let signup = D2024-06-15 in TODAY > signup + P30D
第一級日時・期間
日付・時間・期間はネイティブ型で、直感的なリテラル構文が使えます。
30 日後を求めるときは
+ P30D と書くだけです。パースや変換、ライブラリのインポートは不要。
let Event = { name: String, date: Datetime, capacity: Int(c | c > 0) } in _ |> Event
機能するデータスキーマ
信頼できない入力を安全で検証済みのデータに変換します。Elo はすべてを強制的にチェックし、コードは常に安心して動作します。
_ |> filter(i ~> i.price > 100) |> map(i ~> i.price * 1.21) |> reduce(0, fn(a, b ~> a + b))
関数型・ポータブルパイプライン演算子
ラムダと豊富な標準ライブラリを備えており、一度書けば JavaScript、Ruby、SQL にコンパイルされます。すべての言語で同じ意味が保証されます。
guard positive: _.age > 0, adult: _.age >= 18 in 'Welcome!'
安全な推論のためのガード
実行時に仮定を検証するラベル付きガードを使い、ロジックを明示化し、無効データで即座に失敗させます。コードが保証することを自信を持って推論できます。
orders |> restrict(o ~> o.status == 'pending') |> extend({total: o ~> o.qty * o.price}) |> project([.customer, .total])
近日公開:関係代数
Tutorial D に触発され、Bmg の力を借りて Elo はデータパイプラインに真の関係代数をもたらします。クエリ・結合・集約がポータブルなセマンティクスで行えます。
一つの式、三つのターゲット
Elo2 ^ 10 > 1000 && TODAY >= SOY
| 言語 | コード |
|---|---|
| JavaScript | |
| Ruby | |
| SQL | |
Elo を試してみる
プレイグラウンドで temporal 表現を書き始めて、簡単に動くことを体感してください。
[Playground を開く]
📚 プログラミング初心者の方へ
Elo は「怖い専門用語」や「混乱する概念」を排除し、シンプルなアイデアだけを明確に説明します。自分のペースで数値・文字列・日付・判断などを学べます。
[Learning を始める →]
開発者紹介
| 名前 | 役割 |
|---|---|
| Bernard Lambeau | デザイナー&監督(Enspirit で25年間言語設計) |
| Claude Code | AI 共創者・実装担当(コード、テスト、ドキュメント全てを担当) |
[プロジェクトの詳細を見る →]