概要
- Red は、REBOLに強く影響を受けた 次世代プログラミング言語。
- ヒューマンフレンドリーな構文 と 多様なプログラミングパラダイム を提供。
- 自己記述的 かつ 全スタック対応 の言語設計が特徴。
- 単一実行ファイル でクロスプラットフォームに対応し、依存関係が不要。
- システムプログラミングから高水準スクリプトまで 幅広く対応可能。
Red: 次世代フルスタックプログラミング言語の特徴
- REBOL に強く影響を受けた設計思想を採用すること
- 人間に優しい構文 を重視し、直感的なコード記述を実現すること
- ホモアイコニック(自己記述的) な言語・データフォーマットを持つこと
- 関数型・命令型・リアクティブ・シンボリック など複数のパラダイムを統合すること
- プロトタイプベースオブジェクト をサポートすること
- マルチタイピング による柔軟な型システムを実現すること
- 強力なパターンマッチング 機能を組み込むこと
- マクロシステム を備えること
- 50種類以上の組み込みデータ型 を提供すること
- 静的コンパイル・JITコンパイル(将来実装予定) によるネイティブコード生成を可能にすること
- 正しいクロスコンパイル を実現し、異なるプラットフォーム間でのバイナリ生成を容易にすること
- 1MB未満の実行ファイル 生成、外部依存なしで動作すること
- アクターや並列コレクション(将来実装予定) による並行・並列処理の強力なサポート
- Red/System DSL による低レベルシステムプログラミング機能を持つこと
- PEGパーサDSL を組み込み、複雑なパターン解析を容易にすること
- 高速かつコンパクトなガーベジコレクタ を搭載すること
- クロスプラットフォームのGUIシステム、UIレイアウトDSL・描画DSLを内蔵すること
- JVMブリッジ によるJavaとの連携をサポートすること
- 高水準スクリプティング と REPL 環境を提供すること
- GUI/CLIコンソール を含み、ユーザーインターフェースを選択可能とすること
- Visual Studio Codeプラグイン による開発支援機能を備えること
- 高い組み込み性 と 低メモリフットプリント を実現すること
- 単一ファイル(約1MB) にツールチェーン・標準ライブラリ・REPLを全て内蔵すること(現在は一時的に2ファイル構成)
- インストールやセットアップ不要 で即利用可能とすること
- 「楽しい」開発体験 を保証すること
フルスタック言語としてのRedの意義
- 「フルスタック開発者」 の概念を 言語レベル で実現すること
- システムプログラミング から 高水準スクリプティング まで、単一構文で幅広いタスクに対応可能とすること
- どのプラットフォームからでも、 どのプラットフォーム向けにも バイナリ生成を可能にすること
- OS付属のもの以外に依存しない 単一実行ファイルでの配布を実現すること
- システムの柔軟な再定義や拡張 を可能にし、 リテラティブなコード と 高性能 を両立すること
- 「言語構築セット」 としての側面を持ち、用途ごとに適切な抽象度で開発できること
利用例・適用範囲
- デバイスドライバ や システムレベルのプログラム 開発に対応すること
- プラットフォームネイティブなGUIアプリケーション の構築を支援すること
- 共有ライブラリ や 高水準スクリプト の開発を単一言語で実現すること
- 共通構文 で多様な抽象度のコードを書くことができること
歴史・発表
- 2011年3月 のReBorCon 2011カンファレンスで初公開されたこと
- 2013年7月 のRecodeカンファレンス(モントリオール)で最新プレゼンテーションが行われたこと
- YouTube での発表動画が存在すること
- Recode 2013プレゼン資料(PDF) や過去のカンファレンス資料(SFD 2011, ReBor 2011)が参照可能なこと
まとめ
- Red は、 全スタック対応 ・ 自己記述的 ・ 高性能 ・ 単一ファイル配布 という特徴を持つ、 革新的な次世代プログラミング言語 であること
- 幅広いプログラミング領域 で活用できる柔軟性と拡張性を追求すること
- 今後の開発ロードマップ や コミュニティ活動 にも注目すること