Programming Possibilities: Writing Code in Arabic

Ramsey Nasser is a computer programmer and artist exploring new possibilities in coding. Rising Voices asked him about a recent project, قلب (Alb), a new programming language he created not in the usual Latin alphabet – but in Arabic script.

Alb is a programming language that can potentially address the limitations of English. Every language and script has its own properties and grammatical possibilites, and as children our brains learn to think around the structure of our mother-tongue. The technical possibilites of what a native-speaking Arabic programmer working in Arabic could do… may open new realms of possibility.

Rising Voices : What is Alb?

Ramsey Nasser : قلب is a programming language exploring the role of human culture in coding. Programmers write entirely in Arabic, highlighting the cultural biases of computer science and challenging the assumptions we make about programming.

RV : Computer science is linked tightly to its origins in the English language – why did you decide to break away from this?

 RN: Because this link is taken as a given and not discussed. There is so much hype about teaching programming around the world, which I think is incredible, but there is almost no discussion of the fact that all the languages we teach are in English. Is English a prerequisite to learning to code? I find that problematic, and built قلب to explore just that.


RV : Since the larger, global system of computing is ultimately based in English, what are some of the potential uses of Alb – or a similar language not based in the Latin alphabet – as a functional code? Can this create new possibilities for programmers?

RN : The way programming works is that you always build on existing code, and all existing code at the moment is in English-based languages. So even a completed Arabic language would still have to make calls to English functionality to do anything useful.

To create a totally non-English coding experience you really have to translate the entire history of Software Engineering. It's just not possible and, honestly, not sustainable. New code is written every day, and it's all in English. How do you deal with that? Also, all of this effort will only gain you a single language. What about Chinese? Hindi? Urdu? Any natural language will favor some and exclude others, and I'm convinced there has to be a better way. I don't know what it is yet, but قلب is meant to start that conversation.

قلب has received a lot of attention from China and Russia, countries with significant software industries who's native written language is not based on Latin. I think قلب can be successful in getting people to challenge the notion that coding is ‘just in English.’

Ramsey Nasser also creates tile pieces from the text of Alb

Ramsey Nasser also creates tile pieces from the text of Alb.

RV : Does that mean that your project can broaden the “digital conversation,” allowing more people to contribute where they could not before?

RN : Indirectly, yes. Instead of bringing more people into the digital conversation, قلب tries to expand the digital conversation to consider more people. The fact that every modern programming language is in English is an idea that has shocked even the most veteran computer scientists. It's just not something you think about. Seeing a functioning programming language that looks so alien recreates what looking at Java or C++ might feel like to a non-English speaking programmer. It reminds hackers and researchers in the West that we have a long way to go if we want to make theses tools available to everyone, and قلب facilitates the conversation about where to go from here. This is the expanded digital conversation that wasn't being had before قلب, a conversation that seriously considers the cultural assumptions that our technology makes.

You can try the code yourself with Ramsey's interactive prompt online, or watch this video about his work.


Rising Voices also spoke with Tarek Amr, an Egyptian blogger and programmer, and a writer for Global Voices. He wrote the following response to Ramsey's interview:

Based on Ramsey's comments, having a non-English programming language and expecting it to compete head to head with existing languages is a far fetched dream, at least at the moment.

Nevertheless, the existence of such language is covering an existing gap. There are initiatives to teach programming side by side with other curriculums such as maths and science. It is believed that this will help children develop new ways of thinking.QlbAtEyebeam_003

And I believe one of the show stoppers in non-English speaking countries will be the programming language's language. Hence, younger generations and those new to computer programming are one main target audience for Alb. The idea of having a programming language for learning purposes is not odd (scratch is one example).

Alb might also have a social impact, since one problem in the Arab world is the lack of open-source projects where Arab developers can collaborate, learn and share their experience. Having Alb as an Arabic-based language might on the one hand serve as an umbrella for many developers in the region to collaborate under, and on the other hand, if it gains momentum in schools, younger generations can also collaborate on software projects using it as their language of choice.

Like natural languages, programming languages have their share in shaping cultures and introducing new ways of thinking. I've read a comment once which said: “When a [natural] language disappears, a whole way of thinking, a vision of the world disappears with it”. So similarly, the existence of a new programming language in the Arab world, regardless of its wide adoption and use, will surely help developing new ways of thinking among its inhabitants, and open the doors for new possibilities and ideas.



  • Jeremy Clarke

    Great post and a fascinating story. It’s funny how long it took before I noticed, as an anglophone coder, that all code was in English and I had such a natural advantage compared to even francophones here in Quebec, let alone people who’s language doesn’t use the Latin alphabet.

    I wonder if the solution isn’t an inherently i18n language that includes the ability to translate the source into various supported languages. I remember reading that at one point you could open a Visual Basic (Microsoft) project in French and it would have French keywords instead of English (si instead of if). Of course making this work with Arabic, Chinese and Russian would be an order of magnitude more complicated (as evidenced by the embarrassing fact that you still need a special version of Photoshop to edit Arabic text).

    Keep up the good work, this is a really exciting project.

  • mohamed galal

    I need some information how i can contact him and if it is open source or not