|P is for Practical|
I had to pick C, because of my fun MUD-coding experiences. Sure, it's not very OOP, and it's got a polluted namespace like you wouldn't believe, and uses linked lists from hell, but it's so much fun to play in MUD code, especially when a 'feature' nukes some player you didn't like by accident. ;)
However, I did almost pick BASIC. On my first personal computer, this ancient Epson (8086, 2 5.25" drives, no HD), I had GWBASIC. GWBASIC was interesting - it didn't have some things that QBASIC does that I liked, and so couldn't take some of the games I found for QBASIC over to GWBASIC, but I found a neat feature that it had.
GWBASIC had a command called play. It took a string which consisted of note names, I could put a dot after the letter to represent the musical dot notation, I could use a > to go up an octave (and < to go down an octave) etc - it was a blast.
Before I found play, I'd written generic little games here and there, like hangman, but with play, I added music to my games.
I even wrote my own screen saver (like I really needed one). I used my first song, Mary Had A Little Lamb (arguably the "Hello World!" of the music world), and also set it to take the simple lyrics and scroll them across my screen randomly, creating a snow-like effect of words set to music.
I still have all of my GWBASIC code sitting on some 5.25" disks in my mother's storage shed - I should go get those, find an old drive, and check it out again. hehe.
In reply to Re: Favorite programming language, other than Perl: