Python is readable

Chris Angelico rosuav at gmail.com
Fri Mar 30 14:29:13 EDT 2012


On Sat, Mar 31, 2012 at 5:15 AM, Nathan Rice
<nathan.alexander.rice at gmail.com> wrote:
> It is true that program complexity is correlated with problem
> complexity, language and environment complexity is undeniable.  If you
> want to prove this to yourself, find someone who is intelligent and
> has some basic level of computer literacy, sit them down at a computer
> and ask them to solve simple problems using programs.  You could even
> be nice by opening the editor first.  Don't help them, just watch them
> crash and burn.  Then sit them in front of code that already works,
> and ask them to modify it to do something slightly different, and
> again just watch them crash and burn in all but the simplest of cases.
>  It is painful - most of the time they just give up.  These same
> people almost universally can describe the exact process of steps
> verbally or in writing to do what is required without any trouble;
> there might be some neglected edge cases, but if you describe the
> failed result, often times they will realize their mistake and be able
> to fix it quickly.

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.

There are other similar jumps in thinking. On which side of these
lines are you? Do you remember making the shift? Or, conversely, do
you stare at it with "Huh? Why would I do that?"?

* Source control. Don't just keep daily backups - record specific
purposeful changes in a log.

* WYSIWYG document editing vs plain-text with a compiler. Pass up Open
Office (or worse) in favour of LaTeX, abandon Sibelius in favour of
Lilypond. Plays very nicely with source control.

* Unicode instead of head-in-the-sand pretending that ASCII is good enough.

* Open standards and toolchains instead of expecting monolithic
proprietary programs to do your work for you.

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.

ChrisA



More information about the Python-list mailing list