After however many years you’d like to consider computational instruction to have been around, it looks like it is now ready to be taken seriously as a medium of expression meaningful to humans as well as machines. In our plainly mathwise languages, we have always had the means to convey nearly as much as we’d like (convenience aside) but I really think that we’re taking advantage of our ability to express ourselves in code beyond what’s necessary to use machines as tools.
- high obfuscation
It is left to the reader to find more examples, but here is one example of a recognized and heady performance in the field of perl poetry. The selection of perl is not a coincidence, but stems from perl developers’ frequent concern for taste and desire for elegance.
- more perl
An open forum for aspiring perl code-poets. Very open.
- lisp poetry
Lisp is a dynamically typed language, meaning its data types are defined sort of transiently. When this page doesn’t bother to decide whether it is for poetry about code or code that reads poetically, that’s hilarious.
Slightly more esoteric but of great illustrative value is this C program from 2001, heavy with nostalgia even then.
- obfuscated voting machine code
Premise: In a bid to point out the security risks in closed-source voting machines, entrants to this contest devise the most convincingly correct yet reliably ‘rigged’ code.
Rogue programmers create code that allows people to fetch information from dvds, and wind up in civil and criminal court for copyright infringement. The code is open sourced, enthusiastically disseminated on the Internet, printed on t-shirts.
Said code is transcribed into English in a peculiar way. Just for effect?
- 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
Termed ‘the illegal number’, this blu-ray encryption key was the subject of a similar dispute on a large scale in 2007.
The list of so-far symbolically powerful code continues, but it’s as organic as you imagine, and media crosses well – linux/init/main.c and so on.
Mathematics, the study of totally constructed concepts like numbers, time, logic and all that, is the closest thing we’ve got to a universal language. Highly intuitive symbols are included, if not universal, and let me point out a few and critique them:
- ‘Square foot’, exactly like it says on the box. Not that a foot is a good unit of measurement – a human foot is of course not a standard base for a system the way the size of our watery Earth is – but this symbol is excellent in its simplicity and expressiveness anyway.
- ∠ An ‘angle’! Very nice. Just a drawing of the referenced thing. Conveniently, this one is extensible – you can mark it up to show that you mean the measure or that your angle bisects another one, or what three points describe it.
- ƒ ‘Function of’, pretty daft as it’s just an initialization. At least it’s scripted, so you can tell it’s not just an F, I guess. This is precisely the kind of thing we should stay away from. A better symbol? ☡ would at least show the process of something undergoing a path, ⍆ shows a thing passing a threshold.
- ∞ ‘Infinity’. Well, I guess this one works. I’ve never been a huge fan of the ‘lazy eight‘, as it in no way indicates to me an unlimited amount of anything. But as an enormously abstract concept, it’s not easy to symbolize without encoding, so this arbitrary, somewhat rationalizable symbol (it keeps going!) works well enough.
- Δ ‘Delta’, commonly indicating a change in something over time. Pragmatically, an arrow describing the path of the sun, phases of the moon, tides, plants, something like that would be better. However, I do think it’s great that, in English, a delta is a change in a river over time. A triangle shaped change. Is this intuitive? No. But for being referential in form, it’s way better than ‘Function of’.
- ¬ ‘Not’. One of the absolute simplest, and best. One has taken the straight tally representing ‘a thing’, and broken it in just such a way that negates it in form, function, and concept. One of the most intuitive, least encoded symbols we have.
- ∧ ‘And’ shows the logical joining of two concepts into a higher, compound version. + is still useful as it shows two tallies in combination, but rather than depicting them together, a∧b is clearly the union between. while it’s not as intuitive as +, we at least have a demonstrative picture of a joining, more indicative of the idea that ‘both of these are required’.
- ∨ ‘Or’ is another logical operator, used as a∨b. The deficit of this and ∧ is that, while they’re wonderful in their logical inversion of one another, they are not referential of anything, and require some prior knowledge of their meaning. Good, but not perfect.
- ∅ ‘Null’, a very difficult concept to represent in mathematics: a group of nothing. I’m very pleased with this one, which is so intuitive that it’s more often reddened and superimposed on another symbol to show that it is not allowed. What a fantastic and practical use! Another, even more definite success where symbols are concerned.
- ∴ Here’s another terrific one. While not immediately intuitive, ‘therefore’ is an abstract concept. But if abstract concepts were shaped like dots, this symbol would show two of them with a third built on top, perfect units of reasoning being built on one another. Genius.
Icons, so called because they’re miniature depictions of what happens after you click them, are literal and potentially lossless signs. Direct pictographs! These are better for representing saints or images or objects, maybe even processes or maps, but not possible for abstract concepts. At right, a good icon for your address book application. But if you wanted to use it as a shortcut for ‘import contents’, it’s not really literal anymore, just suggestive.
I think we’re better off considering icons a different set of symbols; symbols are by definition abstract stand-ins rather than direct representations. The line between the two isn’t perfect; I’d like to share some groovy symbolic libraries that might straddle it.
- Heiroglyphics – Yeah, there are pictogrammatic elements to it, but they’re actually phonetic sketches made to document a verbal language. In other words, owls and crocodiles are really just letters.
- Asian characters – Asian languages have really interesting crossed and common inheritances, and the earlier parts, still largely preserved, are translations from pictographic languages. You can still tell this in certain symbols today, like in this Chinese character for middle.
- Naval Signals – totally encoded, but very widespread. I guess this is what words have to look like when they need to be seen from far away by strangers.
- Trail signs – about as iconological as can be got with sticks and rocks. The nature of these as a sculptural language made only from materials found on the trail is interesting itself, but there’s something very cool about the actual symbols used, I think.
- Hobo signs – as the trail signs above but more concerned with the specific occupation of tramping, and with a more urban vocabulary. Specifically, there are a lot of symbols describing the likely reaction of nearby people to different methods of begging, and suggested tactics for succeeding at the same.
Language is pretty fantastic as a way of symbolically encoding information into lexemes and then written or verbal data. It’s always telling when you learn another way in which culture and language are built around each other, as the translation (lossy compression) process forces the data a ceertain way. To put it another way, thoughtspace is way more infinite than wordspace, and it’s hard to express ideas without distorting them a little bit in the telling.
That said, even relatively simple and long-established ideas still get lost in the telling. We’re certainly getting better at this; in the last few years usability has become a priority for corporate, academic, and governmental designers. Still, we haven’t found a simple lexicon for symbols.
So many of our signs have cultural or lexical meaning attached to them – really they’re encoded and not everyone has the keys to get to the data inside, unless they have prior exposure to the symbols used. Yes, I have some examples!
(At this time, please extinguish your cultural mind as far as possible, and use only conscious reasoning for the remainder of this post.)
- Dig this faucet. You just got to a new country, and who knows whether cold is on the right or the left here? Good thing you read English, but if you didn’t, you’d be out of luck. That’s encoded data. (Also interesting: if instead of ‘Hot’ and ‘Cold’, it were heiroglyphics or kanji, would it be fixed? Maybe, if the characters you used weren’t too lossy.)
- It’s obvious to us which of these is hot and which is cold, but that’s because we’ve all agreed to the standard. But this is still encoded – hot water isn’t actually red at all. One could make a case for this simple encoding, though – lakes are blue and coals are red – and it’s a pretty good one. There’s simply a little bit of intuition and guesswork going on, but it might be necessary. The red/blue temperature grammar is a pretty common one, at any rate.
One totally culture-encoding free way of conveying information is to use an actual representation – the way some bus stops have a picture of a bus. Not easy mistaking that one. However, look what happens here – we’d have to show the water molecules vibrating in place, faster for the hot water, to show what the difference is in the physical world. Well, that assumes a significant amount of prior knowledge of physics, and more people in the world likely speak English than know very much about molecules. We could do it a lot of different ways, but I can’t think of a perfect one, so comment if you were able to think of it.
The images below all express the same idea.
Do these all communicate the exact same information? Which of these three are you most accustomed to seeing? Which would you prefer to have if you were chilling with someone who wasn’t a native English speaker? If you were playing a game with a child? If you were inebriated? Seriously- these are all valid cases for usability.