Carl Franklin

.NET Wonk

Coders playing in diffrerent keys

Bob Reselman wrote me an email about our discussion this week (which I realize you won't hear until Monday), and I wanted to post it so we could all talk about it some more, as I think it's a discussion worth having.

We were comparing music and programming, and I mentioned “codes playing in different keys” Bob said:

You got me to thinking, I wish during the show we could have continued the A/Aflat discussion. You hit on a very important topic, how does the team/band work through a fundamental problem, a team member playing in another key/coding in another place? Are the notes of the player playing in A the wrong notes? Or are all others playing in A flat in the wrong place? How does one determine the proper key for the tune, or is the A flat player trying to lure the others to new ground? Or is he simply misinformed? Does the group chastise and shame him/her. Does the group make an effort to discover the minority player's thinking. Or is it so close to ship/performance time, that compliance to the thinking and direction of the majority is more important than synthesizing the thinking of the minority member into the behavior of the group overall?

To my thinking, keeping the music/code cool and meaningful while being able to accommodate and learn from mistakes/unexpected behavior is the sign of well adjusted, creative musicians/coders.

I do remember my sax teacher, Duncan Martin telling me not to worry about playing wrong notes. The trick he said is having the ability to turn the wrong note into the right notes.

Then once, I asked Leroy Jenkins of the avante garde jazz group, the Revolutionary Ensemble, if he ever played any wrong notes. The Ensembles music was way out there. He looked at me and said, "Boy, there are no wrong notes!" I was a young college student at the time. Leroy was in his mid-life by then. I think that he was on to something worth thinking about.

Comments

Catatonic said:

No wrong notes? You should hear my neighbour's kids learning to play the recorder.
# April 10, 2004 9:53 PM

Scott Allen said:

(Continuing the analogy) - there may be no wrong notes - but if the rhythm section is out of wack the entire band is pooched. Are PMs the rhythm section?
# April 10, 2004 10:57 PM

Bob Reselman said:

To my thinking wrong notes are a matter of context. An interesting question might be, How does one or a group create context, musical and otherwise?

Interesting note (not pun intended): in the phrase, "Coders playing in diffrerent keys", there is a misspelled word, a clear violation of syntax, and yet the semantics of the phrase is marginally affected, if at all.
# April 10, 2004 11:12 PM

mnrp said:

"there is a misspelled word, a clear violation of syntax, and yet the semantics of the phrase is marginally affected, if at all"

Exactly. Music isn't about notes it's about expression. Granted, it's much more difficult to "express" something with a tool that you know little about, you can't use very well, or severely limits what you can do with it. But it's far from impossible. I suspect the same is true for coding (except I suppose that if you write ++i when you meant i++, you could have a few problems getting your message out).
# April 11, 2004 2:28 AM

Pete Beech said:

So what determines what the right key is? It would often be determined by the singer (if there is one), and their range. Which I suppose in the analogy, it means there's some restriction which imposes what the right range of keys/programming styles is. I'm not sure what a singer relates to in the analogy - the manager? the user?

Even if you have the range of keys that are going to work, some of them might be more or less difficult for some of the instruments. Like certain keys are easier on the sax or guitar, depending on your level of ability. So thats another constraint.

If the song is a cover, then it might be determined by the key it was originally recorded in (if you want to really get it to sound the same) - maybe the analogy for that is design patterns? Or sample code from MSDN or whatever? I don't know..

Have I beaten this analogy to death yet?
# April 11, 2004 5:31 AM

Carl Franklin said:

> So what determines what the right key is?

I would say it's the spec. The spec is the score. If you want to make a coherent piece of music, you write it out before you play it. If you want free-style (jazz, if you will) then you can design "on the fly" as you play - or code as the case may be.

I guess you could say good design makes good software just as a good score makes for a good piece of music. Good hardware and technical correctness makes for a good performance.
# April 11, 2004 8:44 AM

Jamies D. Beine said:

Music has as much to do with "science" as with creativity. There are "technical" musicians, and there are "naturals", then there are the "hacks". All three contribute to the persistent frequencies that bombard society.

To this end I bring only these minor points.

The really exceptional musicians will tell you - “A. technical understanding of music is paramount.”

I think that this is a beautiful discussion.

The CLR is like a conductor in a symphony. Responsible for sending messages back to the musicians, each playing there own instrument on which they have practiced and demonstrated proficiency.

To this end the CLR should make the proverbial key a non-issue. The truth is that each of us is different. We all have different preferences, emotions, and discipline.

Jamie
# April 11, 2004 10:02 AM

James D. Beine said:


One more thing, with respect to the comment by Scott Allen, it is unlikely that the rhythm section would be the PM’s. Everyone can recognize percussionists. It’s a well known fact - “They are the one’s following the musicians around”. (-;
# April 11, 2004 10:14 AM

TrackBack said:

# April 11, 2004 10:28 AM

Bob Reselman said:

Ah the role and importance of technique!

To quote Picasso:

"... at 15 I painted like Velazquez, and it took me 80 years to paint like a child..."

http://www.spanisharts.com/reinasofia/picasso.htm

BTW: To my thinking, the importance of musical key is relevant to a very small segment of the human musical experience, that of Western Tonal Music. That Western Music gets so much air play and attention maybe makes its concepts and precepts seem more valuable than they need to be. Still the internesting question for me is context: How does one create a musical context and then how do others conform to it?

And then there is the question of pleasing the audience. I wonder if the role of artistic expression is to please the audience, in this case the musical listener. If this is true, and we were to measure greatest by the overall numbers of listeners at any given moment, then I think that Brittany Spears greatest would completely overshadow that of Clara Schumann.

As my friend and dance teacher Kathleen Hurley taught me, "Sometimes Modern Dance just ain't that pretty."
# April 11, 2004 12:12 PM

Pete Beech said:

If most guys play in A, and one guy is in A flat, its going to sound wrong - at least in western tonal music.

So the context is a cultural thing, which is dictated to by the musical experience of the audience and musicians. If westerners went to listen to some hardcore Indian classical music, they would think its wrong based on the context they know.

Maybe, in the analogy, the context is the software programming culture - like if you were raised on Petzold, or you're a Microsoft C++ and MFC person, or you're into C# and design patterns and software engineering, or an iterative design process, or no design and just hacking, or upfront design, etc, etc. Theres a whole culture that has built up around each of these things, which has rules bigger than the actual constraints of the particular language/design context.

To each person in one of the cultures, the other ideas might seem as alien as the indian music to a westerner - at first sight. But they also might appreciate stuff from it, and meld it into their cultural context, like say the Beatles did with Indian music. (although they really bent the indian context to the western musical context, they still had elements and ideas from that culture - so much so that that probably sounded 'wrong' the first time people heard it)
# April 11, 2004 2:19 PM

Bob Reselman said:

Public Interface CognitiveFramework{
Expectation getExpectation(Context context, boolean useStandardRuleOfLogic){

}

Reaction getReaction(Context context, Event event, boolean useStandardRuleOfLogic){

}

Context getContext(Context OldContext, Event NewEvent, boolean useStandardRuleOfLogic{

}

Vector getLogicRules(){

}
}
# April 11, 2004 3:48 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)