Python is readable
nathan.alexander.rice at gmail.com
Fri Mar 30 21:55:45 CEST 2012
> This is more a matter of being unable to express themselves
> appropriately. If I allowed them to write an exact process of steps to
> do what's required, those steps would either be grossly insufficient
> for the task, or would BE pseudo-code. There are plenty of people who
> cannot write those sorts of instructions at all. They're called
> non-programmers. Anyone who doesn't code but can express a task in
> such clear steps as you describe is what I would call a non-coding
> programmer - and such people are VERY easily elevated to full
> programmer status. I've worked with several like that, and the border
> between that kind of clear, concise, simple instruction list and
> actual Python or REXX code is so small as to be almost nonexistent.
> It's not the programming languages' fault. It's a particular jump in
> thinking that must be overcome before a person can use them.
Your statement that the difference between Python or REXX and
pseudo-code is almost non existent is completely false. While people
reading Python might be able to guess with higher accuracy what a
program does than some other programming languages, there is still a
set of VERY specific set of glyphs, words and phrase structures it
Pretty much anyone can follow a recipe to make a meal (and there are a
lot other examples of this), and conversely given the knowledge of how
to make some dish, pretty much everyone could describe the process as
a recipe. The same person will fail miserably when trying to create
working code that is MUCH simpler from a conceptual standpoint. "Non
coders" are not stupid, they just don't appreciate the multitude of
random distinctions and computer specific abstractions programming
foists on them for the purpose of writing EFFICIENT code. I'm talking
about like multiple int/number types, umpteen different kinds of
sequences, tons of different data structures that are used for
basically the same things under different circumstances, indices
starting at 0 (which makes amazing sense if you think like a machine,
and very little if you think like a human), the difference between
logical and bitwise operators (union and intersection would be better
names for the latter), string encoding, etc. When you combine these
with having to communicate in a new (very arbitrary, sometimes
nonsensical) vocabulary that doesn't recognize synonyms, using an
extremely restricted phrase structure and an environment with very
limited interactivity, it should become clear that the people who
learn to program are invariably fascinated by computers and very
motivated to do so.
I'm going to assume that you didn't mean that "non coders" are
incapable of instructing others (even though your statement implies it
directly). I think the ability of "non coders" to describe procedures
would surprise you. Things I hear over and over from "non coders" all
tie into people being frustrated that computers don't grasp
similarity, and don't try to figure out what they want at all; most
people provide instructions in an interactive manner. The computer is
too stupid to interact with humans, so you have to tell it what to do,
then try to run it, watch it fail, then go back and modify your
program, which is highly unnatural.
I think you'd find that these "non coders" would do very well if given
the ability to provide instructions in a natural, interactive way.
They are not failing us, we are failing them.
> Etcetera, etcetera. Everyone who's made the jump will see the benefit
> of the side they're on; most who haven't won't. Same with
> non-programmers to programmers. Why should I write like that when I
> could just write English? Simple: Because dedicated programming
> languages are far more expressive for the job.
Really? Or could it be that algorithms for natural language
processing that don't fail miserably is a very recent development,
restricted natural languages more recent still, and pretty much all
commonly used programming languages are all ~20+ years old? Could it
also be that most programmers don't see a lot of incentives to make
things accessible, since they're already invested in the status quo,
and they might lose some personal value if programming stopped being
an arcane practice?
Creating a programming language is a time consuming and laborious
process, the fact that people are doing it constantly is a clear
indication that what we have is insufficient.
More information about the Python-list