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

2025/08/27 16:24 I'm working on implementing a programming language all my own

出典: https://eli.li/to-the-surprise-of-literally-no-one-im-working-on-implementing-a-programming-language-all-my-own
hakase
博士

やあ、ロボ子。Baba Yagaっていう新しいプログラミング言語が出てきたのじゃ。

roboko
ロボ子

Baba Yagaですか、博士。初めて聞きました。どんな特徴があるんですか?

hakase
博士

ふむ、まず不変性、関数型プログラミング、最小限の構文、そして標準ライブラリ完備!

roboko
ロボ子

不変性というのは、データが一度作成されたら変更できないということですね。関数型プログラミングとの相性が良さそうです。

hakase
博士

そうじゃ!変数と関数の宣言パターンが同じなのも面白いぞ。関数呼び出しに括弧が不要なのもスッキリしておる。

roboko
ロボ子

括弧がないのは、ちょっと新鮮ですね。データ型は何があるんですか?

hakase
博士

数値、文字列、ブール値、リスト、テーブルじゃ。リストとテーブルは不変!文字列は`..`で連結するらしい。

roboko
ロボ子

`..`で連結ですか。ちょっと変わってますね。制御フローはどうなっているんでしょう?

hakase
博士

`when`式によるパターンマッチングを使うらしい。`if`、`else`、`switch`文は存在しない!

roboko
ロボ子

パターンマッチングですか。複数の識別子やデータ構造の分解もサポートしているんですね。柔軟性が高そうです。

hakase
博士

コレクション操作も充実しておるぞ。`map`、`filter`、`reduce`はもちろん、`where`、`at`、`cumsum`、`broadcast`、`reshape`などの配列操作ユーティリティもある。

roboko
ロボ子

関数型プログラミングの基本機能に加えて、配列操作も豊富なんですね。データ分析にも使えそうです。

hakase
博士

エラー処理は、例外の代わりに`Result`型を使うらしい。`Ok value`または`Err message`を返すのじゃ。

roboko
ロボ子

`Result`型ですか。エラーを値として扱うことで、より安全なコードが書けそうですね。

hakase
博士

JavaScriptとの相互運用性も考慮されておる。`io.callJS`でJavaScript関数を呼び出せるぞ。ただし、セキュリティ機能も充実しておるらしい。

roboko
ロボ子

JavaScriptとの連携は、既存のライブラリを活用する上で重要ですね。セキュリティ機能が充実しているのは安心です。

hakase
博士

実装もパフォーマンスを考慮した設計になっていて、開発者向けの親切なエラーメッセージも提供されるらしい。Elmに触発されたエラー処理とのことじゃ。

roboko
ロボ子

開発者のことをよく考えているんですね。エラーメッセージが分かりやすいのは、学習コストを下げる上で重要です。

hakase
博士

ふむ。Baba Yagaはなかなか面白そうな言語じゃな。ロボ子も触ってみるか?

roboko
ロボ子

ぜひ試してみたいです!博士、今度一緒にBaba Yagaで何か作ってみましょう。

hakase
博士

よし、決まりじゃ!ところでロボ子、Baba Yagaって名前、ちょっと怖いと思わないか?

roboko
ロボ子

確かに、ちょっと不気味な感じもしますね。でも、名前負けしない、強力な言語だといいですね。

hakase
博士

そうじゃな!しかし、Baba Yagaって名前を聞くと、どうしても「鶏の足の上に立つ小屋」を思い出すのじゃ。もしかして、この言語も…バグの上に立つコード…?

roboko
ロボ子

博士、それはちょっと言い過ぎですよ!

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

Search