Number of languages known [was Re: Python is readable] - somewhat OT

Nathan Rice nathan.alexander.rice at gmail.com
Wed Apr 4 10:25:11 EDT 2012


On Wed, Apr 4, 2012 at 1:49 AM, Steven D'Aprano
<steve+comp.lang.python at pearwood.info> wrote:
> On Tue, 03 Apr 2012 13:17:18 -0400, Nathan Rice wrote:
>
>> I have never met a programmer that was not completely into computers.
>> That leaves a lot unspecified though.
>
> You haven't looked hard enough. There are *thousands* of VB, Java, etc.
> code monkeys who got into programming for the money only and who have
> zero inclination to expand their skills or knowledge beyond that
> necessary to keep their job.

Every programmer that I've ever met who got into it for the money has
washed out within about five years.  Sometimes they make a lateral
move to project management, other times they end up as requirements
analysts, and occasionally they become technical sales staff.  The
story is always the same - they do technical mediocre work, but get
along well with their peers, so they are transitioned to a role that
requires more people skills.

I've never met someone who had both poor people skills and mediocre
technical skills who actually kept their job.

> Go to programming blogs, and you will find many examples of some
> allegedly professional programmer selecting an arbitrary blog post to ask
> "Pls sombody write me this code", where "this code" is either an utterly
> trivial question or a six month project.

Honestly, I have seen that, but usually when I inspect closer it is an
Indian ODesk or Rent-a-coder worker who oversold himself and is trying
to cover his ass.

>> As part of my troll-outreach effort, I will indulge here.  I was
>> specifically thinking about some earlier claims that programming
>> languages as they currently exist are somehow inherently superior to a
>> formalized natural language in expressive power.
>
> I would argue that they are, but only for the very limited purpose for
> which they are written. With the possible exception of Inform 7, most
> programming languages are useless at describing (say) human interactions.
>
> Human languages are optimised for many things, but careful, step-by-step
> algorithms are not one of them. This is why mathematicians use a
> specialist language for their problem domain, as do programmers. Human
> language is awfully imprecise and often ambiguous, it encourages implicit
> reasoning, and requires a lot of domain knowledge:

You have to be careful when you bring mathematical notation into the
picture.  Remember that mathematics has developed over thousands of
years, with developments shared in many languages.  Greek letters
serve the same purpose in math that latin and greek names serve in
biology - they are neutral and avoid confusion with common names in
"living" languages.  Not everything about mathematical notation is
good, and in some cases it suffers the same issues that programming
does.  Mathematicians have a tendency to be very terse, and although
some greek letters and symbols have standard meaning, many authors run
roughshod over them.  Logic is somewhat better than math in this
regard, logicians respect their notation and rarely deviate from the
standard meaning of symbols.  Things ARE getting better, but for the
most part it is still kind of a mess.

Also, I should clarify that I consider part of mathematical notation
to be "natural language", namely +/-/*, and rational numbers.  People
"discover" these things on their own, mathematics just provides rigor.
 It is considered bad form to use them in prose, but that is just an
arbitrary "style" restriction; children intermix mathematical symbols
and language all the time, as to older students taking notes in a
variety of subjects.

>    Joe snatched the hammer from Fred. "Hey," he said, "what are
>    you doing? Don't you know that he'll hit the roof if he catches
>    you with that?"

Are you trying to get me to write obfuscated code?  You can write
ambiguous garbage in any language.

>> The crux of my view is that programming languages exist in part because
>> computers in general are not smart enough to converse with humans on
>> their own level, so we have to talk to them like autistic 5 year-olds.
>> That was fine when we didn't have any other options, but all the pieces
>> exist now to let computers talk to us very close to our own level, and
>> represent information at the same way we do.
>
> I think you're dreaming. We (that is to say, human beings in general, not
> you and I specifically) cannot even talk to each other accurately,
> precisely and unambiguously all the time. Natural language simply isn't
> designed for that -- hence we have specialist languages like legal
> jargon, mathematics, and programming languages, for specialist purposes.

Legalese is English with a ton of new words.  Mathematics is older
than most languages in current use and has a lot of baggage that is
(very) slowly being dealt with.

Programming really can't take the relaxed attitude about cleaning up
notation and vocabulary that we see in math.  Mathematicians spend a
lot of time thinking, and the transcription of their thoughts is a
relatively minor portion of their overall work.  Most programmers
spend a little time thinking, and the transcription of their thoughts
is the lion's share of their overall work.  3000 lines of math is
beastly, and probably represents a serious proof for the solution of a
challenging problem.  3000 lines of code doesn't get you much.

We'll get there eventually.  The only question is whether programmers
see the winds of change-a-blowing and position themselves to take
advantage of the situation, or they are slowly crowded out by
intelligent agents like IBM's Watson.



More information about the Python-list mailing list