Ramsey Nasser's Arabic programming language artwork
animalnewyork.com
animalnewyork.com
Diversity is a great thing. The more diverse we are, the more diverse our worldviews are and the more creative we become. Maybe there is more conflict, but who is to say that more conflict is a bad thing? As I recall there were studies on different personalities in multilingual people. (Although I believe it's true observing myself, you know how every study can have a study disproving it).
When I started learning programming there were a few resources available only in russian on russian forums(RE related) same with chinese. At the same time people who didn't know any better think russians are technologically behind and still do.
I recently had a discussion with someone in the University who was blaming them(them including russians, chinese speakers and others) for not making information more readily available to him. China, Japan, Russia, Iran, probably a bunch of Arab countries, Germany(although this one is argueably moving to english as scientific language) have vibrant scientific communities, that you can only understand if you speak the respective language.
If the numbers are right [1] (which i doubt, i assume both the chinese and the english l2 speakers to be much more) then maybe it is us who should make more available in chinese. Also keep in mind that for a very long time Arab was the defacto scientific language of south east asia.
[1] https://en.wikipedia.org/wiki/List_of_languages_by_total_num...
edit: i don't normally ask for explanations, but if you downvote i'd appreciate an explanation in this context.
Diversity is great, but a world in which everyone can fluently converse with everyone else would be the exact opposite of boring. In fact, I would say that this sort of universal communication would be great because diversity is great; it would allow all of those different cultures to share their cultures with others, with greater ease.
Of course the best of both worlds is a world where everyone is multilingual, with everyone sharing at least one language with every other person. I think this is more likely than a world in which Arabic is the universal language. I think that the increasing coverage and accuracy of machine translation will create a synthetic/"soft" version of the universally multilingual scenario. Right now machine translation is still fairly shit (although still serviceable!), but I don't think that will be the case in 50 years.
First, Arabic itself is an incredibly fragmented language. Almost every country or region that speaks it has its own colloquial version of it which may or may not be mutually intelligible. As a Lebanese person I can understand Syrians fairly easily, Jordanians with a bit of straining and the other person speaking slightly slower than usual, Egyptians with a lot of straining and speaking slowly and Saudis not at all. Theoretically, we could communicate using the formal(written) Arabic, but most people, especially newer generations, tend to suck at that as it's a much more difficult language that's learned only in the context of school and pretty much almost never used outside, at least in Lebanon, that is. The colloquial languages are to the formal Arabic as French/Spanish/Italian are to Latin, basically.
Second, all good universities I know of in the region teach in English or French rather than Arabic. Though the trend is tipping towards English of late. This is because most of the region was put either under British or French mandate after the Ottomans were ousted during WW1. This was detrimental in many ways which I won't go into, but one of the good things that came out of it was that they established many schools and universities. In fact, most of the good ones I know were founded by French, British or American missionaries during that period.
Third, well, the internet(and media in general), English is the dominant language in media most people consume. I learned English from watching cartoons as kid. I've almost never stepped foot in an English speaking country(except for a couple of weeks in the U.S. 2 years ago) and yet I can speak, and write, with almost native proficiency.
I am Palestinian-Jordanian and I do understand almost all slang accents fairly well. The only one I have trouble with is the Moroccan/Algerian. I understand it as long as they do not inject French or Berber words and speak slowly.
The levant accents are extremely similar that the gulf cannot really differentiate between Syrian, Jordanian, Lebanese and Palestinian (although we see them as distinct and can pick up which accent is spoken from just a word or two). The same phenomenon is seen in the gulf. Iraq is pretty distinct, yet closer to the gulf. Everyone understands Egypt as it is pretty close to Standard Arabic (just like the Levant), although its quirks have become known through songs, movies and shows which are dominated by Egyptians.
As for Standard (or Classical) Arabic, everyone in Jordan (or most of the Arab world) who went through some sort of schooling can speak it, and understand it perfectly. The news, newspapers and any formal event is given in proper Arabic. All Arabic literature, books, and writings are also in Standard Arabic.
My point is, while I agree with you that the use of Arabic is degrading, I doubt it will ever be overtaken by French or English (depending on where you live). English and French are being seen as a symbol of being educated, and those who are uneducated try to speak English or French (albeit terribly). Some who like to show off, or have some sort of identity struggle, rely heavily on French or English. Outside of these insecurities, Arabic is pretty much always in use.
I consider myself an Arab -- whether I'm proud of that is another issue, but there is not identity crisis. I can understand the news, read the newspaper, official documents, etc, etc, but I would not even dream of replying to a comment in Arabic as I can so easily do in English, and not just because I can't touch-type it, but because I would fail at expressing even simple ideas without a lot of struggling, trying to remember words that differ from the colloquial or(and especially) proper grammar.
While the case of Lebanese people is a bit extreme in this regard, all Arabs are slowly following suit in this regard.
You see, I was not saying that Arabic is so far gone now that nobody uses it, or even that not everybody in the Arab world uses it, that was not the point. I was only commenting on a trend. The parent poster suggested that Arabic was on a course to become dominant worldwide and I find that a laughable idea given the current state of it and its trend(slowly) into oblivion to be replaced by many colloquial languages that simplify the grammar and incorporate foreign languages into it the way this happened with Latin.
An overwhelming majority of the Muslims are not Arab and do not speak Arabic [1].
[1] http://en.wikipedia.org/wiki/Muslim_world#Countries_with_the...
> Arabic speakers are reproducing at a rate that virtually guarantees it.
That's ridiculous. In the 1970s, Chinese birth rate was ~5/woman [1]. It turns out that dynamic systems change with time.
Anyways, to get back on topic: more accessibility will only improve things.
http://www.washingtonpost.com/opinions/david-ignatius-a-demo...
See figure 6 here:
http://www.aei.org/files/2012/03/21/-fertility-decline-in-th...
.tfel og nac tub thgir ot tfel si C oS .sllac evisrucer dna spool ,spmuj :segaugnal namuh ni deciton t'nevah I taht sgniht ddo wef a sah egaugnal gnimmargorp nredom lacipyt A
.senil trohs daer I woh nopu tceffe hcum evah dluow ti tbuod I ,tfel ot thgir gnidaer ot desu erew I fi ,thgir ot tfel morf gnikcart eye elbaeciton elttil si erehT .)dda thgim I ,sseug detacude na( ti ni sretcarahc 51 tuoba evah yam edoc C ym fo enil a egareva nO
.)daeh ym ot deneppah osla siht( edolpxe sdaeh rieht dna egaugnal evitarepmi na ni edoc emos ta ecnalg neht ohw ,noitaton lacitamehtam gnidaer ni desrev llew era ohw elpoep deciton ev'I ?tpircsavaj koogedelbbog emos gnidaer naht rekciuq yelbaeciton thgir ot tfel morf esorp elbadaer namuh gnidaer si tub ,tnemmoc siht daer ot regnol tib a ekat thgim NH fo sredaer oS .esitcarp elttil a htiw drah oot t'nsi noitcerid rehto eht ni gnidaer ,ecneirepxe ym morF
The people that will control what ideas win will be the ones controlling the media, social networks and communication channels. It doesn't matter if they are just 0.1% of the general population, their ideas will mater more than the ones of the 99.9%. And considering the kinds of ideas that float in the minds of some people, like the "the war against the West will not be won on a battlefield but in the wombs of our mothers" aberration (why do people even think of "war", there is no war, just a peaceful competition among ideas that float from one mind to another, there simply is nothing to fight for, ain't this obvious to all?!), I prefer this situation!
I lost all awkwardness about this after meeting some Lithuanians on a train in Slovenia. If there's any nation you'd expect to support linguistic diversity it's Lithuania, where just speaking the native language was an act of resistance against Soviet oppression.
They spent the whole train journey bitching about these Slovenians who wouldn't speak English.
> When I started learning programming there were a few resources available only in russian on russian forums(RE related) same with chinese. At the same time people who didn't know any better think russians are technologically behind and still do.
Most of us who program or do science want it to be useful. Look at Linux - started by a Finn, but internationally successful (and not just in English-speaking countries - a lot of developers are German), because he wrote it in English.
> China, Japan, Russia, Iran, probably a bunch of Arab countries, Germany(although this one is argueably[sic] moving to english as scientific language) have vibrant scientific communities, that you can only understand if you speak the respective language.
Which means a lot of duplicated effort that could be better spent (duplicating science can sometimes be useful but if we could coordinate then we could be much smarter about it).
> maybe it is us who should make more available in chinese. Also keep in mind that for a very long time Arab was the defacto scientific language of south east asia.
Sure, there's nothing particularly special about English (well, there are a few conveniences like ASCII and the ease of new coinages, and the existing spread of people who know the language). I don't have a problem with non-English languages that are already major world languages in the field.
But let's stop deliberately erecting barriers to communication in the name of "diversity". Let's not turn Computer Science from a field where all participants can understand each other into a field where one half can't talk to the other half. Let's make education in English and other true world languages as widely available as possible (and stop wasting our children's time teaching them a language that would only let them talk to 5 million people, all of whom speak English anyway - bitter welsh guy here).
As a non English native speaker and fluent in six languages, I think is very valuable that people have access to learning resources and tooling support in their native languages.
(I shudder at the thought of having to code in, say, G-Portugol: http://gpt.berlios.de/site/)
Once they had a Portuguese version of Pascal for learning purposes.
Not really, we didn't get them in our daycare :D
I never really read programming magazines; I had a couple of books, but it was the late 90s, so I learned mostly on the web.
Spanish - I used to spend my summer vacations as a child, quite close to Spain, which allowed me to follow Spanish TV (80's no cable back then) and have a few Spanish friends
French - Three years at high school in Portugal. Lived in France for a couple of years while working at CERN.
English - Five years at high school. Reading English since the late 80's, as a way to get information about ZX Spectrum and similar systems in Portugal. Local press was quite limited. Working in international environments since I graduated.
German - Living in Germany since a few years. Always took care to learn the language.
Italian - Thanks to my knowledge with the other Latin languages, Italian friends, occasional vacations in Italy and lots of books and movies in Italian
Plus ability to understand Catalan, Galician and Mirandese.
Are you fk kidding?! We aren't at even 10% of "defragmenting" the world's conceptual space... When we'll be close to 99.9%, then tell me it's "enough already". And when it comes to programming languages, we're reinventing the wheel over and over and over and over again because we don't have a small number (I'd call less than 5 a "small enough number") or dominant programming languages and VMs so we can just port features from one to another.
Same for all other aspects of computer science and engineering. Everything new takes aaaaaages to implement because we can't freaking standardize on a small number of languages and protocols.
> have vibrant scientific communities, that you can only understand if you speak the respective language
If you've ever worked on any half-serious scientific project anywhere in the world, you'll know that if you can't speak and read/write English fluently (the read/write part is more importantly than the speaking part in science), you're not part of any real scientific community but just of a pseudo-nationalistic group playing as if they are doing science.
Technology and science need standardization and homogeneity when it comes to langauges and communication, like at least 50% more language/protocols standardization and homogeneity than we have now, just so we can have more diversity of ideas.
If everyone spends 50% of their mental energy translating from one language/standard/protocol to another, whether programming language or natural language or whatever, you will have less diversity and less innovation because event if it may seem fun, any kind of "translation" type of activity is a huuuuuge drain that brings benefits to nobody.
And in software, we already spend 90% of our brainpower in translation-type-activities and reinventing wheels all day long, so I'd take anything that brings me less fragmentation in all aspects of my life at all costs, and do everything I can to impose even forcefully less fragmentation in all aspects of existence in general.
You may not know that, but there already exist programming languages "in russian". One is called 1С[1] and although probably unknown outside of russia, it's very much used for bookkeeping apps (because of being part of quite useful proprietary app, not because it's good). It's basically VB with "если" instead of "if". It proved to be totally useless and horrible. And there're more examples like that.
Translating docs and such to other languages is always good, but not crucial. The reason is: you need to know english anyway, because there is and always will be useful stuff written in english, so people who are crying over absence of russian docs instead of learning english (unfortunately there are plenty of them) aren't really worth paying attention, because they aren't really in trouble, they are just lazy.
One more example of fragmentation on language basis might be Ruby community. Even now there're two "main" mailing lists, one is japanese-only. Now it's not really a problem, because all important stuff is doubled in english, but a while ago it was not so easy for people that don't know japanese.
Why english and not chinese? Because english is fairly simple. Simple compared to russian, simple compared to chinese and japanese, simple compared to finnish. (Seriously, the only problem with it is the "correct" spelling is sometimes very far from how the word is pronounced). It might be not as expressive sometimes, but that's a matter to reflect about for language-lovers, not a real problem.
Hieroglyphic writing systems are complicated. I don't know chinese, but I do know japanese for some extent and the funny thing is even many native speakers cannot write properly in japanese… well, I know, many native english speakers cannot write properly as well, but for japanese it's even worse, seriously. And to be fair: I absolutely love japanese typography. Phone entries and posters look so much better in japanese than in latin/cyrillics. But it is complicated.
Why not spanish? I don't know. It would be fine to use spanish as "the" language, I guess. It just happened so the main language for computing is english. Let it be english. Fine.
[1] - http://ru.wikipedia.org/wiki/%D0%92%D1%81%D1%82%D1%80%D0%BE%... (sorry, russian only)
Sadly, not everybody can have a good linguistic education from the go, it depends from a lot of factors, not just laziness.
> Why english and not chinese? Because english is fairly simple.
The notion of linguistic simplicity it's just bogus. English is simple for who? It depends from what is your mother tongue. English for a Dutch speaker is like super easy. But for a Chinese it is quite hard.
And if they've forgotten how to write a character, then they are doomed without outside reference. I can use a word in English I've only seen or heard once in a novel event, and have a hope of using it passably.
Even looking things up in the dictionary is hard... for Chinese people. I've seen Chinese parents pride themselves on how skillfully their children use the dictionary. That's because it's hard and worthy of pride; the radical system is so random and unnecessary from an outside view. Chinese is worthy of the reputation that perl has had, and for the exact same reasons: it's capriciously idiosyncratic and ruthless to non-native speakers.
I'd also note that non-native language acquisition has been looked at by the US military, and I'm sure across the world, and I doubt that all languages are rated equally. I'm quite sure that Arabic and Chinese rate as very hard languages.
For example, a native english speaker will not have much difficulty at all when they encounter an Russian who speaks english as a second language and frequently miss or misuse articles. Although the native Russian speaker is technically using the english language incorrectly, native english speakers have adapted to expect and tolerate a very high rate of errors. This lowers the level of language perfection that is necessary to effectively communicate in english.
Speakers of languages without this sort of recent tradition of non-native speakers may find grammatical errors more jarring, because they have been exposed to them less often.
Totally true! I hadn't, for instance. I had Internet. And while I believe my English is very far from perfect, at least you can understand me.
> simple for who
It's very common to hear about "simple != easy" on HN (maybe because of R. Hickey, idk) and this is just the case.
Easiness = Familiarity (subjective) Simplicity = "Does/is one thing" (objective)
English has simple grammar compared to most of languages I know, probably compared to most of non-constructed languages at all. It has simple writing system compared to Chinese, objectively. Even "lolcats English" can be understood quite easily, if you know English to some extent. You cannot write "lolcats Chinese", only pinyin (or kana, for Japanese). If some Japanese shows you a visit-card with his name in kanji only, you often have to ask him (if it's not some really common name/surname) how that is pronounced (even if you have seen that kanji before, because there are many variants of pronunciation!). I don't know what's about Chinese, but declension/conjugation in Japanese has far more cases than in Modern English (although probably can be said to be "more regular"). Russian declension is objectively more complicated than English (almost non-existent!). In it's turn, Chinese pronunciation is pretty hard to master if you don't have concept of tones in your language. I won't say anything about English this time, but Chinese pronunciation is objectively more complicated than Japanese, for instance. That means, if you speak Chinese, you won't have very hard time repeating what Japanese says, but not otherwise.
The concept of "simplicity" is so not bogus that even have been made attempts to invent some language, that will be easy (because it's simple!) to speak for everyone (esperanto). But as there are many people that don't really care for defragmentation, enlightenment, modernism and stuff like that — so, esperanto is dead now. Maybe it's for the better. Anyway, English doesn't have to be invented, and it's fine, although maybe not perfect as "the universal language". Fine is fine, that's what I'm saying.
My Arabic ability has degraded badly, but I'm fairly sure the name of the language (قلب) can also mean things like 'inversion' or 'reverse.' That's fitting, of course, given the right-to-left character set.
Heart: قلّب Inversion: قَلَبَ.
Different words, same root. One is a noun, and the other a verb in its basic conjugation will have the same set of letters.
FYI: Arabic is the language by which Algorithms and Algebra were canonised the first time
JVM is unicode-ready. So is Haskell, which benefits from having less text and more punctuation. I've been there with some code in Clojure where every identifier was named in cyrillic. All library and syntax are still in english so that doesn't look right.
There are very, very few terminals that do this at all. I read and write Arabic, so I use mlterm. It is quite good, but unlike other emulators, it requires setup and learning configuration, but is very flexible. I use Mutt to read for emails and mailing lists in Arabic, Farsi, and Urdu, and I rarely have problems.
In the Linux console, the situation is abysmal. There was a project that works there, bicon from Arabeyes project, but does not understand SIGWINCH signals. This is problematic when I share a tmux session through the Linux console and X.org with my preferred WM, for example. But to run small, mostly console programs with Arabic, bicon is old and can do some jobs for value of jobs.
A big problem is that Arabic input, and RTL input in general, is a problem where most devs in this space respond "each application must address it in its own way." This is why few console or GUI applications handle Arabic well.
FYI, Firefox was the only browser I could view Arabic language news in until like two or three years ago, on any computer for a while. The others were terrible. And this is coming from a linguistics guy; this was long before I wanted to dig deeper in the machine. Linux guys in the Arab world fight an uphill battle, since much software will not work them and is ignored.
Come join arabeyes.org and help some of them out if you interested in translating documentation, applications, or building tools to help the process.
That said, the git and shell mentions in the article made things look worse than they are – e.g. in Xubuntu I didn't have to do anything special to at least display the characters, though in the wrong order: http://bildr.no/view/dFN0elo4
Emacs has had bidi support since 24.1, works great, and most importantly, those of us who get totally confused by it can turn it off (I still haven't gotten the hang of movement commands suddenly going the opposite direction, very confusing when RTL and LTR scripts are in the same file).
Of course, if you hypothesise that API design could be influenced by natural language, then you might worry about things getting lost in translation. But APIs that use English words aren’t much like natural English already.
Just as an editor can show → for -> and λ for \ if adequately configured, it can also show 'если' for 'if' and 'Функция' for 'function' (or, say, the chinese equivalents) while keeping the underlying code in english. It wouldn't even need any cooperation from language implementations or library developers, and it'd be compatible with all legacy code!
I'm not saying that it's a good idea, though, just a possibility.
I also think that programmers should be able to have some support for their own languages when it comes to doing programming, but I guess that opinion won't win me any favors here.
Sayyid Qutb wrote Milestones in 1964, drawing inspiration from mass popular movements - religious and secular - of the 19th and 20th centuries. It is probably the single most influential text for Islamism (it was even, despite differences of sect, translated into Farsi by Khomeini, as I understand it). For Qutb, submission to Sharia law would unleash a new golden age of progress - it was secularism, rather, which was holding us back.
It's nonsense, yes. But it is modern nonsense. Separating modernity from the ongoing contestation of its meaning is the purest nonsense of all.
tl;dr - islamic fundamentalism is perfectly compatible with computers and stuff.
How? With a smaller alphabet, words can tend to comprise of more letters; with a larger alphabet, words can tend to comprise of fewer letters. It might be that smaller is better in this case for storing text efficiently, but I don't see how it obviously follows.
Do the Chinese really think of Mandarin as containing discrete characters? Or do they consider the signs as compositions of each other? I haven't tried writing Chinese or something like that with some input device. Have you?
As for actually coding in this, I don't know. I'm a native Spanish speaker, and I avoid Spanish-translated programming languages like the plague. Memories of awful Spanish versions of Basic still give me nightmares. The lingua franca of programming is English anyway.
They switched the philosophical approach to a more down to earth "ladies in underwear are selling this stuff for us". See http://www.techartgeek.com/tech/troll-windev-marketing/ .
All keywords and operators are in french, so that's something!
This has about as much to do with normal Arabic script as the best illuminated manuscripts do with latin script.
إتبع means "to follow" while اطبع means "to print"
Every language bears an philosophy of the world in it. It is the metaphors and relations of language constructs to each other that is defining.
Using a different font is just painting the surface in different color. This could have some practical benefits for those willing to deep dive, though. Imagine what pearl could look like in an iconographic system and how that would change the perception of the code. ;)
For non coders (yes, they still exist! probably always will) looking at your code be it C, Ruby or LaTex is already like looking at character salad sprinkled with recognizable words and THEN they need to translate it into a model of what the computer/system will actually do, what the result will be. Magic.
So, why not use our own "typography"? What could be the symbols for IF and LOOP be? MAP? REDUCE? How would a truly iconographic code representation look like? What symbol "variants"/"adaptations" (like in Arabic or Chinese) would make it helpful? ("IF NOT"?) How about color, which usually is not used in human languages...
It's fascinating to see how concise a mathematical expression can be stated yet what it usually has to be translated into when implemented (verbosity of prog.languages is just one issue, i know). Our "syntax highlighting" is nice and helpful but I wonder if there really is no other way to represent code (NOOO Node-Tree-Editors are not it ;)
And then there is the conceptual influence of languages: input-processing-output with processing essentially defined by orders, commands... that's soooo western thinking ;)
How would programming look like, feel like if it was defined/driven by eastern philosophy? More holistic? Less brittle? Less certain? Less precise?
Basically when thinking about programming languages in-confined by technical/mathematical issues and theories I think exchanging some ideas with the field of linguistic would be very fruitful...
Now back to your 9-5 C/Java/Ruby/Js coding ... with syntax highlighting ;)
If you haven't come across Lojban before, check it out: http://wikipedia.org/wiki/Lojban
This one is clearly Menlo. Monaco had some peculiar letterforms, including an odd "asymmetric" loop in lowercase letters like "b", "g", and "p". The LSM / Monaco shapes for those letters are much rounder, and that's what I see in that image.
Here's a sample of what I mean: http://i.imgur.com/I5pSZeQ.png
This type of oversight makes the work instantly less relatable (and credible) to Arabs.
So yeah, weird.
Greek, Roman, Arabic, Hebrew and possibly a few others.
There is one point often overlooked regarding comparisons of programming and human languages - I think that programming languages should be much simpler than human languages, since the target is a dumb computer as opposed to an articulate human.
http://blogs.adobe.com/webplatform/2013/04/01/css-localizati...
http://www.metafilter.com/138858/Artists-Notebook-Ramsey-Nas...
He's probably using the wrong value for LANG in his terminal.
I don't know what OSX is doing.. I would assume that normally it is pre-configured with UTF-8, but somehow that was lost in his setup. I don't have an OSX machine to confirm this though.
Terminal.app, on 10.9.2:
Scotts-MacBook-Air:~ test$ locale
LANG="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_CTYPE="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_ALL=
Scotts-MacBook-Air:~ test$ echo $TERM
xterm-256color
Arabic text copy/pastes into the terminal and appears to be displayed correctly. (I don't read it, so I wouldn't know if there were subtle errors)Anyway, if a changed LANG breaks your script, I'd primarily place the blame on the script. You should be able to shuffle around UTF-8 bytes non-interactively without paying much mind to that.
There's no solution to this which will make everyone happy. I prefer to set UTF-8 for everything so I can find things which break and fix them but a lot of legacy shops choose not to spend the time fixing things which are “working”.
Liked this quote a lot too:
> "After a point, it felt like engineering performance art"
This makes me want a Lojban programming language/OS/etc.