?

Log in

No account? Create an account
Semiformalishmaybe

Arietta, part 1

This is part one of a sketch of the design for a programming language (and development environment) for blind people. More of this is done than what I'm posting now, but I'd like to post it in parts.

There are several problems a blinded person would face in programming. Chief among them is that programming is a spatial-textual task; without the ability to survey text (and arrange it into larger blocks of grapheme and supergrapheme units), it would be difficult to quickly survey and manipulate code. Some of these might be mitigated through use of custom hardware (e.g. a reversed tablet that could provide zoomable braille dots anywhere over its surface), and likewise there have been experiments that use other types of tactile inputs to provide a limited sight to the blind that doesn't rely on the eyes. This takes a different approach, using sound as the medium.

By sound, I don't mean reading the code; I mean a programming language implemented so that the code consists of series of notes. It is also not just an encoding of existing languages in note form; the semantics of the language (particularly the API-notesequence mapping) should have certain traits that are amenable for intuitive semantics (e.g. the equivalent of fopen() and open() should probably sound similar and should probably have a recognisable motif).

Using sequences of notes as elements of code will have the added benefit of allowing code to be skimmed in a way analogous to how programmers might visually skim a file of code; we already have the ability to listen to music quickly to get its overall structure or slowly to understand how something fits together. To the extent that people engage with code written in Arietta as music, I expect they will be able to do the same by having their editor play the code more quickly or slowly.

Finally, I anticipate people being able to code in arietta using a variety of programming tools, possibly on-the-go using a mobile device like a cellphone or tablet (or even a tape recorder; analogous to coding on scraps of napkin, which most of us have done on occasion), and possibly using either a cumputer keyboard or a musical keyboard or some other device(s) with MIDI interfaces.

I've chosen the name Arietta, because it's the first musical term I tried that didn't seem to be already used for a programming language. If someone uses it for something else before I start, and if I go forward with the project (or someone else does), I'll pick something else.

Comments are of course welcome; more details to come in coming posts.

Comments