On Wed, Apr 4, 2012 at 1:49 AM, Steven D'Aprano <steve+comp.lang.pyt...@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. -- http://mail.python.org/mailman/listinfo/python-list