Cranking the code-o-matic

Microsoft recently announced their latest version of Visual Studio, a product pitched on the idea that anyone can produce useful software provided they have the right tools.

They call it Visual Studio LightSwitch, and right from the outset they make it clear that coding will be optional.

Microsoft’s insistence that CODING is OPTIONAL will probably make it an instant hit with every business owner who is frustrated by the cost and complexity of software development. Either that, or it could be another Microsoft Bob.

A road much travelled

This is a road that has been travelled many times. You probably know the history. One of the earliest attempts to bring software development to non-programmers was with COBOL in 1960.

COBOL had the explicit design goal that non-programmers should be able to read COBOL code.

So here you are, have a squint at this.

While it’s certainly possible to pronounce most of the words in this code listing I don’t think anyone will equate that to a meaningful understanding.

We have witnessed more than fifty years worth of attempting to put software development into the hands of end-users but still the problem remains largely unsolved for anything beyond trivial or highly domain-specific solutions.

If it is clear that the goal of end-user-development is a very difficult problem, arguably unsolved, it is equally clear that the dream has never faded away. Why is that?

The dream endures, but why?

One reason could be a lack of trust.

Successful software needs constant maintenance. As a software product becomes harder and more costly to maintain (as most do) the boss who doesn’t quite trust his team will be tempted to look for alternatives that appear more trustworthy.

This basic lack of trust becomes a self-fulfilling prophecy as communication breaks down and the team and the boss begin to work in opposition. The boss is now a prime target for being sold the idea that software development can be very nearly automated. It’s not a logical process, it’s an emotional one.

In other cases the boss simply lacks the necessary understanding of software development. They might think that programming is actually an unskilled or semi-skilled profession, where the programmer simply memorises a quirky list of words and symbols and then types them in according to a specification written by someone in marketing.

All this raises the question of what it means to program a computer.

What is programming anyway?

Not sure about this:

This probably is:

What about editing a configuration file? Obviously this is not programming.

What if the config file contains functions?

htaccess can get interesting, does it count?

And despite having no visible code, I’m fairly sure SSIS/DTS packages count as programming.

Are we closer to finding the line that delineates programming?

Here’s how I define it

Programming is the act of translating an idea, a process, something out of your mind into terms a computer can understand and act upon.

It has often been said that a person does not really understand something until he teaches it to someone else. Actually a person does not really understand something until after teaching it to a computer, ie, express it as an algorithm.
—Donald Knuth

Now the whole question of whether the production of software “without coding” is irrelevant. It doesn’t matter.

What matters is whether you’ve produced an algorithm, a set of instructions that a computer can follow to achieve a useful result. That’s where the satisfaction, the mental effort, and the joy of programming lies.

Back to LightSwitch, if it encourages more people to try programming for the first time then I’m all for it. Realistically though, I stand by my first reaction:



Posted in Programming

Ed Guiness

I am the author of Ace the Programming Interview, published 2013 by John Wiley and Sons. In 2012 I founded, a volunteering organisation for programmers. I have been a professional programmer for more than 20 years, and a hiring manager since 2004.

Ask me anything.