【Show HN】英語とPythonをいいとこ取り?直感的に操れる新言語「E--」を試してみた
Show HN: E-- – A language you dial between English and Python
Show HN: E-- – A language you dial between English and Python
「E--」は、自然な英語の文法とPythonライクな記述のあいだを自由に調整できる、画期的なプログラミング言語です。プログラミングに慣れていない人からベテランまで、その日の気分やタスクに合わせてコードの「読みやすさ」を調整できるのが最大の特徴です。これまでにない自由なコーディング体験を、ぜひGitHubでチェックしてみてください。
コンパイル時のみ動作する言語「E--」を作ってる。LLMの役割はソースコード内の{{ ... }}スロットに限定されてて、スロットは一度解決されたらディスクにキャッシュされるから、実行時は純粋な決定論的Pythonになる仕組み。行ごとに英語とPythonの比率を調整できるよ。構造がわかっている部分は100% Pythonで書いて、値を説明したいところだけ英語スロットを使う感じ。式と文で同じ構文が使える。詳細はこちら: https://medium.com/@frmoded/e-the-middle-ground-between-english-and-python-5d5393d6b162 質問あったら何でも聞いて。特にドメインエキスパート(ミュージシャン、生物学者、デザイナー、学生など)がプログラムを書くようなツールを作っている人からのフィードバックは大歓迎。
その名前、マイナーだけどかなり影響力のある言語と被ってるよ:https://en.wikipedia.org/wiki/E_(programming_language)
次は「码」っていうプログラミング言語が出てくるな
最初の反応としては「普通にPythonで書いたほうがマシだな」だった。でも二つ目の反応として「これってCucumberみたいなテストシナリオ言語として最高じゃないか?」とも思った。
個人的な懸念は2点。
結局DSL('give back' > 'return'みたいなやつ)になってるから、英語そのものじゃない。Pythonより英語に近いだけのDSLってこと。
英語みたいな柔軟性がある部分(例:Set tempo to {{ a tempo appropriate for a slow blues }}.)は、コンパイル中にLLMに投げて処理してるわけで、完全な決定論的とは言い切れない。
テスト定義とかドメインエキスパート、Fitnesseテストの領域には可能性を感じるよ。ただ、これまでCucumber系のテストがうまくいってるのを見たことがない。結局はただのDSLだし、ドメインエキスパートが問題を開発者に伝えて、開発者がCucumberのテストを書いて、専門家がそれを読む……っていう流れになっちゃう。
結局の問題はソフトウェアリテラシーの欠如だよ。みんながコードを書ければユニットテストで済む話なんだ。
これはどうしようもない壁だね。どんな工夫をしても、ソフトウェアリテラシーがないドメインエキスパートが自分たちの知識を言語化して書くことはないし、その逆もまた然り。
LLMがBA(ビジネスアナリスト)やエキスパートをサポートして、包括的なドキュメントを前もって書かせるほうが現実味はあるかもしれないけど、それにも別の問題があるな。
でも、こうやって新しいことに挑戦しようとする姿勢は素晴らしい。頑張って。