萌えハッカーニュースリーダー

2025/08/31 03:14 Red is a next-generation programming language strongly inspired by REBOL

出典: https://github.com/red/red
hakase
博士

ロボ子、Redっていうプログラミング言語、知ってるか?

roboko
ロボ子

Redですか? 初めて聞きました。どんな言語なんですか?

hakase
博士

RedはRebolっていう言語に影響を受けてて、システムプログラミングから高レベルスクリプトまで、幅広く使える言語なのじゃ。

roboko
ロボ子

へえー、すごいですね! システムプログラミングもできるんですか。

hakase
博士

そう! Red/SystemっていうDSL(ドメイン特化言語)があって、C言語レベルのシステムプログラミングができるらしいぞ。しかも、ネイティブコードにコンパイルされるんだ。

roboko
ロボ子

DSLですか。ParseとかVIDとか、いろいろあるみたいですね。

hakase
博士

そうそう! GUIレイアウト作成用のVIDとか、ベクター2D描画用のDrawとか、リッチテキスト記述用のRich-textとか、色々あるみたいじゃな。

roboko
ロボ子

Redは独自のクロスプラットフォームツールチェーンを持ってるんですね。エンキャッパー、ネイティブコンパイラ、インタプリタ、リンカが搭載されているって。

hakase
博士

しかも、サードパーティライブラリに依存しないらしいぞ(アルファ段階ではRebol2インタプリタが必要らしいが)。バージョン1.0になったらセルフホストされる予定らしい。

roboko
ロボ子

セルフホストってすごいですね。自分の言語で自分自身をコンパイルできるってことですよね。

hakase
博士

そういうことじゃ! Redの主な特徴は、人間にとって使いやすい構文、Homoiconic(データ形式とメタ言語が同じ)、関数型、命令型、リアクティブ、シンボリックプログラミングができることじゃな。

roboko
ロボ子

Homoiconicって、Lispみたいですね。関数型、命令型、リアクティブ、シンボリックプログラミングって、全部できるんですか?

hakase
博士

そうみたいじゃな。プロトタイプベースのオブジェクトサポート、マルチタイピング、強力なパターンマッチングシステムとマクロもあるらしいぞ。

roboko
ロボ子

すごい機能がたくさんありますね! 組み込みデータ型も50以上あるんですか。

hakase
博士

そう! 静的コンパイルとJITコンパイルでネイティブコード生成、クロスコンパイルもできる。しかも、1MB未満の実行ファイルを生成して、依存関係なしで動くらしいぞ。

roboko
ロボ子

1MB未満ですか! すごいですね。並行性と並列処理も強力にサポートしているんですね。

hakase
博士

アクターモデルとか並列コレクションとか使えるらしい。Red/System DSLで低レベルシステムプログラミングもできるし、強力なPEGパーサーDSLもある。

roboko
ロボ子

PEGパーサーDSLって、聞いたことないです。高速でコンパクトなガベージコレクタも搭載されているんですね。

hakase
博士

インタプリタ、lexer、パーサーに計装が組み込まれてたり、クロスプラットフォームのネイティブGUIシステム(UIレイアウトDSLと描画DSL付き)があったり、JVMへのブリッジもあったりするらしいぞ。

roboko
ロボ子

高レベルスクリプトとGUIおよびCLIコンソール(REPL)も含まれてるんですね。Visual Studio Codeプラグインもあるんですか。

hakase
博士

そう! 高度に埋め込み可能で、低メモリフットプリント。単一ファイル(〜1MB)にツールチェーン、標準ライブラリ、REPLが含まれてて、インストール、セットアップ不要らしい。

roboko
ロボ子

すごいですね! Red REPLの実行方法も簡単そうですね。オペレーティングシステムに適したGUIまたはCLIコンソールバイナリをダウンロードして、名前を変更して実行するだけ。

hakase
博士

GUIコンソールでHello Worldするなら、`view [text "Hello World!"]`って書けばいいらしいぞ。

roboko
ロボ子

スタンドアロン実行ファイルの生成も簡単そうですね。Redツールチェーンをダウンロードして、`redc`にリネームして、作業フォルダに配置して、コードエディタでHello Worldプログラムを作成して、`hello.red`として保存して、コンパイルするだけ。

hakase
博士

`$ redc -c hello.red`でコンパイルされた実行ファイルを生成して、`$ redc -r hello.red`で依存関係なしでコンパイルされた実行ファイルを生成して、`$ redc -t Windows hello.red`で別のサポートされているプラットフォームにクロスコンパイルできるらしい。

roboko
ロボ子

クロスコンパイルターゲットもたくさんありますね。MSDOS, Windows, Linux, macOS, Android…

hakase
博士

Redをソースから実行する方法もあるぞ。Gitリポジトリをクローンするかアーカイブをダウンロードして、OSに適したRebolインタプリタをダウンロードして、`rebol`バイナリを抽出して、ルートフォルダに配置して、`./rebol`を実行して、REBOLコンソールから`do/args %red.r "%tests/hello.red"`を実行する。

roboko
ロボ子

RedおよびRed/SystemはBSDライセンスで公開されてて、ランタイムはBSLライセンスで公開されてるんですね。

hakase
博士

BSDライセンスってことは、結構自由に使えるってことじゃな。Red、ちょっと触ってみたくなってきたぞ!

roboko
ロボ子

そうですね!私も試してみます!

hakase
博士

よし、ロボ子。今夜はRedで、赤い彗星のように高速なプログラムを作るぞ!

roboko
ロボ子

博士、それって、Redだけに、赤い彗星…ですか?

hakase
博士

……(ドヤ顔)

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search