new years resolutions

Peter Hansen peter at
Fri Jan 3 15:31:34 CET 2003

Mike Meyer wrote:
> Peter Hansen <peter at> writes:
> > Dennis Lee Bieber wrote:
> > > eltronic at fed this fish to the penguins on Thursday 02 January
> > > 2003 03:34 pm:
> > > > HTML is a programming language, why else would I have to debug it?
> > >         Then news posts and email are programming languages too, as I have to
> > > debug (spell-check) them <G>
> >
> > I see the grin, but note that this is exactly why those
> > are *not* programming languages, while HTML definitely is.
> > If you write the wrong HTML, the computer does not do what it is
> > supposed to do, while if you put the wrong content in your email
> > or news post, only humans mind.
> Now you're defining a programming language as something written while
> programming, and programming as a process that includes debugging.
> Which means that the secretary using word to whip up HTML isn't
> programming, because he doesn't debug it. 

That may be the best definition right there.  If you don't ever 
need or have the chance to debug it, you probably aren't doing
programming.  In other words, once a programming environment has
reached the stage where you just select behaviour and it is 
guaranteed to work, you probably aren't programming.

My VCR (well, I don't own one, nor a TV, but bear with me here :-) is
supposed to be simple enough to set up, but I definitely have to "debug"
it when I "program" it.  Sometimes I will actually set it up to record
a program a few minutes from now, just to make sure I know what I'm
doing.  On the other hand, there are these new-fangled gadgets that
let you just enter a code in the TV guide and it will record the 
selected show at the right time and duration.  Easy as pie.  Not 
really programming.

Entering content into Word and getting HTML out?  Not programming 
either.  I would agree.  I might adjust what I type to be more presentable
to a human, but I generally don't worry about what the computer might
think at this point.

Using an advanced, yet-to-be-invented environment where I can select
features from a GUI and a Python program is automatically generated,
complete with all necessary support functions, linked together, 
packaged, installed and ready for use on a machine?  Hardly programming,
although clearly Python is a programming language.

So what's the conclusion?  To me, it's that *programming* is something
a person does when they are instructing a computer how to carry out a
task and there is uncertainty about the approach (and therefore a need
to debug).

Doing work as in your secretary example, or mine with my advanced Python 
auto-generator (I call it "autocoding" :-), that *happens* to involve
a programming language is *not* programming if it doesn't involve the
same uncertainty as to the specific instructions to be used.

Typing into a document that ends up as a PDF is not programming by 
any stretch of the imagination.  Yet the data is stored in the form
of Postscript instructions!  That's a programming language, right?

Okay, I think that describes my view now.  Maybe others have a differing

> Personally, I think that insisting that programming languages be
> turing complete is a better definition, because it captures the
> essence of what programming is. I'm quite happy saying that any
> language that isn't turing complete isn't a programming language.

That's another definition and, as it's clearly more constraining,
possibly a more useful one.  It's not widely used, however, as far 
as I can see, whereas mine seems to capture the meaning of the term
"programming" a little better.


More information about the Python-list mailing list