The conception, birth, and first steps of an application named Charlie

Subscribe: Atom or RSS

The Magician and the Teacher

by Alister Jones (SomeNewKid)

Tom has come home from his first high-school physics class, and already he is sensing that he’s going to fail physics. All those numbers and formulas. He goes to his Dad and shows him the formula for momentum, p=mv, and asks his Dad what it means. “That’s simple, son; it’s just mass times velocity.” He grabs his calculator and says, “If the mass is four and the velocity is three, then the momentum is,” wherein he pauses to let Tom type the equation into the calculator, “twelve. Simple!” He pats his son on his head, and walks out to watch some TV. Along the way he thinks, I hope Tom is good at football, because his maths sure sucks. And Tom is thinking, I hope I can grow up to be a football player, because I’m going to fail physics.

Alison is in the same class as Tom, and asks her mother the same question. Her mother takes her by the hand and together they go to the spare room. Her mother pulls out the bowling ball that her husband bought her, hoping that she’d show an interest in his one hobby. She then finds a baseball and places it beside the bowling ball. Feeling slightly guilty, the mother says, “Imagine that you’re standing over there,” as she points to the doorway, “and each of these balls is going to roll toward you and hit your feet.” Alison looks a little amused, so her mother presses on with the analogy. “Imagine that they are both rolling toward you at about the speed you can run. Which one is going to hurt more?” Alison thinks the question is silly, but says, “The bowling ball is going to hurt, because it’s so heavy.” To which her mother says, “Correct.” Her mother then goes on to say, “Now, imagine that your baby brother has pushed the bowling ball toward you, but a cannon has shot the baseball toward you. Which one will hurt more?” Alison says, “The baseball, since it’s going so fast.” With the demonstration complete, Alison’s mother takes her back to her textbook where they look at the formula for momentum, which is p=mv. The mother explains that m is the weight of the bowling ball or the baseball, and v is the speed at which the ball is going. Harking back to the demonstration, her mother explains that sometimes a baseball will carry more momentum, and sometimes a bowling ball will carry more momentum. They then do the same sums that Tom did.

Guess who passed the first physics test? Well, actually, Tom and Alison both failed, since they had fallen in love and spent the entire classes passing love notes back and forth. But had love not blinded them both, Alison would have passed because her mother took the time to teach her, while Tom’s father only took the time to show him.

What this little story shows is that it takes me three paragraphs to make a single point. And the point is that a formula and a calculator is like a magic trick and the magician—they hide from you the reality. If you know the formula and can work the calculator, then all you know is the formula and the calculator. You know the trick but not the reality. To see the reality, you need a teacher, not a magician.

Let’s look at another equation that has become common in the ASP.NET world:

control + provider = functionality

All over the internet, and in books about ASP.NET 2.0, we have magicians repeating the formula and telling us what buttons to press on our calculator (Visual Studio). But Tom will not learn physics this way, and we will not learn ASP.NET this way. All we learn is the trick. Where oh where are the teachers who will explain the reality behind the trick?

I have become increasingly frustrated with the magical approach taken by .NET evangelists. Put one control and one provider into a top hat, wave a wand over the hat, and—abracadabra—a bunny appears. That’s a trick. Where are the teachers who will explain the reality behind the trick?

To bring this rambling weblog into context, let’s look at the architecture for Charlie. If I want to align Charlie with the direction that ASP.NET is taking, where in that architecture would a provider fit? Now Charlie’s architecture is so familiar that any architectural question that troubles Charlie must trouble thousands of other applications too. So for those of us who attempt to create properly-architected applications, where does the new .NET provider model fit within this well-known n-layered design?

How many users of ASP.NET version 2.0 could answer this question of where the provider model fits within a properly-architected application? One in two? One in five? One in ten? I would hazard a guess that it’s a very low percentage indeed. Why? Because .NET is being evangelised by magicians, and not by teachers.

This is one of the reasons why I was initially fearful of ASP.NET version 2.0. All the evangelists were magicians pulling rabbits from their hats and scarves from their mouths. Impressive, maybe, but pretty darn useless in the real world. I was fearful that ASP.NET was nothing but a bag of tricks that had no place in a properly-architected application. This is a real shame, because there is a very sweet logic to ASP.NET version 2.0 that is completely at home in an n-layered application design. Rob Howard and Scott Guthrie and the team for ASP.NET version 2.0 have done a sterling job, but the evangelical magicians are doing the ASP.NET Team a complete disservice. I truly feel that Microsoft should seek evanglists who are teachers, not magicians. Teachers can explain what Microsoft has done, why it was done, and how customers can use what it’s done. Leave the magicians to entertain Tom and Alison and other kids that their birthday parties.

by Alister Jones | Next up: The Provider Model, Unveiled

0 comments

----