Aheui: Esoteric programming language designed for Hangul
aheui.github.io
aheui.github.io
[1] https://github.com/aheui/aheui.aheui/
[2] https://aheui.github.io/aheuicon
[3] I'm of course referring to https://esolangs.org/wiki/Brainfuck
It'll be interesting to see how the Latin alphabet preference in computer languages changes over time. I'm sure whole different paradigms may be possible in different scripts.
And people complain about the differences between java and python now... Imagine python vs Aheui or similar lol
This is like Sapir–Whorf for programming languages. (https://en.wikipedia.org/wiki/Linguistic_relativity)
I'm skeptical that programming languages in other scripts would "discover" new programming paradigms inaccessible to languages written with the latin alphabet. Programming languages hardly follow any rules of english grammar, despite most of them being in English.
Are some languages structured such that it's easier for its native speakers are better at certain programming tasks? Sure, that's plausible. I can imagine that e.g. German programmers would be better at keeping two-page goto-riddled DO loops in their heads. But would Spanish programmers find it impossible? Hardly.
That's not entirely settled, but even so, those to me are the least interesting (and least expected to be true) aspects of Whorfianism. The social aspects of language influence are much more interesting.
That said, I don't see programming languages in other, err, languages discovering any novel ways of programming. That's mostly because in the end they always should just translate to the underlying CPU model and CS concepts, and those are math, they don't change culturally.
Sure, but it's pretty much impossible to make a falsifiable hypothesis in this area that can actually be (ethically) tested. Like, how do you separate the effect of having Japanese as your primary language from the effect of growing up in a Japanese culture (whether actually in Japan or not)?
> [CS concepts] are math, they don't change culturally
Agree.
I guess by using people from bilingual societies, who speak one or the other language within the same culture.
Perhaps people whose language is radically different from romance languages will approach programming differently because of that, and invent something new.
Then again, English might stay around as a, well, legacy language. I could imagine someone a few hundred years from now studying archaic english, in preparation for a dive into the kernel or whatever. Then again, computer translation will probably have gotten good enough that it won't be necessary.
English already has the unique distinction of having more ESL speakers than native ones, and has become the lingua franca of world commerce.
(And let's pause for a minute to enjoy the incorporation of the phrase 'lingua franca' in to the English corpus, too. I do love how English is completely shameless about taking whatever it wants from other languages to add to itself.)
The problem with defending the purity of the English language is that English is about as pure as a cribhouse whore. We don't just borrow words; on occasion, English has pursued other languages down alleyways to beat them unconscious and riffle their pockets for new vocabulary.
-James Nicoll
The language of diplomacy used to be french. Some of the cultural remnants of this still remain today, even though the role that french used to play is now played by english. If it were to happen how long would it take for english to lose favor as a language of computers?
I have tried to explain to my non-technical friends how strange it is that computer programming language == english proficiency (usually) - because it seems like the large majority of discussion around programming and computers happens in english (open source communities, bug reports, documentation) - I wonder how that will work as the field of computers matures into it's 1st and 2nd centuries- how much and to what level will programming and programming languages fragment? What kinds of things will remain in english/latin and what will transition- what kinds of programming related things will only be in chinese or devanagari (india) script?
Even the act of typing is predicated to the idea of a latin alphabet, I wonder to what degree the languages will continue to change to adapt to that and to what degree the technology will adapt to compensate for the language.
Once you start thinking (as a native english speaker) how much of the world of computers is naturally biased towards latin/english it kind of blows your mind.
Two things changed the landscape a lot. First, universal school education, which in most countries includes at least some rudimentary English, vastly expanded the number of people proficient with it to some extent. And second, the amount of cultural and scientific interchange has skyrocketed, with both effectively standardizing on English as the common language.
So, short of some kind of near-extinction event that would unwind our progress a couple hundred years back, I don't see a high likelihood for change. It seems that we're in the beginning of the "common language" era, and English - or whatever it evolves into over time, anyway - is going to be that language.
Sometimes I've come across Chinese language sites for golang search results. It made me wonder what is being uniquely expressed in Chinese about Go.
For example: Korean verb conjugations are massive [1] mainly because conjugations themselves are morphemes (or semi-words, if you don't know what it is) and not mutations or transformations thus the set of conjugations is essentially open. Native Korean speakers can probably easily list hundreds of different conjugations with different meanings.
[1] https://pbs.twimg.com/media/CXakcsoUkAEMPaj.jpg for example.
[1] https://en.wikipedia.org/wiki/Korean_verbs#Finite_verb_endin...
You need to be able to communicate mood, underrun expectations, frame or defy relationships ... in English, much of this is done by choice of words (especially adjectives and verbs) and word arrangement. In Korean, instead, while there's a giant repertoire of nouns, sentiment and relationships are more often injected via choice of grammar form and word choice is rather more straight-forward.
For example, Westerners make much of Korean's various speech levels ("politeness") which need to be used correctly depending on age or standing of addressor and addressee, and mostly (but not solely) take the shape of different verb endings. But of course English has a complex register system as well - but it's done via word choice and arrangement instead. It's the difference between "I'm sorry, I'm not able to help" and "F*ck off". In Korean, you can conceivably scale this difference by leaving off a word ending aimed at the wrong person combined with body language.
It's this difference - human interaction and the nature of eloquence remain the same in their essence, but the tools of expression have different mechanics - that's fascinating.
(Also, greetings from #rust!)
Letter shapes are featural rather than arbitrary, e.g. a consonant might visualize the tongue position used to make its sound. And yep letters graphically build on each other (normal to iotized vowels and normal to aspirated consonants are all formed the same way, respectively, by adding a stroke).
Hangul is a masterstroke of human cultural achievement. Had a lot to do with me emigrating to Korea! I agree with you that there's a lot of geeky audience appeal to it (including even its origin story of a bunch of smart people applying state of the art knowledge of the day to enable others by freely disseminating it).
[1] https://en.wikipedia.org/wiki/Non-English-based_programming_...
[2] http://blog.naver.com/PostView.nhn?blogId=axes2024&logNo=110... (in Korean)
밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅
"Can't rename "if" or "foreach" in C#, however.
I pasted the hello world text to google translate and it did translate it to something VERY WEIRD :)
"I'm not sure what to do, but I do not know what to do. I do not know what to do."
Sounds like the AI behind the translate engine[1] got a bit depressed :)
[1] https://www.nytimes.com/2016/12/14/magazine/the-great-ai-awa...
I realize this is just for fun but I hope someone builds a completely functional language written in their own language. That would be really cool to see where that goes. That would be not just a technological innovation but interesting socially.
Could someone please explain how this prints 'Hello, world!' Is there a mapping from Hangul to latin alphabets that I missed out on in the doc?
" 밤밣따빠밣밟따뿌 빠맣파빨받밤뚜뭏 돋밬탕빠맣붏두붇 볻뫃박발뚷투뭏붖 뫃도뫃희멓뭏뭏붘 뫃봌토범더벌뿌뚜 뽑뽀멓멓더벓뻐뚠 뽀덩벐멓뻐덕더벅 "
The code is building up the Unicode codepoints for "Hello, world!" as numbers in memory, and running instructions to print them.
I've strongly considered writing a Spanish-based programming language--Spanish is spoken by more people than English, and Spanish is a first language a larger percentage of Spanish speakers, while for many English speakers it is their second language. It seems like a Spanish-based programming language could reduce cognitive barriers to entry to programming for a large portion of the world. Of course, if the tool chain isn't up to par it will eventually hold users back, but it's at least worth investigating.
It not a programming language where keyword are in Korean but one based on non mainstream concepts like brainfuck.
I suspect the reason this hasn't caught on is that there just aren't that many keywords to learn, and that paying the ongoing tax of having to translate every code example on the web is worse than the one-time cost of just learning the keywords in English. This is for "real" programming use cases anyway; it might be a different consideration for educational languages.
I don't name my variables using Spanish and I wouldn't want to use a programming language where the keywords are Spanish-based. Spanish is a verbose, complicated language, which is why I think it's a poor fit for the task of programming. I surely prefer to use "userName" over "nombreDeUsuario", "database" over "baseDeDatos", "languageSelector" over "seleccionadorDeIdioma", "propertyToggle" over "conmutadorDePropiedad", and "wrapper" over..."envolvedor", I guess?
It gets worse with actions: "buttonClick" may, depending on who you ask, become one of these: "clickEnBotón", "clickEnBoton", "clickBoton", "botonClick"... (there isn't an obviously sensible choice, since all of them have their faults: 1 is tedious and long, 2 is slightly easier to type but incorrect, number 3 is incorrect Spanish, number 4 tries to mimic English and is thus incorrect too); "pageNavigationStarted" would be something like "navegaciónPáginaComenzó", which is long and incorrect according to this language (proper version would be "navegaciónEnPáginaComenzó", even longer).
You can't make verbs so easily, in English you can make a verb from any substantive, you can't do that as easily in Spanish.
In Spanish you have to use "filtrar", "filtra" and "filtro" (to filter, filter, filter), and to express "filterStarted" you'd have to choose between "filtradoComenzó", "filtradoComenzo", "filtroComenzó", "filtroComenzo", "filtrarComenzo", "filtrarComenzó".
Maybe I just don't like it.
English is really good as a language for code, because it is a (mostly) analytic language rather than a synthetic one. Indeed, it's the places where it is inflected that usually cause trouble, like singular/plural distinctions (think about how ActiveRecord handles this in mapping class names to tables).
Technically, `clic` is a noun in Spanish, not a verb, so, if you are talking about an action, the correct name for the variable would be `hacerClickEnBotón`.
At the same time, although more verbose, it would be interesting to see how a language in Spanish would work, once sensible conventions are set.
As a person who loves thinking about names, in your filter example I see that, just by changing one letter, one can be more precise in the exact meaning of the variable or method name.
Anyway, I am not saying that people should use Spanish when programming. Having English as the common language for our profession is a great advantage.
Not really, consider most of the established code/programming materials is in English. Learning programming is far more than learning the syntax of one language.
English is much bigger than the population of its native speakers. Frankly speaking, if a project is not presented in English on github, I won't take it too seriously.
Disclaimer: English is not my mother tongue.
For example: case 0: //ㄱ case 1: //ㄲ case 11: //ㅇ case 13: //ㅉ case 15: //ㅋ
If one goes back a good three decades plus and studies the source of Knuth's TeX, everything was represented by numbers and then all strings, even error messages resided in a TeX.Pool file.
Is this true, though? As far as I know ㅔ and ㅐ represent the same sounds.
[1] http://linguistics.stackexchange.com/questions/2619/how-to-d...
I think the author was trying to distinguish between Hangul and, say, written Chinese or Japanese Kanji which are logographic. I've known lots of people in the US who assume the Korean written language functions similarly because "all Asian languages are like that".
Either way, I can see how what you're saying makes sense.
Compare the Japanese with the difficulty of 'l' vs 'r'. And an obligatory Babylon 5 scene with Zathras - https://youtu.be/1j-76eLz1hc?t=1m40s
This comparison is not apt. Japanese has neither l nor r; the sound commonly transliterated as "r" is a different sound.
By way of http://ell.stackexchange.com/questions/112384/do-all-native-...
> However, even before their first birthdays, babies begin to lose the ability to hear the distinctions among phonemes in languages other than their own.
From http://www.encyclopedia.com/media/encyclopedias-almanacs-tra...
China and Japan obviously have to accommodate themselves as there is no possibility of having one key for each Kanji (or Chinese character). There was a nice documentary showing arcane Chinese characters or different descendants of the same Chinese characters.
Does this encode the font or merely the character (as an entity)?
It's entirely conceivable for a programming language to be made with Han Characters - because it's a solved problem to input Han Characters on keyboards.
Or Have I missed the point of what you wrote entirely?
Not only is it conceivable, it has already been done:
https://en.wikipedia.org/wiki/List_of_Chinese_programming_la...