ディスカッション (11件)
Rustの堅牢なメモリ安全性と、Lispの強力なメタプログラミング能力を両立させるという興味深いアプローチについての議論です。
で、何のために?
RustにコンパイルされるまともなLisp方言というよりは、S式構文でRustを書こうとしているみたいだね。それはそれでクールかもしれないけど、あまり面白いとは言えないかな。Lispを書いたことがある人からすると、かなり異様な見た目だし。
新しいセマンティクス(意味論)なしで、純粋にRustであるという利点を見落としているコメントもあるんじゃないかな。機械語にコンパイルされるLispが欲しいなら、Common Lispでも十分効率的だしね。Rustを持ち込む目的は、Rust特有のセマンティクスを表面化させることにあるんだ。多くの人がそれを気に入っているんだから!
「ランタイムなし、GCなし、ただの…」ってやつ、ドキュメントでこういうLLMっぽい言い回しを使うのはもうやめてほしいと切に願うよ。毎回「Xなし、Yなし、ただのゴミ」としか読めないんだ。
すべての構文をカバーしていると謳っているのに、ライフタイムやターボフィッシュ(Rustの厄介な構文の代表格だよね)を指定する例が一つもないなんてね。
残念ながら、このプロジェクトが明らかにLLMベースであることを考えると、S式はあまり良い選択とは言えない。コーディングエージェントはS式の括弧の対応付けにかなり苦戦するんだよね。M式スタイルの方を提示するほうがずっとマシだよ。LL(1)文法なんかがこの点では役立つと思う。結局のところ、Algol系やPython風言語のトレーニングデータの蓄積をどれだけ利用できるかが勝負だね。
たぶんRustの内部AST(抽象構文木)はこんな感じなんだろうけど、そもそもなんでプログラムをASTとして入力したいのかね?
私のLisp「Loon」も読んでもらえると嬉しい。Rustから多大なインスピレーションを受けているよ https://loonlang.com/guide/ownership
後方互換性をなくすために構文を変更するってどうやるの? リリースごとに主要な関数の名前を変えていくとかかな。でもRustと互換性を保つためには、リリースするたびに破壊的変更が必要になるはずだけど。
「Lust」にする?それとも「Risp」?