Show HN: Han – A Korean programming language written in Rust
A few weeks ago I saw a post about someone converting an entire C++ codebase to Rust using AI in under two weeks. That inspired me — if AI can rewrite a whole language stack that fast, I wanted to try building a programming language from scratch with AI assistance. I've also been noticing growing global interest in Korean language and culture, and I wondered: what would a programming language look like if every keyword was in Hangul (the Korean writing system)? Han is the result. It's a statically-typed language written in Rust with a full compiler pipeline (lexer → parser → AST → interpreter + LLVM IR codegen). It supports arrays, structs with impl blocks, closures, pattern matching, try/catch, file I/O, module imports, a REPL, and a basic LSP server. This is a side project, not a "you should use this instead of Python" pitch. Feedback on language design, compiler architecture, or the Korean keyword choices is very welcome. https://github.com/xodn348/han
Discussion Highlights (20 comments)
raaspazasu
I don't know Korean at all, but this looks cool and a fun project. I'm curious if this reduces typing or has any benefits being in Hangul vs Latin?
danparsonson
Wonderful! What a cool idea. For anyone interested, you can learn the whole of Hangul in an afternoon; it's cleverly designed to be very logical and has some handy mnemonics: https://korean.stackexchange.com/a/213
apt-apt-apt-apt
A simple translation of keywords seems straightforward, I wonder why it's not standard. # def two_sum(arr: list[int], target: int) -> list[int]: 펀크 투섬(아래이: 목록[정수], 타개트: 정수) -> 목록[정수]: # n = len(arr) ㄴ = 길이(아래이) # start, end = 0, n - 1 시작, 끝 = 0, ㄴ - 1 # while start < end: 동안 시작 < 끝: Code would be more compact, allowing things like more descriptive keywords e.g. AbstractVerifiedIdentityAccountFactory vs 실명인증계정생성, but we'd lose out on the nice upper/lowercase distinction. I hear that information processing speed is nearly the same across all languages though regardless of density, so in terms of processing speed, may not make much difference.
marysminefnuf
My dream is to one day make a chaldean programming language for my kids. Stuff like this is inspiring
water_badger
fun fact, you can easily write c in any language you want through the power of macros https://github.com/farant/rhubarb/blob/main/include/latina.h edit: oh, maybe you can’t do full unicode. that’s too bad!
technol0gic
i only code in this when no ones around. one might say I...han solo
anesxvito
Really cool to see more developer tools built in Rust. I've been using Rust for a desktop app backend (Tauri v2) and the performance difference vs Electron is night and day — native memory usage, instant startup. Curious what the compile times look like for Han compared to rustc itself.
AndrewKemendo
I’ve always wondered why there weren’t more non-english charactered programming languages but I can only assume it was just inertia
AndrewKemendo
I’ve always wondered why there weren’t more non-english charactered programming languages but I can only assume it was just inertia This seems like a reasonably good security measure too
m-hodges
When I was studying Computer Science in college, I once remarked how lucky we, English speakers, are that programming languages use English nouns and verbs. A ton of my classmates were here on a student visa, and English was not their first language. I always thought that programming in English put me at an advantage on the learning curve. I also always thought it was silly when someone would quip that programming should count for “foreign language” credit. Anyway, always cool to see non-English programming languages.
zellyn
I love this. Nice work! It’s fun to look at your code samples, have absolutely no clue what any of it means, and think about just how many non-English-speaking programmers must have felt that way looking at our all-English programming languages. Except lisp: that’s just inscrutable symbols like cond and cons and car and cadr and a bunch of parens! :-)
ovciokko
This is indeed a cool project! Happy to see experiments on non-English programming languages. I have one question — not trying to be offensive or doubting, just out of curiosity — does Han make use of the unique properties of Hangul (or Korean in general)? Like, I remember sawing a Turkish programming language on HN the other day, and I might be wrong but my impression was it makes use of some syntax unique to Turkish, and I wonder if Han has similar features. Or, asking it differently, if I replaces only the lexer to another lexer recognizing a different script, will it not work?
WillAdams
Have you looked into whether there are any Hanja (Chinese characters) which would be sufficiently expressive to warrant supporting as an alternative way to represent keywords? Perhaps look to APL for efficient ways to represent math concepts/structures?
sudo_cowsay
Imagine if you had to work with a Korean company using this Amazing though!
bouncycastle
I'd imagine that a transpiler for Perl with this idea would make one-liners even more potent.
anigbrowl
I wonder why there are not more programming languages not only with non-English keywords, but with different grammars. For example, if X then Y and many other constructions closely follow English grammar, but when you study other languages you quickly become away of many other possible constructions.
lgessler
I know this is mostly about keyword substitution but it still tickles me that you still write f(x) in this language and not (x)f given that Korean is SOV but I guess that's just how you notate that no matter what cultural context you're in. Hadn't ever considered that the convention of writing a function before its arguments might have been a contingency of this notation being developed by speakers of SVO languages.
xukeek
Curious about the name — if the language uses Korean (Hangul) keywords, why call it “Han”? In Latin letters that usually reads like the Chinese 汉 (Han) / pinyin rather than Korean. Is there a specific reason for that choice?
tw1984
The name is interesting, it is just like some aussies creating a new language calling it Anglo.
all2
So... iirc Korean words are constructed out of symbols, would it be possible to mutate the meaning of keywords by giving the symbols meaning and constructing new blocks of symbols?