ディスカッション (11件)
数週間前、AIを使ってC++の巨大なコードベースをわずか2週間でRustに全移行させたという投稿を見かけました。それに刺激を受けて、自分もAIの助けを借りながらプログラミング言語をゼロから作ってみようと思い立ったんです。最近、世界的に韓国の言語や文化への関心が高まっていますよね。そこで『もし、すべてのキーワードがハングル(韓国の文字システム)だったら、プログラミング言語はどう見えるだろう?』と考えた結果生まれたのが、この『Han』です。HanはRustで書かれた静的型付け言語で、レキサー、パーサー、AST、インタープリタ、さらにはLLVM IRコード生成まで、完全なコンパイラパイプラインを備えています。配列、implブロックを持つ構造体、クロージャ、パターンマッチング、try/catch、ファイルI/O、モジュールインポート、REPL、そして基本的なLSPサーバーまでサポートしています。これはあくまでサイドプロジェクトであり、『Pythonの代わりにこれを使おう』と提案するものではありません。言語デザインやコンパイラ構成、あるいはハングルのキーワード選定について、皆さんからのフィードバックをぜひお待ちしています! https://github.com/xodn348/han
韓国語は全然わからないけど、これすごくクールで面白そうなプロジェクトだね。ラテン文字(アルファベット)に比べて、ハングルを使うことでタイピングが減るとか、何かメリットがあるのか気になるな。
素晴らしい!めちゃくちゃいいアイデアだね。興味がある人のために書いておくと、ハングルは午後いっぱいあれば全部覚えられるよ。すごく論理的に設計されてて、便利な語呂合わせ(暗記法)もあるんだ:https://korean.stackexchange.com/a/213
キーワードを単純に翻訳するだけなら簡単そうに見えるけど、なんでこれが標準にならないんだろう。コードがよりコンパクトになるし、例えば AbstractVerifiedIdentityAccountFactory が 실명인증계정생성 になるみたいに、より説明的なキーワードも使えるよね。ただ、大文字と小文字の区別ができなくなるのは痛いかも。情報の処理速度に関しては、密度の違いに関わらずどの言語でもほぼ同じだって聞くから、処理効率の面ではあんまり変わらないかもしれないね。
こぼれ話だけど、マクロの力を使えば、どんな言語でもC言語が簡単に書けるんだよね。https://github.com/farant/rhubarb/blob/main/include/latina.h (追記:あ、でもフルUnicodeは無理かも。それは残念!)
Rustで作られた開発ツールが増えるのは本当に嬉しいね。自分もデスクトップアプリのバックエンド(Tauri v2)にRustを使ってるけど、Electronとのパフォーマンス差は歴然だよ。ネイティブなメモリ使用量とか、起動の速さとか。Hanのコンパイル時間が、本家のrustcと比べてどれくらいなのか気になる。
大学で計算機科学を専攻してた頃、プログラミング言語が英語の名詞や動詞を使ってるのは、英語話者の自分たちにとってなんて幸運なんだろうって言ったことがある。クラスメートの多くが留学生で、英語が母国語じゃなかったから。英語でプログラミングできるのは、学習曲線において有利だってずっと思ってたんだ。プログラミングを「外国語」の単位として認めるべきだって誰かが皮肉を言うのも、いつも馬鹿げてると思ってた。それはさておき、非英語圏のプログラミング言語を見るのはいつもワクワクするね。
これ最高だね。お見事!コードサンプルを見て、何が書いてあるかさっぱりわからないのは面白い。英語圏以外のプログラマーが、全部英語のプログラミング言語を見たときもきっとこんな感じなんだろうね。あ、Lispは別だけど。あれは cond とか cons とか car とか cadr とか、意味不明な記号とカッコの羅列だからね(笑)。
本当にクールなプロジェクトだ!非英語プログラミング言語の試みが見られて嬉しい。一つ質問なんだけど(決して批判したり疑ってるわけじゃなくて、純粋な好奇心から)、Hanはハングル(あるいは韓国語全般)特有の性質を活かしてるのかな?先日HNでトルコ語のプログラミング言語を見かけたんだけど、うろ覚えだけどトルコ語独自の構文を活かしてた印象があるんだ。Hanも同じような機能があるのかな。言い換えると、レクサーを他の言語のものに変えるだけで、中身は同じになっちゃうのかな?
キーワードを表現する別の方法として、サポートする価値があるくらい表現力の高い「漢字」があるかどうか調べてみた?数学的概念や構造を効率的に表現する方法として、APLを参考にしてみるのはどうかな。
Perlのトランスパイラにこのアイデアを取り入れたら、ワンライナーがさらに強力になりそうだね。