Hacker News new | past | comments | ask | show | jobs | submit login

> Programming in a foreign language is a pretty significant barrier.

Not really. I learned programming when I was 14, far before learning English.

How many English constructs do you have in a programming language? Func, var, for, if, else, import, etc. You can memorize those in no time, especially if you do that as you learn programming.

Documentation and textbooks are a different thing, of course. But I learned programming in high school, from teachers speaking my language and with textbook in my language.




This language is slightly more interesting for being Arabic than (say) German or Greek.

You're got three barriers between the learner and the language: unknown keywords, unfamiliar letters, and the wrong LTR/RTL order.

It all adds up to where, boy, it would be intimidating for me to learn this language, as someone who already knows how to program. Doesn't that imply it would be equally intimidating for someone who only speaks Arabic to learn C?


Perhaps we should try asking someone who actually speaks, reads, and writes Arabic how big of a barrier this is before we jump to conclusions...


Would be good, trouble is, where would we ask such a thing? Nobody would be on HN unless they were fluent enough in English to find it interesting to browse English comments and discussions. Presumably there are some Arabic-only tech forums out there somewhere for people who want to talk about technical things but don't feel comfortable enough with English. But then I suppose there's probably a few of those, all with different cultures, and the result would depend on the culture of that board.


I mean, the existence of the article implies that at least one person who speaks, reads and writes Arabic thought there was a problem (even if they also knew both English and English-based programming languages).

But again, while I can't speak from the Arabic speaker -> "English" PL direction, I'm perfectly capable of speaking for the English speaker -> "Arabic" PL direction.


So if it's not such a huge barrier for a foreign programmer to program in an English-centric computer programming language, surely the same can be said about non-Arabic speakers who might want, or have to deal with this language?


The problem is not so much non-Arabic speakers having difficulty dealing with the language, since they're not really the target audience. But if an Arabic speaker tries to use this language to write a program for some specific use case they have, they'll have to work around the complete lack of ecosystem that comes with a novel language in a tiny niche.

It's the same reason why Chinese developers haven't banded together to create a Chinese-based language. They still code in Chinese, but the languages and libraries they use are mainstream: C++, Java, Python, ... All of these languages support arbitrary Unicode in comments and Java and Python also support Unicode identifiers. As a result, Chinese documentation is available even for software that's otherwise in English. However, if you tried to convince Chinese developers to abandon their battle-tested languages with a rich ecosystem for some other language just so they can use different keywords, you'd get laughed out of the room. It's not solving a problem they have.

That doesn't mean that localized programming languages can't be useful e.g. in education. But translating documentation and libraries is useful for many more people than translating the syntax of a language.


As mentioned in the top comment on this article, this is why the software community avoids fractures by programming entirely in FORTRAN. /s

Your comment is an argument against any new programming language.


Yes. Any new programming language needs to offer something more than just different syntax if it wants to be used by more than just a handful of people.


As an English speaker with a US keyboard I would have a very hard time with قلب because I'd have to learn how to at least read Arabic and how to type it. In any other language, using say Spanish, using Latin script I at least only have to learn that importar in this Spanish language means include the library. In an Arabic language it'd maybe be استيراد which I'd have to memorize the whole word AND how to type it, which on my keyboard would be changing the layout and buying a sticker set. [1]

[0] Disclaimer all the Spanish/Arabic/etc words were pulled directly from google translate.

[1] Though Arabic is particularly rough because the shape of the letters change based on the letters around it so you have to learn that too! See: http://www.arabion.net/lesson2.html


I understand as an native English speaker I'm in a fortunate position that by a combination of history and random chance computer development happened largely in my language. But given about 70% of the world uses Latin script keeping languages largely based in the English language the majority of the world is able to use their native script at least which is one less hurdle to learning to program.

What I think may be more useful for bringing more people into programming in their native language would be thinking about providing transliterations where, for example, the Python keywords are translated into Arabic. Doing that Arabic speakers could write in their own language and English speakers could run a utility that maps from the Arabic keywords to the current standard English keywords. Stuff like variable names gets a little tricky there I'll admit, not sure how to handle them, maybe Romanize them too?


While this is true as far as it goes, there's a difference in cost/reward tradeoff in having to understand the Latin alphabet to be able to read materially all programming languages, and having to understand many different alphabets to do so.


I started programming at age 10, with game maker. I cannot stress how useful having icons for each operation is. I remember not knowing what a loop was (I didn't even understand what a variable was), but having the "steps" icon made it clear to me that it was run on every step the player makes (which is approximate, but IIRC it was simply a while loop)


>How many English constructs do you have in a programming language? Func, var, for, if, else, import, etc.

Func and var aren't even English words. Even an English speaker would have to at least get confirmation that their guess is right. You could replace them with arbitrary symbols and it wouldn't rally really change anything.


See APL, equally horrendous for everyone: https://en.wikipedia.org/wiki/APL_(programming_language)


Not for those who professionally speak Mathematics; which is the audience APL was made to serve, after all.

Amusing so many programmers will complain how they feel horribly excluded by APL, but see no issue with every other programming language in existence speaking exclusively ASCII English. At least Math is a true lingua franca, unlike our awful Saxon bodge. I know which I'd be safer speaking when Aliens come to visit. https://youtu.be/t2TDf9XU09k?t=120


But math is also very difficult to understand. The information density on all of the symbols is too high and it's easy to misunderstand (or not understand) as a result. I've met very few people who were comfortable with reading math, even fairly simple things that they otherwise understand.


“But math is also very difficult to understand.”

Sure it is, if you’re not a professional mathematician. For those who are, it is a fabulously precise concise system of communication. The same can be said for “legalese”, “medicalese”, or any other specialist language that provides its specialist users with unrivaled efficiency and power of expression.

Whereas laypeople require lay language; which is why the best communicators are fluent in both, able to communicate complex ideas to both peers and public at a level and in a language that fits each audience.

That so many programmers resist – even belittle – attempts to understand and close the accessibility gap in their own constructed languages speaks volumes of what piss-awful communicators they really are; and how – rather than break that shortcoming down and work to improve it – they weaponize it to keep all those who are not like them out and so maintain their exclusive control at the expense of everyone else.

..

Remember, the point of software is not to encapsulate programming knowledge, it is to encapsulate business (or other expert domain) knowledge. That is where the program’s actual value is, and all that classes and types and conditionals and loops and whatnot crap is just a lot of bureaucratic bullshit that must be waded through when encoding that expert knowledge in unspecialized languages of poor expressive power.

Making programming languages accessible and useful to users operating in other domains will take far more than just some l10n sugar. Still, anything that can improve access for the 5Bn humans who don’t speak English, never mind “ASCIInerdese”, is a positive move.


It's much harder to understand an existing source code if you don't understand its function and variable names.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: