in reply to Re^8: Steve Yegge on how to build IDEs and improve speed of dynamic languages
in thread Steve Yegge on how to build IDEs and improve speed of dynamic languages

Did you ever watch Norm Abrams, Master Carpenter in the TV program "New Yankee Workshop"? My carpenter father would have cringed to watch him making mortise & tenon joints using a router and jigs, but there is no doubt that he turns out workpieces much faster than my old man could. Could he do it by hand? Probably. The question is, why would he? And if the next generation of Master Carpenters can't, will their work be any the lesser for it?
When in the Army I was one of the last generations of artillery forward observers who were trained to their jobs with nothing more than binoculars, a map and compass. Now they use laser-rangefinders, GPS and electronic calculators and guess what happens when the batteries run out (and they always run out of batteries; it is the Army after all!)? You have to suspend the war until you can go out and buy fresh batteries.

The point I'm trying to make is that with all this assistance you risk loosing some basic skills "I don't have to learn the syntax as the IDE will correct my errors anyhow" and then you loose your grasp of the finer points of any language.

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

  • Comment on Re^9: Steve Yegge on how to build IDEs and improve speed of dynamic languages

Replies are listed 'Best First'.
Re^10: Steve Yegge on how to build IDEs and improve speed of dynamic languages
by BrowserUk (Patriarch) on May 14, 2008 at 07:02 UTC
    The point I'm trying to make is that with all this assistance you risk loosing some basic skills "I don't have to learn the syntax as the IDE will correct my errors anyhow" and then you loose your grasp of the finer points of any language.

    Well, could you check and correct your cars wheel alignment without one of those computer controlled, lasar guided dodads that costs several grand to install? I did it once after fitting uprated struts. It took me nearly 4 hours, but I was dead chuffed with some of the ad-hoc tools I made out of bits of fencing wire and and a couple of straight edges to guide me, and was pretty convinced it was right. Of course, as soon as it had been through the government test station, I ran down to the local tyre place and had it checked. The technician told me that the toe-in and alignment was within some very small margin of being spot on...except that it was all skewed 1 3/4 degrees asymetric about the centre line. In other words, the car was driving down the road sideways.

    The point. Modern life is full of things that mean we cannot do without technology. If your battries run out you can't use your laptop. If the power goes out for long, you can't use your desktop. Computers don't make much sense without electricity.

    As for "you loose your grasp of the finer points of any language". I'm forever being berated around here because I use the full power of Perl. "It can't be maintained by 1st year post graduate after a 4 days Perl course", they complain. 80 or 90% of the code I write is bog standard stuff. If the tools can save me time in writing that majority chunk and leave me to concentrate on the 10 or 20% that needs to be a bit trick, then that's all the good to me.

    Even better, if the some smart guy can write a bit of JIT that takes the non-trick version of that 10% and reliably turn it into trick code transparently, then so much the better. The whole point of HL and VHL languages is to allow the programmer to productively and effectively concentrate upon the big picture, and let the langauge take care of the details.

    Just like Norm and his jigs. He chooses how many and where to put the tenons. He lets the tools take care of making each one fit its corresponding mortise properly.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      I fully agree with you that one should use the tools when they are available, but OTOH one should not be restricted by them. When given the chance (and the batteries) I can put down a artillery fire on a target in 1 minute flat with only one ranging shot. But if the tools desert me, I can still do it in 7 minutes with 5 ranging shots at the most.

      Both you and Norm and me know how to do the job without the fancy tools.

      CountZero

      A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James