Any person on Earth knows a language.
This may be English, French, Mandarin, Spanish or whatever, but any person
knows at least one among these.
Any text between persons are in one of this language.
We've been writing and speaking with each other in these languages since a
long time and they all became quite robust and powerful to tell what you
Then since the 50s, we've been writing and speaking not only to
persons but to computers.
And we've kept on "making" new languages to talk with computers, from
All of these languages for computers seem to me to share false
1) They're choosing an "orientation" be it "imperative", "declarative", "object", "functional", whereas languages for persons are multi orientation.
2) They have thus a specific grammar, focused on a single concept such as "object", "function", "query", "tag", "class", "resource", "triple"...completely different from the grammar for languages for persons, that ALL exhibits COMPLEMENTARY ideas such as "noun", "verb", "adjectives", "adpositions", "affirmation", "question"...
3) They let a person choose whatever words to reinvent "identifiers" from words picked up in a language for persons, either by concatening them ("PersonsWithASalary") or abbreviating ("iframe" or "char"...).
All of these draw a line between persons that took the time to learn one of
this language and the others.
With time, the so called "programmers" group has been growing but in 2008, it's still a very small one compared to the rest.
One of the refreshing idea of the past 10 years has been XML
: this is not a language per se, but symbols or syntax to talk to
The problem of XML are however serious by design.
1) The "tag" and "attribute" in XML are not mapped to any natural language, so two persons can equivocally do what they want with them.
2) Even if it can be made clear what a tag and an attribute are for, two relationships are not enough to tell everything you can tell in a natural language.
3) You can make whatever tag or attribute you want, exposing people to the drama of "nominalization" ("creation"), "concatenation" ("RectangleWithRoundedCorners") and abbreviation ("char").
Point 2 is particularly serious.
For example, 'animal' => 'dog' => 'Malik', 'USA' => 'San Fransisco' => 'Malik', 'Clara' =>'dog' => 'Malik', or 'Malika' => 'Malik' are 4 different meanings, that is, Malik is a dog, Malik is at San Fransico, Malik is Clara's dog and Malik is from Malika.
In English, it's easy to tell ; in XML, it's just equivocal or impossible to do.
For me, what's needed is thus not a new "language" but symbols much
better than XML, but one that is :
a) Richer than the 2 "tag" and "attribute" thing.
b) Nearer from the grammar of a language, with way to see a noun, verb, adjectives...
c) Univocal to tell what a symbol is for.
d) More restrictive on words, preventing a person to reinvent a noun, verb or adjective already in a language.
I have been working for 1 year on such symbols and making
recently progresses to make them into a working example.
The coolest right now is that I can tell it in plain French, let it get what I told from French for this to be told in English and for this to be thought about from English.
In the next 3 to 4 months, I hope I will show it to more people than myself
Stay in touch if you're interested to overcome "programming" languages and moving to more natural interfaces.