A standard component in most undergraduate computer science programs is a semester course in programming language concepts. Now, I'm not a computer science major, but I did take the class last semester, and I really enjoyed it. I knew I was going to love the course when, on the first day, the professor's intro slide referenced the Sapir-Whorf hypothesis. You should take a few minutes to check out the Wikipedia link, but the CliffsNotes version is this: the language you use to communicate directly influences your conception of the world. A standard example of this hypothesis is illustrated by the language used by the amazonian Pirahã tribe; they do not count with numerals. They have no words for numbers, so--the theory goes--they cannot perceive numbers. Confronted with a pile of four pebbles and a pile of five pebbles, the Pirahã do not comprehend any difference. Of course, this is all just a hypothesis, but I've read enough Robert Anton Wilson, Korzybski and random buddhist texts to embrace the idea.
What in the world does this have to do with computer programming? Well, you program a computer using a programming language, right? Hmmm. Might the language you use to program the computer impact your fundamental conception of how to program the computer? Without going into nerdy details, the answer is--emphatically--yes. Stated simply, the tool you use to approach a problem directly shapes how you perceive the problem.
If all you have is a hammer, everything looks like a nail. - Bernard BaruchAs a musician, this concept had immediate implications. Might the tools I use to create music directly shape my conception of music? Any multi-instrumentalist will immediately tell you that this is the case. Play a piano for ten minutes. Now play a guitar for ten minutes. Now play a clarinet for ten minutes. I guarantee you that you just saw the world (musically speaking) in three completely different ways.
As an electronic musician, this concept had even further implications. Might the software I use to create music directly shape the music I create? For the last 4-5 years, I've been a Pro Tools user. I loved it. It did what I wanted to do, and it did it well (besides the fairly regular crashes). In time, though, I started hearing about some new software called Ableton Live. It was supposed to be pretty revolutionary; I was reading some very positive feedback about the software. So I checked it out.
Let me say--emphatically--that it has changed my life. Live has changed the manner in which I approach the creation of new music. In Pro Tools' defense, it is very good at recording music. If you know what you want to record, and you know how you want to record it, Pro Tools is your go-to; its editing abilities are unmatched (don't take my word for it, just listen to any Top 40 radio and you'll hear the kinds of turds it can polish). But I'm more interested in creating music--in starting with a seed of an idea, and allowing myself to see where it will go. This is where Live shines. It is operating under a different paradigm than Pro Tools. Pro Tools is meant to operate like a virtual multitrack tape recorder; you hit the record button once, you play some music, and then you hit stop. Your music is laid out on the screen, left to right, in the order you recorded it. Very linear. Live, however, uses loops. You are presented with a grid of open slots, any of which can hold an arbitrary-length loop. You can layer, stack, rearrange, cut, chop, mix, dice and (insert any other verb) to your heart's content. It's very freeing. When you have something you like, you press the record button and it will record it all to a more linear form, just like Pro Tools. It's magical.
After working with Live for around a year now, I find it interesting--and useful--to go back to the Pro Tools world. Like I said, its editing capabilities are amazing. If you've ever had to comp eight vocal takes into a cohesive track, Pro Tools' playlist feature is indispensable. Try doing that in Live.
The point of all this is that the tool you use changes the way you do the job. Sometimes the job dictates the tool. Other times--and these are those important creative times--the tool dictates the job.