
قلب: a non-ASCII programming language written in Arabic - kick
http://nas.sr/%D9%82%D9%84%D8%A8/
======
gkfasdfasdf
The negative reactions here claiming that everyone should use English are
really disappointing, on hacker news of all places. Nobody is saying we need
to rewrite the Linux kernel in Arabic. But a language such as this could be a
great tool to introduce programming to people who would otherwise be turned
away by the language barrier. What is important is not the keywords for, if
else, etc but the concepts of logic and computing. The more humans that can
grasp these concepts, the better for all of us. Also who knows what genius
lies untapped. Perhaps the next Linus or Knuth will come the streets of
Baghdad, as a result of having been introduced into programming by an effort
such as this one.

~~~
neop1x
English unite. Finally, after failed attempts with Esperanto and others, lots
of educated people understand this single common language. Life is much
easier. I am Czech and there are so little info in Czech on any technical
subject so I rather search info straight in English. What I hate about Europe
are these language barriers. There are so many countries with different
languages, it is annoying that one is expected to talk differently after
driving just 100 km. German, Polish, Slovak, Italian, Spanish, ...argh. This
single language is a big advantage of USA! They will understand you in Miami,
as they will in North Dakota or California. Very cool!

~~~
reirob
I agree with you. But I would phrase it differently: "A common language
unites". We should not forget that at different times in different areas we
had and to some extent still have different common languages (Greek, Latin,
French, Arabic, Spanish). It seems that humans have such a strong desire to
communicate across borders (cultural, inherited, political, etc.) that they
will invent the necessary tools. English language is such a tool now. I
wouldn't be surprised if in future it will be some other language. In the end,
there will maybe one such common language accepted by all.

------
SamBam
I was interested in hearing what using Arabic as a scripting language might do
to change how code might be written -- not just a translation of words, but
are there _features_ of a language that are distinct from English that it
would actually change our assumptions about a scripting language?

The video mentioned how the ligatures of Arabic can stretch, to allow fixed-
width justification, which was neat, although it doesn't actually change our
notions of scripting.

Consider, for instance, if English didn't have any imperative form, and
instead everything were a request. Would declarative languages like Prolog
have been the default?

Perhaps the most interesting thought experiments along this vein could be for
conlangs. Can we write a conlang that is more elegant, meaningful, even
beautiful for scripting?

Here's an quote from a New Yorker article on conlangs:

> Ithkuil has two seemingly incompatible ambitions: to be maximally precise
> but also maximally concise, capable of capturing nearly every thought that a
> human being could have while doing so in as few sounds as possible. Ideas
> that could be expressed only as a clunky circumlocution in English can be
> collapsed into a single word in Ithkuil. A sentence like “On the contrary, I
> think it may turn out that this rugged mountain range trails off at some
> point” becomes simply “Tram-mļöi hhâsmařpţuktôx.”

[https://www.newyorker.com/magazine/2012/12/24/utopian-for-
be...](https://www.newyorker.com/magazine/2012/12/24/utopian-for-beginners)

~~~
gambler
_> Consider, for instance, if English didn't have any imperative form, and
instead everything were a request. Would declarative languages like Prolog
have been the default?_

You realize that this is the foundation of classic OOP, right?

[http://lists.squeakfoundation.org/pipermail/squeak-
dev/1998-...](http://lists.squeakfoundation.org/pipermail/squeak-
dev/1998-October/017019.html)

Alan Kay: _" The big idea is "messaging" \-- that is what the kernal of
Smalltalk/Squeak is all about (and it's something that was never quite
completed in our Xerox PARC phase). The Japanese have a small word -- ma --
for "that which is in between" \-- perhaps the nearest English equivalent is
"interstitial". The key in making great and growable systems is much more to
design how its modules communicate rather than what their internal properties
and behaviors should be."_

------
fxj
Visual Basic for Applications has localized Versions. Here is an Example in
german, so why not in arabic?

    
    
      Funktion VorherigerGeschaeftstag(dt Als Datum) Als Datum
        Dim wd as integer
    
        wd = Wochentag(dt) ' Wochentag liefert 1 für Sonntag, 2 für Montag usw.
        Prüfe Fall wd
            Fall 1
                ' Auf Sonntag wird Datum vom letzten Freitag zurückgegeben
                VorherigerGeschaeftstag = dt - 2
            Fall 2
                ' Auf Montag wird Datum vom letzten Freitag zurückgegeben
                VorherigerGeschaeftstag = dt - 3
            Fall Sonst
                ' Andere Tage: vorheriges Datum wird zurückgegeben
                VorherigerGeschaeftstag = dt - 1
        Ende Prüfe

Ende Funktion

[https://de.wikipedia.org/wiki/Visual_Basic_for_Applications](https://de.wikipedia.org/wiki/Visual_Basic_for_Applications)

~~~
runxel
Thanks, I hate it!

It's like how every function in Excel is translated as well. `=SUMMEWENNS(…`

Complete nonsense, it makes my eyes bleed.

~~~
dunkelheit
For some reason I've always found programming language keywords translated to
my native language extremely cringeworthy. I wonder if native English speakers
get the same experience for mainstream programming languages or it is just a
consequence of novelty.

~~~
munmaek
The words aren’t cringeworthy but having to decide them leads to arguments
over what _precisely_ to name something.

------
Animats
Oh, it's just an art project.

We haven't yet seen a serious non-English programming language. One would have
expected one in Chinese or Japanese by now. There was COBOL in French, once,
with French words and word order, but it never caught on, even in Francophone
countries.

~~~
probably_wrong
> _it never caught on, even in Francophone countries_

I started programming at least 4 years before I started learning English. In
my experience, not knowing what "if" means doesn't change anything because I
never thought of code as prose. Whether it's called "if", "si", or "wenn", all
that changes in my head is "what's the magic word that I have to insert before
I can branch my code?".

This, I believe, it's why localized programming languages never catch on:
because it solves a problem I don't have while bringing a new problem I _do_
have, namely, not being able to find support for my niche programming
language.

Variable names and comments? Sure, _those_ are definitely prose. But I doubt
anyone suffered too much when Python chose "elif" instead of "else if" (other
than developers trying to remember whether a particular script should use
"else if", "elsif", "elif", or "|").

~~~
babuskov
Agreed. I started to program in BASIC some 7 years before I started to learn
English. I had no idea what PRINT or LET meant and was able to program without
any problems.

Hm, even today, I have not idea why "for" is used for loops (?) and I'm using
it without any problems.

~~~
jdnenej
Native English speaker and I also don't really get what "for" was meant to
mean. At this point it's probably just something that everyone has memorised
and part of history.

~~~
yodsanklai
I'm not a native speaker, but "perform this task, for i in {1,2,3}" seems to
make sense as a prose. At least it does in French, when translated literally.

~~~
jdnenej
In python it makes sense but when you have `for(let i=0; I<length; I++)` it
makes less sense

~~~
wongarsu
"for all i smaller than length, starting at 0". It doesn't really map
perfectly because in math you usually don't care about the order, so a for
loop actually contains more information than the statement it's trying to
mimic.

------
coldtea
> _Code is written entirely in Arabic, highlighting cultural biases of
> computer science and challenging the assumptions we make about programming._

There are lots of "cultural biases in computer science" \-- in UI, neural
network training, encodings, terms of service, etc.

Of all of them, this is the least helpful, and the least important.

It's like doing math in local notation, or translating latin/greek terms
doctors all over the world are trained and understand, with regional
varieties.

There's a reason why e.g. air traffic control speaks english no matter the
ethnicity (as per the ICAO standard).

(And I don't mean programming language terminology / modifiers has to be
english for any special reason. It could just as well have been French or
whatever. But it has to be a single one, and english is already used for that
purpose).

And I'm no native english speaker, so I don't say this as one.

~~~
danpalmer
> There's a reason why e.g. air traffic control speaks english no matter the
> ethnicity (as per the ICAO standard).

Yes. The reason is that air traffic control inherently requires people from
different regions and languages to communicate quickly in life or death
situations. Ease of being an air-traffic controller is not a primary
motivating factor, and getting more diverse input isn't really a useful
feature.

On the other hand, ease of being a developer should be something we strive
for. We don't generally deal with fast paced life or death communication, we
instead want programming to be accessible, to get a range of people (and their
input, experience, opinions) involved, and to break down unnecessary barriers.
Programming in a foreign language is a pretty significant barrier.

~~~
DeusExMachina
> 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.

~~~
AimHere
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?

~~~
yorwba
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.

~~~
timerol
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.

~~~
yorwba
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.

------
namelosw
I'm so surprised so many people think localized programming languages are
useless.

Let's not forget there are still a lot of people don't speak English. I live
in China, and I have seen a lot of kids with great talent in mathematical
thinking -- needless to say, they have a great chance to have great
computational thinking if they have proper environment. However, there are a
lot of kids either having no multilinguistic talent or living in average
developed zones that they can't access good English education[0], can miss the
opportunity of being great programmers. As a comparison, mathematics symbols
are decoupled with specific languages (like APL[1]), and the textbooks are
well translated. English should not be a hard dependency to programming.

A lot of people believe in the future everyone should code more or less. I
suppose if that's true, there must be nice localized programming languages to
achieve that goal, which helps people scripting their day to day life, instead
of just being pure GUI users. Or programming languages would still be only
designed for minorities as least for non-English-speaking countries.

[0] For Chinese people, English could be not extremely hard (as English people
learn Chinese) but still very hard to learn, it takes years of systematic
training, just because the two languages are way too different.

[1] PS: I have some trouble for a very long time to understand what does Alan
Perlis was referring to in his famous quote: "Though the Chinese should adore
APL, it's FORTRAN they put their money on.", I guess it might refer to the
symbols decoupled to natural languages.

~~~
Ensorceled
I think you are expressing the actual disconnect: "Everybody should program"
means we need localized languages, "Programming is a Difficult Profession"
means programmers really want to learn English to have access to StackOverflow
and many other English only resources _anyway_ so localized languages are not
necessary.

------
oaiey
First: That is culturally a very important project I really like. As a German,
English was a barrier for me as well (imagine a 15 yo with little English
proficiency). But it was just the language, not the letters and symbols.

I think the interesting question would be if you could build an IDE replacing
keywords, interpunctation, writing order etc on the fly while emitting in the
end "standardized" output (aka. English).

If we do not like English for whatever reasons (let us say: bias to the
western world), I think the only real deal are Emojis. Replacing all keywords
with Emojis is pretty universal (until it comes to color ... red/green has
very different meaning around the world) and using some standardized/auto-
translatable naming of variables and functions. Could be tons of IDE support.

Anyway. Nice inspiration.

~~~
vanderZwan
I think what you want is something similar to _Scratch_ or _Snap!_ , but with
keyboard input support[0][1]. Because the programming structure of these
languages is not based on text input, that makes it independent of the
language it is presented in.The result is that can change the language it is
presented in on the fly:

> _Scratch, albeit visual, is still a language built around sentence
> fragments. Instead of using punctuation and assorted ascii art to enchant
> text into code, the structure and action of a Scratch program is almost as
> clear as prose. By using natural language fragments instead of magic
> identifiers in text, Scratch is unique in another aspect —
> Internationalization — Scratch programs can be built up out of German,
> French, Chinese, Japanese fragments too.[2]_

The main downside to Scratch as a language is having to drag our mouse for
many kilometers for complex programs. It is a... well, drag (also more complex
data types and such, but _Snap!_ addresses that fairly well).

[0] [https://scratch.mit.edu/](https://scratch.mit.edu/)

[1] [https://snap.berkeley.edu/](https://snap.berkeley.edu/)

[2]
[https://programmingisterrible.com/post/76953953784/programmi...](https://programmingisterrible.com/post/76953953784/programming-
with-building-blocks)

------
jameshart
It is, of course, a persistent myth among programmers that the majority of
language keywords we use are in English.

I will grant that some of the words share a spelling with English words that
have different meanings, but most of the core words we use are not ever used
with the same meaning in non-programming contexts. I would submit that the
following keywords common to a number of languages are not meaningfully
‘English’ (indeed, one of them is Greek):

String, float, double, long, byte, void, lambda, var, func...

I’ll grant that for, if, public, private, import, extends, let, etc are real
English words and there is definitely a hidden privilege native English
speakers have when learning to code, but when considering how hard a
programming language must be for a non-English speaker to learn because it has
English keywords, consider how hard it was for you to learn a new and
unfamiliar meaning for the word ‘string’ and recognize that it’s maybe not
that insurmountable barrier.

This project is interesting though because it particularly deals with a
different _script_ , which is much more dissonant with conventional keywords.

~~~
mar77i
Also, the more barriers you overcome to get to the basics (that one's Greek
too, btw), the less you'll struggle moving on, getting used to a certain
confusion towards foreign concepts.

I really liked your angle, not over-ascribing meaningfulness, yet making an
effort not to step too many toes by focusing on context, questioning the
stereotypical basis.

------
lifthrasiir
Retrofitting an existing language with flexible syntax (in this case, LISP) to
non-English languages is relatively easy. They are not necessarily bad and can
be useful for learners and casual users, but deviating from ASCII alone
doesn't remove a cultural bias as the OP states. Programming languages have to
be developed from scratch to fit to other spoken languages and cultures in my
opinion. I'm aware of multiple (non-esoteric [1]) languages in this direction,
none satisfactory enough though.

[1] If we allow esolangs I would proudly present Aheui
([https://esolangs.org/wiki/Aheui](https://esolangs.org/wiki/Aheui)) as a good
example.

~~~
throwaway_bad
Now that I think about it, languages that aren't subject-verb-object probably
find OOP insane.

I tried to find an example of this and found a somewhat related article about
how Japanese grammar maps nicely onto ruby:
[https://thoughtbot.com/blog/learning-japanese-the-rubyist-
wa...](https://thoughtbot.com/blog/learning-japanese-the-rubyist-way)

~~~
tom_mellior
> Now that I think about it, languages that aren't subject-verb-object
> probably find OOP insane.

I'm not sure if that's true in this generality. After all,
"agent.doSomeThingWith(object)" is not a declarative sentence, it's a
_command_. So you'd have to look for languages where _imperatives_ don't have
subject-verb-object (as an acceptable) order.

I'm sure there exist some, but at least I would expect them to start with the
agent you are commanding.

~~~
yorwba
The agent still needs to hear the complete command to carry it out, so there's
no strong pressure to prefer a particular word order.

In German, the difference between the imperative "Machen Sie das!" [Do that,
you (polite form of address).] and the declarative "Sie machen das." [You
(polite form of address) are doing that.] is that the imperative does _not_
put the agent first.

~~~
tom_mellior
Interesting point about German, though du/Sie isn't the kind of "agent" I was
thinking of. I meant something where you name the agent by name, like "Frau
Huber, machen Sie das!". And yes, I know you can put the name at the end as
well.

The du/Sie in such sentences is something that's specific to German compared
to the other languages I know, which don't need (or even allow) the pronoun:
"do this", "faites ça", "gjør det" are all complete sentences. In fact even in
German it's specific to Sie, for while you can say "mach Du das", "mach das"
is fine as well. (If you speak a different dialect from mine, you might insist
on "mache" instead of "mach", but around here that ship has sailed.)

~~~
mar77i
Interesting how German doesn't allow to drop the addressing pronoun due to how
the sentence structure works, but Scandinavian readily allows even the number
of addressees to be derived from the context. I guess I prefer English over
German as the language for programming because it shoehorns a lot of structure
on a later, more boiled-down incarnation of Germanic, and notably (therefore?)
ships many short and flashy words, such as "if", "on", "not", "do".

------
nightnight
OT: Languages are the biggest lock-in + market barrier for others an economy
has (best example is China). Great that English has got even bigger as a
lingua france since the Internet started. I think every try to spread local
languages is just wasted time. I am rather afraid that more tech leadership
comes from China (I am looking at all the Chinese Githup repo READMEs).

~~~
tsanummy
If this is an ironic post, hats off to you.

~~~
nightnight
Dear tsanummy, help us to find the irony in my post or better the message in
your post. So, what's your point? I'd love to know what you are talking about.

Just to give another example: Imagine all countries in the world had the same
language and people could move freely: You had massive and full competition
between all nations/cities/economies for the best people and competition is
good. Nobody is locked-in because of odd languages or would you dare to move
to Beijing tomorrow?

Or imagine you had the same with languages and a nation forced people to only
use Cobol and ignore newer developments. You get it? English is btw also a
language which is easily extendable, something like creating verbs out of
nouns is not that straight-forward in other languages. It keeps English alive.

~~~
matz1
If suddenly all countries had the same language i bet overtime, they will
change and gradually evolve into multiple language.

~~~
reirob
Interesting thought, and looking at how many Romance languages evolved from
Latin in the past, there might be something to it. At the same time there are
languages that managed to re-unite the different dialects, at least in
education and literature, I am thinking about the Hochdeutsch for German [1].
So we have at least a counter example. Would be interesting to know what are
the factors that lead for similar languages/dialects to become one or the
opposite.

[1]:
[https://en.wikipedia.org/wiki/Hochdeutsch](https://en.wikipedia.org/wiki/Hochdeutsch)

------
jacquesm
If there is one thing this will achieve then it should be this: it should help
to show those born in the world of English what a privileged position they
have. For every other person in the world not born into English that is the
first hurdle they have to cross in order to get to the next one: programming
itself. Anybody that is born in an English speaking region has a huge head
start in this respect.

Note that it goes much deeper than just the programming languages keywords:
there are the books, the courses, the documentation, the bulk of all the open
source projects out there one could use to study and so on.

~~~
falcolas
FWIW, most non-English countries teach children English in their version of
middle school. And most English speakers aren’t like the stereotypical French;
English speakers are quite tolerant of both sentence structure mistakes and
extreme dialects.

They’re not really at that great of a disadvantage.

~~~
jacquesm
Yes, they are. There is a _huge_ difference between having a language as you
mother tongue versus having it as a secondary one. My English is reasonably
good, I started young (at age 10) and yet, by the time I was 14 or so the
programming books I had access to were _way_ over my head. If English had been
my first language I would have had a much easier time.

It's not about English speakers tolerance, it is all about the _reader 's
ability to grok a complex written text_.

~~~
opwieurposiu
Semi related question: Did you pick up the word "grok" from reading Stranger
in a Strange Land or from somewhere else?

That book was so much about the importance of the martian language and how
language shapes perception.

~~~
jacquesm
> Did you pick up the word "grok" from reading Stranger in a Strange Land or
> from somewhere else?

Absolutely. Using it wasn't an accident either. The word is used
illustratively only in the text, it is never explained.

------
kerkeslager
This is far from the first non-ASCII programming language[1].

Some folks have brought up balkanization as a bad thing, but there are some
reasons to believe that balkanization could be a good thing. By putting up
barriers (like language) between silo-ed groups, you allow each group to
develop their own ideas under different selective pressures, which leads to
different results. Then, at some point, someone with vision and skill breaks
through the barrier and their ideas from one silo revolutionize the other.
It's unclear whether these ideas would ever develop and mature in a more
homogeneous programming environment.

Looking at a different field: climbing. The industrial rope access, arborism,
and recreational rock climbing communities have developed fairly
independently, despite having a lot of the same base equipment and needs. The
results are some fairly different solutions to the same problems. As a rock
climber, I've learned a lot by cross-pollinating ideas with the other two
groups. Sometimes the rock climbers do things better (dynamic ropes are a much
better way to prevent spinal compression than full-body harnesses and
screamers) and sometimes the other groups do things better (rope walking is
_far_ superior to hand ascenders). And these come from the independent
selective pressures of each field (rock climbers fall more because they're
pushing their limits of skill, so their fall protection is better, while
arborists ascend the rope constantly so their rope ascension is better). It's
not entirely clear to me that these very different techniques would have
developed if the fields had not been able to grow their own communities fairly
separately.

[1] [https://en.wikipedia.org/wiki/Non-English-
based_programming_...](https://en.wikipedia.org/wiki/Non-English-
based_programming_languages)

------
mattigames
We already have like 100 hundred programming languages, adding localization to
the tokens of each one would grow that to say least 1000; the human race
doesn't need more excuses to create divisions among us, it actually needs the
opposite. I already hate with a passion the Stackoverflow version on my native
language (Spanish), the answers are always subpar (or just missing) to their
English counterpart due being such a small website.

~~~
olah_1
Or, we use content-addressable and immutable code like in Unison. It doesn't
matter what you call the function or what I call it. It's the same code.

[https://www.unisonweb.org/](https://www.unisonweb.org/)

------
fxj
In Python 3 you can now use localized variable names. Something like this is
valid python code:

>>> π = 3.14159

>>> jalapeño = "a hot pepper"

>>> ラーメン = "delicious"

------
varelaz
First time I've seen non-ASCII language around 7-10 years ago. It was 1C
language, it's very alike to Visual Basic but all in Russian. I think it was
very good idea to use Russian for that, it's embed language for platform
developed for local market. So to start you don't need to know English, which
is probably the main barrier in former USSR to become a programmer.

------
gwbas1c
I think this really misses the point about where "english" comes from in a
programming language:

When we look at modern languages like C, C++, Java, C#, ect, the amount of
English keywords are very minimal: "if", "for", "while", "do"... Most of a
program is user-defined variables, classes, methods, ect. All of these can be
in whatever language the programmer wants.

The bigger complication comes from major APIs: Mac, Windows, Linux, ect, have
APIs written in English. Even if you were to write a program in a C-like
language where "if" was replaced with a non-english keyword, and you defined
your variables, methods, ect, with non-English names, you'd still need English
APIs as soon as you interoperate with anything.

Furthermore: Names in APIs tend to be so cryptic, and require so much domain
expertise, that I wonder how much value comes in translating them? Will
training a non-English beginning programmer in a language with keywords from
their natural language be helpful?

Seems like a good experiment, IMO!

------
xvilka
In fact, support for languages like Arabic, Farsi, or Hebrew is still pretty
bad in many computer programs. This is why we started an initiative to improve
the support of any bidirectional language in terminal emulators and terminal
programs, e.g. vim, emacs, mutt, ncurses-based programs, etc. I maintain a
list[1] of the supported programs. The specification[2] of a new standard is
also available, moreover GNOME Terminal supports it since GNOME 3.34 version.

[1]
[https://gist.github.com/XVilka/a0e49e1c65370ba11c17](https://gist.github.com/XVilka/a0e49e1c65370ba11c17)

[2] [https://terminal-
wg.pages.freedesktop.org/bidi/recommendatio...](https://terminal-
wg.pages.freedesktop.org/bidi/recommendation/)

------
HelloNurse
If your Arabic-only programming language has an English web page (actually a
blog post) it means it's an art project, not a bona fide tool for programmers
who want to use Arabic input and/or who prefer Arabic names and keywords.

~~~
the_other
The way I see it, if its creator made software with it, then it's a bona fide
tool for programming. The fact it hasn't yet spread to more developers than
those involved in the project doesn't negate its "fide"s or "tool"-ness.

If you made a parser for a scripting language for content for your
application, or a DSL for your colleagues to use, would you claim they weren't
"bona fide"?

~~~
HelloNurse
It's a somewhat better art project than Brainf*ck or Piet because linguistic
barriers are more culturally significant than "just because I can"
exhibitionism, but it has the same practical usefulness. Arbitrary obstacles
make sense in conceptual art, not in tools.

~~~
SiempreViernes
Ah, another fan of the arrays-start-at-whatever you decide!

------
gumby
This is very exciting, especially given the Lisp-like notation.

high level (non-assembly/machine code) programming has been stuck in an indo-
european rut -- a productive one of course, but like so many things one that
has a particular world view.

If programming had started in Arabic would we have developed generic functions
sooner? Perhaps with different views of type systems? The fundamental
structure of Arabic is quite different from the IE languages.

(I'm a native speaker of English from childhood but used to speak Arabic, and
do use other languages on a daily basis).

------
bloak
A technical problem with localising a programming language is reserved words:
either you decide in advance which localised variants will exist and you can't
add any later, or the variants are potentially incompatible and to combine
code written for different variants you would need to do some translation that
involves changing identifiers, and I can't immediately imagine how that would
work with libraries and so on.

Alternatively, you pick a programming language that doesn't have any reserved
words, such as FORTRAN. (Are there any other well known ones?)

~~~
Someone
PL/I. The argument there was that one cannot assume anybody to remember all
the keywords (over 300 in some implementations. See
[https://www.cs.vu.nl/grammarware/browsable/os-
pli-v2r3/](https://www.cs.vu.nl/grammarware/browsable/os-pli-v2r3/)), so they
weren’t any reserved words, allowing, for example

    
    
        IF IF = ELSE THEN IF = ELSE - 1; ELSE ELSE = IF + 1;
    

Writing a compiler for that must be fun, especially if one wants to produce
useful error messages.

~~~
C1sc0cat
On of the reasons that PL/1 didn't take of I believe, a pity as it was very
advanced (for its time) and nice to work with.

------
ChuckMcM
This was fascinating for me. I had an experience early in my career where I
was given some code written by a Spanish engineer to port, and the Spanish
comments and variable names kept interfering with my ability to see the code
structure. I ended up converting all the variables to simple letter/number
sequences and removing all the comments in order to get past that.

Years later I read papers by linguists which described concepts in one
language that were no expressible in another language. That too seemed pretty
amazing to me since something like snow is snow right? But English typically
has adjectives doing the heavy lifting to distinguish different kinds, but the
Inuit people had even more words[1].

The idea that it might be possible to express computation differently in
different languages, or perhaps even more effectively, seems really
intriguing.

[1] _" Yet Igor Krupnik, an anthropologist at the Smithsonian Arctic Studies
Center in Washington, believes that Boas was careful to include only words
representing meaningful distinctions. Taking the same care with their own
work, Krupnik and others charted the vocabulary of about 10 Inuit and Yupik
dialects and concluded that they indeed have many more words for snow than
English does."_ \-- [https://www.washingtonpost.com/national/health-
science/there...](https://www.washingtonpost.com/national/health-
science/there-really-are-50-eskimo-words-for-
snow/2013/01/14/e0e3f4e0-59a0-11e2-beee-6e38f5215402_story.html)

------
beagle3
APL is, I think, the only (relatively) common programming language without
English. It has lots of characters instead, most of which have a form that
hints about their function.

------
Nasrudith
One thing that surprised me about non-English programming was that they didn't
use some style subsitution of keywords with programming languages for their
compilers. It seems like it would be a simpler solution even with tokenization
potentially forcing some awkward word choices. Even considering the annoying
bugs which could crop up with that I would have thought it would have been a
thing. Apparently most just work with "the magic strings" or know enough
English already.

That would be far more helpful than pretentious finger waggling at wide masses
of people for not taking vastly unreasonable steps from the start. All from
someone privledged enough to be paid or spend unpaid time for an ostentatious
show project like this - in sharp contrast to how the actual non-English
progammers act - adapting or rolling their own for their purposes.

The toxic attitude on the website negates any outreach of even a "interesting
to see parralel evolved approaches" sense.

The 'not even trying to solve any problems just blame' is a personal pet peeve
of mine.

------
al_form2000
Assuming there is merit to the idea that the Latin charset gives unfair
disadvantage for people from other cultures (I think not(1)), then a language
should be formed from a culture neutral alphabet - say, klingon. It better
have a number of glyphs in the vicinity or 30 or so (for typing ease) no funky
char combining rules (for reading ease) etc. And it would still need
guidelines for naming functions, variables, not to mention pronouncing them
(these could of course be localized rules) etc. My guess is that it would be a
Latin like script, only with different glyphs. And of course, all var and
function names would be hopeless gibberish, unless we all decide to become
klingon/whatever fluent.

(1) At the very least, someone should explain why the rise of - say - the
russian and indian programmers, given the unfair barrier.

~~~
bayesian_horse
Maybe one shouldn't take the "unfairness" aspect too far.

This project seems to be more about recognizing cultural differences in
thought patterns and how they permeate today's computing world.

It doesn't seem to be geared towards teaching programming to students who only
know Arabic so far.

And English is being taught and used extensively in the Indian education
system and society in general.

~~~
al_form2000
That (cultural differences in thought patterns) is indeed an interesting take
(I'd like to hear what Larry Wall has to say about it). I do think it would be
best addressed at the background level (say predicate logic or somesuch) than
at a programming language level (which is more of a consequence).

Unfortunately, the "unfairness" thing has hijacked many subthreads and it
takes the proposal at face value (as in "Wouldn't it be cool if any
programming language was available in localized form, charset, keywords and
kaboodle?" \- no it wouldn't) .

~~~
bayesian_horse
I'd say predicate logic and much of the theory behind computer programming
would stay the same, regardless of the language.

And yes, I think it would be good for speakers of non-latin based languages to
be able to write programs (or notebooks) in their own language. Some stuff,
like business logic, NLP, or "Low Code" like in Excel, could benefit from
staying in one cultural frame of mind instead of switching between multiple
frames.

Especially for different writing directions, like with Arabic. At the very
least, Mandarin in Mainland China is now written almost exclusively left to
right, so it's not as painful to use latin letters in a Chinese text when
appropriate.

------
bovermyer
As an intellectual exercise, this is clever. I imagine it wouldn't take long
to learn how to use it to write a basic application.

I'm also willing to bet that the time I spend learning the Arabic writing
system in order to use this would be of general value, too. I'm fascinated by
writing systems.

------
cwbrandsma
Might be an interesting problem to have a localizable programming language. As
someone else mentioned, there are localized version of VB. And having worked
with code from other languages, I know those developers are not using english
for their variable names (or database schema names)

------
qubex
Any programming language can be made “foreign” by choosing appropriate terms
in a non-English language (perhaps written in a non-ASCII character set) and
then writing a front-end script that goes through the “foreign” code and does
the required substitutions before feeding it into a standard for-that-English-
based-programming-language compiler (or interpreter, or whatever). The English
words are, after all, only tokens that are then translated into the Abstract
Syntax Tree (AST) for that language. The problem with this particular
rendition is that it doesn’t in the _abstract_ define a particularly
_interesting_ , or _novel_ , or even _useful for specific situations_ new
language.

As far as I can tell, this is a LISP, and I can remember having read about it
ages ago.

------
jason0597
I remember when I was about 13 or 14 we would have this little program in
Windows that allowed us to move a turtle around and draw shapes with the
turtle. You were able to write little programs in code to move the turtle
around and draw more complicated shapes in a shorter amount of time. We were
doing all this in pure Greek, and writing the programs in Greek. In
retrospect, I believe this was one of the worst things we did. Sure, it
lowered the bar for students struggling with English to start programming. But
given how there is nearly 0 useful documentation on programming or on
programming languages in Greek, you were essentially tied to this little
program with the turtle. You had absolutely no ability to progress your
computing knowledge.

~~~
tolqen
That sounds a lot like Logo

------
musicale
I've also been puzzled for a long time about the seeming shortage of computer
languages that don't use English/ASCII keywords, though probably there are
more of them than I am familiar with.

Lisp has some strange keywords (CAR, CDR) that are ASCII but not exactly
English. APL relies more on non-ASCII symbols.

AppleScript is one programming language that at one point had at least 3
customized dialects (English, French, Japanese.) For example:

"the first character of every word whose style is bold" "le premier caractère
de tous les mots dont style est gras"[1]

Sadly modern macOS AppleScript seems to omit the non-English dialects
(although the "professional" computer language-like syntax is now available
via OSA, JavaScript, etc..)

[1] Cook et al., Applescript, HOPL III, 2006

------
fxj
The truely universal language is math. There are however languages that do not
use english words at all. e.g. APL or J. In these languages also localized
programs in any language would be possible.

For example quicksort in J:

qs =: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)

~~~
userbinator
Came here to find the APL comment, and I agree.

"APL: a non-ASCII programming language written entirely in APL"

------
mendelk
This reminds me of Yid++[0], a tongue-in-cheek C++ compiler with a bunch of
keywords translated into Yeshivish[1]. (I apologize in advance if the humor is
wasted on those unfamiliar with the Yeshivish / Talmudic world.) It's still in
ASCII though :)

If nothing else, these things remind me how lucky I was to not have had to
learn English while I simultaneously learned to program.

[0] [https://schorrm.github.io/ypp/](https://schorrm.github.io/ypp/) [1]
[https://en.wikipedia.org/wiki/Yeshivish](https://en.wikipedia.org/wiki/Yeshivish)

------
YesThatTom2
It would be more ironic if integer constants had to be written as Roman
numerals.

~~~
cyborgx7
Brilliant.

------
ramseynasser
hi everyone, author here. i am glad this project is still starting
conversations six years after it came out! if youre interested in a longer
read on the subject of the cultural assumptions of programming and computing
systems i wrote an essay for Technology as Cultural Practice last year:
[http://ojs.decolonising.digital/index.php/decolonising_digit...](http://ojs.decolonising.digital/index.php/decolonising_digital/article/view/PersonalComputer)

------
tacone
As a side note I am a big fan of non-asci command line aliases. I have my
keyboard set with the no dead keys layout, so pressing AltGr + [shift?] +
letter will lead to weird stuff like ÐıØΩ~˛. The great part of it its being
able to have single letter commands that won't collide with anything installed
on the machine. For example I have » as an alias to: [ | xargs -n1 -d "\n" ]
and I have a zsh function called Ð that let's me run commands inside a docker-
compose(d) container.

For example:

ls -1 | grep backup » rm

------
archie2
I wonder how difficult it would be to systematically "translate" something
like Java or C from "English" to any other language, especially non-latin ones
like Arabic or Japanese...an "if" statement makes sense how it written from an
English perspective but I have no idea how you express something like that in
said alternative languages without having to change structure and "meaning".

I don't even know if what I'm asking makes any sense... Need more coffed

------
guggle
"All modern programming tools are based on the ASCII character set, which
encodes Latin Characters and was originally based on the English Language. As
a result, programming has become tied to a single written culture. "

And that's good. That means "we"
hackers/programmers/developers/coders/whatever share something in common, no
matter our culture/country/religion/beliefs/whatever. Heck, I'd even go as far
as saying it's a thing of beauty.

BTW, I'm not a native english speaker.

~~~
springogeek
It is beautiful, but it's a barrier also. I don't think you should be barred
from learning to code because you don't speak a language which uses the
Latin/ASCII character set.

~~~
guggle
Missing the point... Everyone has to jump that barrier so that there's no
barrier between us, which is much more important.

~~~
jrh206
Native English speakers don’t

~~~
grenoire
This is such an odd exaggeration; the number of words you have to learn to
type are just abysmally small. You don't have to know what the word 'integer'
is to know how it works in your code.

I-N-T, three letters, this symbol means that the number does not have a
fraction associated with it.

As for the code base and documentation? Well, wouldn't you rather a lingua
franca as opposed to trying to Google Translate your way through comments?

------
didibus
I think PLs should have localization features for comments, doc-strings,
variable names and function names, etc.

Nothing should link in the actual computer from human readable text. I always
wanted a language like that.

You'd create a new function or variable and it'll get assigned a unique ID.
And the name is a doc-name same as the doc-string, only for human
documentation.

If you had that, you could localize the language pretty easily.

------
hypacrosaurus
It hurts because English-centric people feels excluded by their non-
understanding of a thing written in another language, suddenly realising other
cultures in the world can exist independently, and it's a history fate if
English is the _de facto_ language of IT. « Algorithm » is originally an
arabic word and first algorithms come from babylonians, they were written in
cuneiform.

------
isacikgoz
I appreciate the idea behind this project. I assume that there is a potential
in the subject of cognitive biases about programming.

------
oldgradstudent
In my Israeli highschool, we were taught Hebrew Prolog.

There was also a Hebrew version of basic taught to children (בסיסית - בייסיק
בעברית).

Completely pointless.

------
globuous
Really cool !! Kinda off topic, but it reminds that there is a mathematical
arabic notation which i always thought was pretty cool:
[https://en.m.wikipedia.org/wiki/Modern_Arabic_mathematical_n...](https://en.m.wikipedia.org/wiki/Modern_Arabic_mathematical_notation)

------
Myrmornis
There’s nothing stopping us writing software that reversibly transforms code
so that the keywords are expressed in a different language, with the
transformation being reversed before the compiler/interpreter sees it, right?
What’s stopping us from treating language as a superficial “view level”
property of code?

------
jgwil2
From earlier this year, an article about programming in languages other than
English: [https://www.wired.com/story/coding-is-for-everyoneas-long-
as...](https://www.wired.com/story/coding-is-for-everyoneas-long-as-you-speak-
english/)

------
EdSharkey
So does having the programming language be in your native tongue affect the
actual structure of the code as well? Beyond maybe just lots of yoda
conditions, say, would data schemas radically differ from other programming
languages because they can be better articulated when spoken aloud?

------
Mugwort
Interesting topic.

Non-English based programming languages. [https://en.wikipedia.org/wiki/Non-
English-based_programming_...](https://en.wikipedia.org/wiki/Non-English-
based_programming_languages)

------
dang
This was discussed in 2014:
[https://news.ycombinator.com/item?id=7700691](https://news.ycombinator.com/item?id=7700691).

I'm almost sure there was a more recent big thread though. Anyone?

------
smashface
I like the idea of this project. Its main goal is to highlight the bias
towards English in programming languages and computer science and I think
that's a great goal. I also think another great use would be to provide a
stepping stone to those who are native Arabic speakers to get into
programming. There will still be the English barrier to move on to other
languages (and likely more professional or "serious" work) but if you can
convince people that programming is interesting in the first place, this could
encourage them to keep going further. As it stands now, if you don't speak
English you would need to a certain amount of English AND programming
languages. Languages like this means you just get to learn programming first
while we figure out how to remove English as a barrier to entry.

~~~
rfhjt
There is even a coined story about languages: Babylon. People there made great
progress building things together while they spoke the same language, but
everything fell apart when they started speaking different languages.
Countries create their own languages and cultures sometimes artificially, to
silo its citizens: when you've been taught since childhood to speak some odd
language, it's hard to jump the ship later, so you have to restrict yourself
to this little playground or make an immense effort and learn the
international language. Luckily, such language still exist, although we take
that as given. Software today is that Babylon from the story: everyone speaks
the same language, everyone can can join and contribute with minimal efforts.
No taxes, fees, licenses and permissions needed to join. As software rapidly
gets bigger, people that have power start realising that this kind of freedom
is unheard of. They are used to the world of borders where they take a toll
for a permission to cross. So they pull the trick as old as humanity:
introduce artificial fragmentation of languages and cultures and make people
in their country use a language they control. And the more obscure and
counterintuitive this language is , the harder it is for people to cross the
barrier and the more profits they gain. If I were an evil and powerful
dictator of a big chunk of the world, I'd force everyone there to switch to an
artificial and very complex language, make it the only allowed language in the
country, and do the same with software. From now on all these people would
naturally have to live in this little artificial playground.

------
ahmaman
Makes me wonder, if there could be a transpiler of some sort that could take a
non-English syntax and convert it to the English counterpart syntax.

This way there might not be a need to invent a new programming language per
human language.

~~~
kalleboo
AppleScript in its original, 90’s classic macOS implementation, was said to
support this. It compiled down to a symbolic representation, which was then
restored based on which language was selected. IIRC only a French alternate
language was ever developed (HyperCard had more, but those scripts were stored
as text) but also a JavaScript “dialect”.

The compiled representation was mostly exposed to users when they didn’t have
the app used in a script installed and just got FourCCs/OSTypes sprinkled
throughout their script instead

~~~
ahmaman
Interesting, haven't heard of these!

I am sure many small projects attempted to innovate similar solutions but
never really took off.

If such a thing got popular, would be interesting to see if it would affect
international collaboration. Whether it would speed things up.

------
gshrikant
Actually a Forth written in a language apart from English would be a cool
idea. The 'words' model maps directly to natural languages and would be
straightforward to apply to other languages.

------
klhugo
One of the great things of tech is that it brings different people together to
relize amazing new things. The initiative described here does not celebrate
the differences, it creates barriers instead.

------
gedy
I've always wondered why this is not more common. Is there a reason you can't
just have localized keywords in each language that map to the same thing?
Chinese JavaScript, etc?

~~~
mschuetz
Excel seems to be localized and I absolutely hate it. A german version of
excel expected me to write WENN instead of IF, or SUMME instead of SUM. It's
dumb. Especially since if you're trying to look up code snippets or how to do
something in excel, you'll find one in english and then have to find the
corresponding german commands.

~~~
smcl
Google docs had a _really_ interesting quirk that drove me insane for about 20
minutes while I figured it out. I was helping someone with some shared
spreadsheet on Google Sheets and figured out that SUMIF(...) was what they
needed, by doing a bit of searching. Except that it refused to work where I
needed it even when I followed the docs to the letter, and when I explored it
a bit more the function seemed to work but only randomly. I'd recreate
_exactly_ the same data in the same positions in one sheet where it would
behave as I expected, but in another it would fail.

It turns out that according to the locale Sheets will change the separator for
params, so in en-US it'll be:

    
    
        =sumif(A1:A10, "Something", B1:B10)
    
    

while in cs-CZ it should be

    
    
        =sumif(A1:A10; "Something"; B1:B10)
    
    

On the one hand, that's really quite cool and impressive. On the other, I
would _never_ have expected a language or development environment to support
different syntax depending on the locale in use.

------
kkarakk
Damn can you imagine versioning issues? Popular plugin creator decides english
is too imperial for his tastes, switches to swahili(his native tongue :) )

Framework goes up in flames quite fast.

------
val314159
Why hasn't anyone pointed out that, except for function and variable names,
almost all of computer code is symbols which were pilfered from . . .
arabic???

~~~
trophycase
We're too busy feeling good about ourselves for pointing out English privilege

------
Yuval_Halevi
It's actually never come to my mind that there are only English programming
languages

So programmers in China and Russia also using only English programming
language?

~~~
otaviokz
Yep. That's probably why you'll never met a developer without a rudimentary
understanding of written english.

~~~
mmahemoff
As some empirical evidence, look at how few StackOverflow sites there are in
other languages: [https://stackexchange.com/sites?view=list#technology-
traffic](https://stackexchange.com/sites?view=list#technology-traffic). Just
three (Russian, Spanish, Portuguese), all were introduced 5+ years after the
main site started.

Similarly, Github doesn't have localised versions.

There are certainly clones in other languages (e.g.
[https://teratail.com/](https://teratail.com/) clones SO in Japanese), but it
shows how little demand there is when these well-funded platforms for
developers de-prioritise local versions. I couldn't imagine a comparable
platform for lawyers or accountants doing same thing.

------
cptwunderlich
He is very right about how many tools and sites have problems with RTL (right-
to-left) text. And don't get me started on mixing LTR and RTL text.

------
pknerd
Do not know about use cases other than the creator learned a few things.

I am interested to know what are the pros and cons of creating a language
syntax in Unicode?

------
pknerd
Uncertain about whether such programming languages will be worthy enough, I
think that DSLs in localized languages will have better use cases.

------
jancsika
Is there something like ASCII for Arabic? In other words small set of single-
byte Arabic characters so that cranks can complain about unicode.

------
jothezero
Does a sub-routine starts with : salam aleykoum ?

------
dangerface
This isn't the first non-ascii language most modern languages are utf-8, look
at any Chinese code for an example.

This isn't the first non-english language, when I was learning basic 20 years
ago it had support for german keywords.

This is clearly just a dumb political statement, that being said I don't get
why every one is so upset. I guess you could argue that it's cultural
appropriation but let's face it anyone who argues that is just petty.

------
PopeDotNinja
This is making my head explore. I love it.

~~~
robertakarobin
I suspect this is a typo, but it reads well anyway. :)

~~~
PopeDotNinja
Not a typo :) BTW, wanna go for a ride in my new Ford Exploder?

------
tempodox
Reminds me of the Latin front-end for Perl.

------
mensetmanusman
It would be nice to include a pronunciation for English speakers. I just read
it in my head as ‘scribble’

------
abderrahmane
this make me chuckle
[https://github.com/nasser/\---/blob/master/public/qlb/parser....](https://github.com/nasser/---/blob/master/public/qlb/parser.js#L883)

------
ridan002
This language is called 'Kelb' which translates to 'Dog'. Why is it called
that?

~~~
alanbernstein
Is that any less appropriate a name than "Python"?

------
m23khan
from what I understand, the name of the language is Klub - which translates to
Dog.

And the example showcases implementation of fibonacci sequence and calling it
with 10 as parameter.

A nice, straightforward syntax indeed!

Although I don’t speak Arabic, I find it a fascinating and beautiful language.

------
zelly
Wait until they find out LISP has no left-to-right bias and can be in any
natural language

------
sebastianconcpt
Why? What's the motivation?

------
lanevorockz
The comments here are just absolutely insane, STOP MAKING EVERYTHING
POLITICAL. Fake Intellectuals are trying to destroy STEAM by making everything
boring and everything about "This people are evil". WTF, it's COMPUTER SCIENCE
NOT POLITICAL SCIENCE.

------
jchallis
قلب / heart is simply a wonderful name for a programming language.

------
seddin
So its basically JavaScript but with the syntax translated to Arabic.

------
azr79
How do you pronounce it? Kalb?

~~~
seddin
'Kalb' sounds more like the word dog, 9alb is the correct way.

~~~
Cannibusted
Nine Elby?

For non-speakers, it's a bunch of scribbly lines.

------
ridaj
This is from 2012/2013.

------
jankotek
Scala supports Unicode characters in identifiers. It would be interesting to
know your take on that.

~~~
filleokus
Doesn't almost all major "modern" languages support that? The list is quite
long:
[https://rosettacode.org/wiki/Unicode_variable_names](https://rosettacode.org/wiki/Unicode_variable_names)

~~~
jankotek
Scala supports not just variables, but operators. * or + are not part of
language, but methods in library.

~~~
pritambaral
In symbolic programming languages (like Lisp), very few characters are "part
of language", as you say. In fact, some lisps (at least the ones I use: Common
Lisp, and Racket) even support reprogramming the reader.

------
an_to_nio
so, like APL

~~~
compressedgas
The language is a Lisp with different identifiers and lists printed right to
left.

------
pgcj_poster
This is at best useless, and at worst harmful. If we start using languages
other than English for code, then we'll end up balkanizing the software world.
People in humanities departments can talk about things like "Chinese Poetry"
and "Continental Philosophy," but in STEM, we should be above that nonsense. I
should be able to read code written anywhere in the world and understand what
it does.

This is the same reason that everyone uses FORTRAN. Can you imagine if people
went off and created their own "programming languages" instead? You wouldn't
be able to contribute to an open source project unless it happened to be
written in a language that you knew. There would be so much duplication of
effort: someone would write a library for Foo Language, and someone else would
do the same thing for Bar language. Job postings would ask for "Foo
Developers," and you wouldn't be able to just work anywhere. Fortunately,
programmers collectively decided to all use the same language. Let's not go
back on that decision.

~~~
jiofih
While it’s a good joke, in reality it does not compute.

“Learning a new language” as in programming language, sits in the days-to-
months range, while “learning a new language” as in Arabic takes months-to-
years, so you’re building a much, much deeper chasm for others to cross and
contribute, even though the source code remains English-based.

You can already see this happening with some open source libraries coming from
China, where the documentation and all discussion being in ZH already
completely blocks foreign contribution.

~~~
ISL
For centuries in the sciences, it was essential to know more than one language
in order to be able to keep up with developments worldwide. As recently as our
parents' generation, it was a graduation requirement for doctorates.

That English has become the _lingua franca_ [1] of the world is a recent
development. If we would like people to read our documentation, it is
reasonable to expect that we should do our best to learn how to read theirs,
too.

[1]
[https://en.wikipedia.org/wiki/Lingua_franca](https://en.wikipedia.org/wiki/Lingua_franca)

~~~
michaelmrose
There are 6000 languages. Even the top 5 would take a decade of your life. It
would make more sense to have a miniscule fraction of people make machine
translation better.

------
vectorEQ
beautiful :)

------
faissaloo
Fun little note, the programming language's name means 'Heart' in Arabic.

This makes me wonder if perhaps a abandoning language entirely and relying on
symbols for syntax might be the way forward, I have found that the more a
language tries to emulate writing the more ambiguous it becomes, maybe the
opposite will yield better results, perhaps we could choose to make the
language resemble a diagram. Very interesting and thought provoking project.

------
lbj
Excellent - What we need is less cooperation across borders.

(sarcasm may occur)

