Aug 10 2004
Languages Are Like Relationships
I’ve picked up a fair number of languages over the years, like
anyone in the industry. The latest has been Python (and, for anybody
that wants a quick introduction to Python, it is really hard to beat
Dive Into Python), and, of
course, I am always completely enamored with the latest new language
that I learn, thinking that I want to use it exclusively forever.
Kind of like my relationships, actually.
But totally different, because relationships are substantial
investments of time, a commitment to the future, and… oh, I guess
there are a lot of similarities. So, without further ado, how
each language maps to girlfriends:
Assembler. She’s petite and a speed demon, but eventually it
drives you crazy that you have to explain everything out into
excruciating detail. You notice that your friends are already in the
car going to the movie while you’re still telling her how to put on
her shoes.
APL. Enormously smart and intelligent but wants you to speak
to her in Greek — backwards. No one really understands her
except for old-time IBMers.
BASIC. For a while, this was often the first love for a guy,
but most grew tired of her limitations and moved on. Showing her age,
now, although recently she got a face job and has lured some guys back
into a dialog with her.
Forth. Old. Doesn’t care much about how much money you have,
so she’s good to play with if you don’t have many resources. But:
talking to her is cryptic, and seems backwards, and she’s slow at
doing anything that you ask her about.
C. Elegant, but showing her age. For some reason, you often
can’t talk to her with words of more than 8 letters. She is kind of
picky about clothes: if you don’t check yourself for lint, she may
lock you out.
C++. C’s younger, classier sister. Hot around town and lots
of guys have fallen in love with her, but unfortunately she’s high
maintainance: for example, you have to take out her garbage, and
asking her to do something as simple as making copies can land you in
hot water. Guys without a lot of dating experience sometimes find
themselves locked out due to their unfamiliarity with her demanding
ways.
Java. Cousin of C++. Also hot around town, and many talk
about marrying her, but when you go out with her you realize that
she’s quite a bit slower than her cousin… and that maybe she was
overhyped. She is very friendly, though, and very good at talking with
other people, so she’s good to know.
Perl. Mercurial and temperamental. You like the fact that it
is very quick to talk with her, but you find that you don’t understand
her six months later. Oddly, she is much easier to get along with when
she is being strict. She has a friend, Cee Pan, who can often get her
to understand things very quickly, so you end up dating her
just because her friend is so cool.
Python. Some guys are put off by her attitudes about spaces,
but once you get past that, you realize that she’s clean and elegant
and easy to communicate with, and it makes you want to like her more
and more.
Smalltalk. Interesting and sweet, but she comes with a whole
set of baggage, and you have to take the whole kit & caboodle when
you go out with her. Every time. Sometimes you go over to her
place just to flirt with her — you find that it clarifies your
mind wonderfully so you can communicate better with other girls.
Lisp. Old — so old! — but still attractive
enough to entice men that have certain refined tastes. Having a good
car with cd-r is essential, and she likes lamb (da!). Been around
town, can do anything that any of the other girls can do, although she
doesn’t always play well with others. Speaks parenthetically all the
time, but you get used to it.
Prolog. Hot for a while. Kind of strange in that she doesn’t
like you to tell her what needs to be done; she just wants you to lay
out the rules and let her figure it out. She’s good in particular
situations but not in others, meaning that you’d take her to a book
reading but not for a night on the town, so you realize that a long
term relationship with her is impossible.
I’ll be updating this as I go, probably…