raganwald
(This is a snapshot of my old weblog. New posts and selected republished essays can be found at raganwald.com.)

Tuesday, May 15, 2007
  A Programmer's Story


To reduce a wonderful movie to a few lines, A Soldier’s Story is a tale about a murder investigation, set on a US Army Base in the South near the end of WWI. A Negro (this is the historically accurate term used in the film) Sergeant is murdered while returning home from leave.

The prime suspects are two white MPs. Howard Rollins, Jr. is masterful as the Negro investigator sent by the army from Washington to investigate the case. Rollins is educated, a senior officer, and is the classic “stranger coming to town.”

Howard’s performance, as wonderful as it is, is eclipsed by Adolph Caesar’s Oscar-nominated performance as the victim Sergeant Waters, seen through flashbacks. He is bitter, mean, and full of contempt for his fellow Negroes. He especially hates those that go along with the system and accept their subservient role to the Whites. He is a man who hates himself and takes it out on others.

The only person he respects in the movie is Denzel Washington’s character, Peterson. Peterson is young, angry, and stands up for himself against Sergeant Waters. Waters beats him brutally, but in his own way he respects Peterson for not taking subservience lying down.

The movie is so much more than a mystery investigation. Each scene painfully peels away a layer of the facade covering up the painful system of oppression. It never settles for simple White-bad, Black-stolidly suffering. It dares to examine the collaborators, those who actively manipulate the system for their own ends and those who stand by and do nothing to change it. It dares to show the divisions within the ranks of the oppressed.

Why shouldn’t we feel sympathy for those who just want to get along, to play baseball, to make music, to be liked without dedicating themselves to revolt? Why shouldn’t we question those who turn on their fellow man for not sharing their outrage and hurt?

In the end, Rollins’ investigator has the most poignant lines in the movie. He asks:

Who gave you…
…the right to judge?
To decide who is fit…
…to be a Negro…
…and who is not?
Who?

A programmer’s story

I see another round of chatter about someone who has drawn a connection between his programming and art. I have seen this idea expressed many times. Sometimes it is accepted, sometimes applauded, sometimes reviled.

Personally, I think it is fine to believe this about your work or the work of others you have seen. I also think it is fine to believe that your work is not art, that it shouldn’t be art. I know lots of people who think that programming should be mundane, that aesthetic beauty in code is suspect, as if it is necessarily inefficient.

The arguments remind me of the arguments about Brutalist Architecture, but even making that comparison brands me as one who thinks art, architecture, music, dance, and programs have something in common, so I accept that I may not really understand the arguments against aesthetics in programs at a deep level.

But you know what I do not believe? I do not believe that someone who thinks programs are not art is not a programmer. I do not believe that they are somehow barred from some mythical inner circle of super-hackers. I do not believe that they are less- or more-worthy of respect.

My greatest disappointment with some of the criticism I have read in response to Joe Marshall’s thoughts are those that are blatantly Ad Hominem, those that accuse him of pomposity and self-importance. Even if his words cut those programmers who do not see art in their work, even if his words celebrate those programmers who create artful or clever works, let me ask all of those people this question:

Who gave you…
…the right to judge?
To decide who is fit…
…to be a Programmer…
…and who is not?
Who?

People search for meaning in their lives. I do. You do as well. Talking about that search and what we find is something very deep to all of humanity. I cannot judge who is fit to philosophize. The beauty of the Internet is that there is no barrier to entry. No corporation controls the right to preach your beliefs. There is no requirement that you have a degree of a certain sort before you can write about the meaning of code.

Of course we can disagree about what we believe, about what we preach. We can even disagree with each other about what I am writing here. But honestly, aren’t we all fit to decide for ourselves what meaning our work has for us?
 

Comments on “A Programmer's Story:
There is a very big difference in these comparisons. On the one hand, there was a complete socially accepted system in place to oppress black people, stripping them of their rights and dignity.

On the other hand, all of this talk on all of these blogs is just that: talk. Anonymous powerless face A says: Mr. Foo is stupid and not a programmer. Anonymous powerless face B says: Mr. A is stupid and not a programmer. This is hardly anything close to a social system of oppression. These unimportant bloggers stating their asinine opinions (note that I myself am one of them, and am in fact doing this in this comment right now), make no difference to whether Mr. Foo can get a job being a programmer.

Blog talk can be ignored, social oppression can not.

"Who gave you the right to judge? To decide who is fit to be a Programmer and who is not? Who?"

I think that is taking blog talk way too seriously. People will always be judging others in unfair and stupid ways, and it is their right to do so. The only reason to really get upset is if unfair and stupid judgments actually make a difference in the world.
 
I never made a comparison. I am saying that a line from a movie that I like very much strikes me as the right question to ask under these circumstances.

As for taking blog talk seriously, this is what humans do: we are social creatures and as soon as we have taken care of our need for shelter and food, we start obsessing over our place in the social order.

It is difficult for us to move up to self-actualization if we cannot be at peace with what we think of others and what they think of us.
 
"as soon as we have taken care of our need for shelter and food, we start obsessing over our place in the social order"

The meat of the point I am trying to make is that if you are trying to find your place in the social order by obsessing over the opinions of anonymous powerless faces (aka top bloggers of the day found from reddit, or worse, those who leave comments on those posts), I think you are looking in the wrong places.

It seems to me difficult for us to move up to self-actualization if we worry so much about opinions from people whom we do not respect. The signal to noise ratio seems to be way too small. Like responding to trolls, sometimes it can be fun but it is never rewarding and usually a waste of time.
 
Well, I won't say that I run my life on the principle of trying to please others, but I would say that I prefer honey to vinegar.

I personally don't write to appeal to everyone, so I can't help but attract some differences of opinion. And I don't think clearly enough to avoid being wrong from time to time (recently, I confused Transcendental Numbers with Normal Numbers).

So... I take the rough with the smooth. But I still prefer smooth!
 
"My greatest disappointment with some of the criticism I have read in response to Joe Marshall’s thoughts are those that are blatantly Ad Hominem, those that accuse him of pomposity and self-importance."

This is the part in particular which I believe you are taking way too seriously. To take those criticisms seriously enough that 1) you are disappointed to have found them and 2) you use them as a driving inspiration behind your retort in your piece (driving since your question from a soldier's story is directly posed to them), seems silly to me.

Those people using Ad Hominem are trolling and to take their comments so seriously is just going to wear you out. Those people aren't writing well thought, careful responses. They are writing out any emotionally stunted flatulence that happens to come to mind in order to get out pent up aggression. That kind of writing does not deserve for you to spend so much time concerned about it, it is not healthy for you or your process of self-actualization.
 




<< Home
Reg Braithwaite


Recent Writing
Homoiconic Technical Writing / raganwald.posterous.com

Books
What I‘ve Learned From Failure / Kestrels, Quirky Birds, and Hopeless Egocentricity

Share
rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

History
06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /