Expert Texture Home Contact me About Subscribe Digipede Connect on LinkedIn rwandering on Twitter rwandering on FriendFeed

The blogged wandering of Robert W. Anderson

Narrowing the Semantic Gap

Last week, PowerShell Architect Jeffrey Snover wrote an excellent post titled the Semantic Gap.  He writes about the gap as . . .

. . . 2 worlds:

  1. The world as we think about it.
  2. The world as we can manipulate it.

The difference between these two is what is called the semantic gap

This is a great working definition. 

Jeff writes about this specifically regarding PowerShell and instrumentation providers and asks the question,

So why do instrumentation providers close or not close the semantic gap?

Yes, some do, and some don’t.  This isn’t just about hierarchy of needs, but also about prioritization.  How important to the provider is a narrow semantic gap for product X when used through interface Y? 

In the case of X := Digipede Network and Y:= PowerShell, we thought it pretty important.

But how do you decide if narrowing the gap is worth it?  Engineering costs aside, understanding what your interface could look like in PowerShell can help you decide.  Internally, we answered these questions:

  1. What would a PowerShell script look like just using your .NET or COM APIs? 
  2. What could it look like with Cmdlets? 
  3. Would these Cmdlets support how we think about the Digipede Network (i.e., small gap?).

I already said the answer to #3 turned out to be yes and in a previous post, I gave an example of the gap in Why a SnapIn for the Command-Line?  This example highlights the gap for a common operation on the Digipede Network: get the description of a pool of resources.

If you are thinking about supporting PowerShell in your product, take a look at my post.

I hope this helps you decide.

Tags: , , , ,



    Jeffrey Snover wrote @ February 20th, 2008 at 9:24 pm

Writing sample scripts is an excellent way to evaluate the semantic gap.

One of my all time favorite PowerShell stories is when I visited MySpace and the developers told me how they brought their operations people into a room and had them go up to a whiteboard and write down a series of sentences describing how they would like to run their operations. When they finished the conversation when something like this:

Devs: “OK”.
Ops: “OK ?!?!?! – what the #@&^$ does that mean?”
Devs: “OK – that’s what we’ll build”
Ops: “What the @!)(#@ are you talking about?”

At that point the devs went to the board and put “-” between the verbs and the nouns converted a few things to parameters and added some pipeline symbols and said, “That is what you are going to type in PowerShell”

The Ops guys couldn’t believe their ears.

I love that story!

Jeffrey Snover [MSFT]
Windows Management Partner Architect
Visit the Windows PowerShell Team blog at:
Visit the Windows PowerShell ScriptCenter at:

    Robert W. Anderson wrote @ February 20th, 2008 at 9:48 pm

Thanks for the comment and a great story. Cheers,

Your comment

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>