Why Aren’t Computer Programming Languages Designed Better?

A great question. Love the study and it’s results.

قلب: لغة برمجة

The name I’ve chosen for my Arabic programming language is قلب. It is pronounced Qlb (or ‘Alb in the Levantine Arabic I speak) and it is a recursive acronym standing for قلب: لغة برمجة, pronounced Qlb: Lughat Barmajeh. The full title translates to “Heart: A Programming Language” in English (although this ruins the acronym and is no fun).

Acronyms in Arabic are notoriously difficult to do. قلب is great because it doen’t ignore any word prefixes and is the only recursive Arabic acronym I am aware of.

Who said everything’s been invented?

I started work on the interpreter for my Arabic language. Dealing with character encodings is an absolute nightmare, and iTerm does a great job of mangling a lot of the output, but it’s working! So far, I have number and string literals where I want them and preliminary versions of operators/function calls.

This is the first language I’m building from scratch (Zajal mostly comes into play after Ruby has done the heavy lifting) and I’m having a blast!

I’m using Parslet and Rubinius, and using the Capuchin Parser as a reference when I get stuck.

Part of my fellowship at Eyebeam exploring Code as a Self Expression.
So, this is totally happening.

I’m working on a robot bartender that uses Genetic Algorithms to generate and optimize drinks. I expect it to be the best user testing of my career.

Check out the project’s dev blog if you’re at all interested in robots or alcohol.

This is, like all the cool things I make, part of my fellowship at Eyebeam.
More experiments with Bit Goggles. This time done manually in photoshop with reference photos found online.

  beirut and her bizarre surprises: a middle-aged man delivering 99 red balloons to someone, somewhere
  
  taken from my car on ein l mraisi


Via this crazy talented artist/my little sister.

My father pointed out the spelling mistake in my bubble sort prototype (لائحة instead of لأحة). Stay tuned for a higher level of literacy in the future!

A more organized version of the bubble sort algorithm in Square Kufic. I’m not sure which one I like more.

My first attempt at code calligraphy. Part of my fellowship at Eyebeam exploring Code as Self Expression.
My first attempt at code calligraphy. This bubble sort rendered in the Square Kufic style. Letters in red are language keywords. It is laid out in a spiral, starting at the lower right and circling clockwise towards the center.

Part of my fellowship at Eyebeam exploring Code as Self Expression.
Prototype of the editor I am writing for my Arabic programming language. It is a WebKit WebView with a customized CodeMirror instance. The code listed is an implementation of bubble sort. The equivalent Ruby code would be:

for n in 0..list.length
    for m in 0..(list.length - n - 2)
        if list[m + 1] > list[m] then
            swap list[m], list[m + 1]
        end
    end
end


Part of my fellowship at Eyebeam exploring Code as Self Expression.
002 - David on Flickr.Via Flickr:
I was visiting a potential new apartment in Crown Heights and I had my camera with me to take pictures of the place. While waiting at the corner for the broker to show up, David stepped out of a convenience store and asked, pointing at my camera, “film or digital?” He told me he had a Hasselblad at home, and that he used to be a photographer, typesetter, and printer. We talked about photography, and the closing film factories for a while.
The crazy moment happened when I mentioned I was Lebanese, and he told me he was in Beirut in the early 80s, serving with the French army. He is from Martinique in the Caribbean, a French territory, and must have joined up and shipped out during the Lebanese civil war. We had a whole conversation in French and mused about how much we love croissants as a result of French involvement in our countries.
How small is this world?
This picture is #2 in my 100 strangers project. Find out more about the project and see pictures taken by other photographers at www.100Strangers.com.
001 - James on Flickr.