Have you ever taken a step back and looked at all the funny characters we use in programming computers?
I did this yesterday. Sometimes, when you look at familiar things in just the right light, they seem so strange.
I use the period to terminate all my sentences. In many programming languages the period is more of a continuation character. It says: “I’m going to act on this thing, and here is what I want it to do”.
boss.MakeMeASandwhich();
That code uses a semicolon to finish a statement; in writing the semicolon joins independent clauses. If symbols are so powerful, how can we juggle the conflicting meanings in our mind? Maybe Perl and C++ had part of it right using –> as a dereferencing operator.*
Sometimes a symbol will mean different things depending on how many times you type it. Like & versus &&. Or the = in JavaScript:
var x = 3; // assignment if(x == "3") // check for equality if(x === "3") // check for equality and i really really mean // equality because i typed an extra = character
Then we use symbols that impart meaning due to their shape.
{
// i'm trapped inside a { } and I can't escape.
}
It’s really not a far stretch from using { } to creating ASCII art.
$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$'`$$$$$$$$$$$$$'`$$$ $$$$$$ $$$$$$$$$$$ $$$$ $$$$$$$ '$/ `/ `$' .$$$$ $$$$$$$$. i i /! .$$$$$ $$$$$$$$$.--'--' $$$$$$ $$^^$$$$$' J$$$$$$ $$$ ~"" `. .$$$$$$$ $$$$$e, ; .$$$$$$$$ $$$$$$$$$$$.' $$$$$$$$$ $$$$$$$$$$$$. $$$$$$$$ $$$$$$$$$$$$$ $by&TL$
In fact, I think you could get the above picture to compile into something useful in APL.
* It’s amusing that the Wikipedia entry for Dereference operator has a single “See also” link at this time, and that link points to Segmentation fault.