Loading ...
Sorry, an error occurred while loading the content.

People or Languages?

Expand Messages
  • Rob Nagler
    The guys at the office keep laughing at me, because I can t stop trying to explain what I mean. Someone at my office mentioned Gerry Weinberg s comment that
    Message 1 of 4 , Mar 30 8:32 PM
    • 0 Attachment
      The guys at the office keep laughing at me, because I can't stop
      trying to explain what I mean.

      Someone at my office mentioned Gerry Weinberg's comment that you need
      to "refill the well" if you are a consultant. You need a way of
      becoming better at what you do. That same someone said he would like
      to learn Haskell to learn how Haskell programmers think. I then posed
      the following question:

      If you had a week to refill your well, would you like to spend it
      learning Haskell from a book or programming with Dan Ingalls
      programming Smalltalk? (Said programmer is already a Smalltalker.)

      If you don't know how Dan Ingalls is, substitute: Guy Steele, Paul
      Graham, James Gosling, Richard Stallman, Don Knuth, Butler Lampson,
      etc.

      Do you learn programming from people or languages? I think the answer
      is people. You learn by working on real systems written by real
      people. The more skilled the people who wrote the systems you work
      on, the more experience you will gain by working on them. You'll see
      patterns that aren't in any textbooks or language comparison classes.
      You'll learn the tradeoffs skilled programmers make when faced with
      complicated problems.

      My co-worker said he didn't have the opportunity to work with any
      gurus so my point is moot. I disagree. I can read the source to
      Emacs to learn how Stallman thinks, or perhaps gcc. If I am a
      Pythoneer, I can look at doclifter by Eric Raymond to get an idea of
      what a great hacker would do with Python. You could look at bOP, if
      you wanted to look at how a
      Basic-Fortran-Pascal-C-Modula-2-Java-Tcl-Perl-etc programmer might
      program a declarative application framework in Perl. And so on.

      Learning another system from the code is quite difficult. However,
      the best programmers I know, are also the best code readers. They can
      pick up anything and fix it or make it better.

      If you want to be a better programmer, don't learn a new language,
      rather learn how someone else solved a complicated problem in a small
      amount of code in a language you already know.

      Rob
    • Terrence Brannon
      ... Within Perl, I can list 3 books that refilled my well: 1/ Effective Perl Programming. This was the book that really opened my eyes to what could and should
      Message 2 of 4 , Mar 31 5:14 AM
      • 0 Attachment
        Rob Nagler <nagler@...> writes:

        > If you want to be a better programmer, don't learn a new language,
        > rather learn how someone else solved a complicated problem in a small
        > amount of code in a language you already know.

        Within Perl, I can list 3 books that refilled my well:

        1/ Effective Perl Programming. This was the book that really opened my
        eyes to what could and should be done with Perl. Here I learned to use
        one metaphor instead of 5 lines of code.

        2/ Object-Oriented Perl. This, along with Damian's modules were quite
        astounding.

        3/ It sounds like Higher-Order Perl might be the 3rd book to knock my
        socks off. But I have strong faith that spending my free time learning
        Haskell is the most productive thing I could be doing right now.

        Honorable mention goes to Data Munging with Perl. He took the topic
        that is Perl's sweet spot and managed to articulate in words, sections
        and chapters what Perl covers in giant steps in domain after domain.

        And finally, observing the new submissions to CPAN on a daily basis
        really helps you see what problems people have and how they solve
        them. I really wish Rose::DB had come out a few years back and I am
        doing my best to master DBIx::SQLEngine having enjoyed and been
        enthralled by the object wizardry of Class::DBI.

        > >
        > Rob
        >
        >
        >
        >
        > Yahoo! Groups Links
        >
        >
        >
        >
        >
        >
        >

        --
        Carter's Compass: I know I'm on the right track when,
        by deleting something, I'm adding functionality.
      • Adam Turoff
        This discussion is starting to take a democrats vs. republicans kind of feel. Someone described that as the meeting of two irreconcilable viewpoints: - the
        Message 3 of 4 , Mar 31 5:26 PM
        • 0 Attachment
          This discussion is starting to take a democrats vs. republicans
          kind of feel. Someone described that as the meeting of two
          irreconcilable viewpoints:
          - the status quo is bad, so favor change
          - change is unwarranted, so favor the status quo

          On the one hand, we have Rob who is fairly convinced that
          with a multi-paradigm language like Perl, any practice or
          technique worth adopting can be done through discipline,
          social engineering and practice.

          On the other hand, there's everyone else who subscribe to
          the belief that if you want to learn truly new approaches
          to programming, the best approach is to try new languages.

          There are advantages and disadvantages to each position, and
          neither is entirely right or wrong. They're just different
          approaches. TMTOWTDI and all that. ;-)

          On Mar 30, 2005, at 11:32 PM, Rob Nagler wrote:
          > If you had a week to refill your well, would you like to spend it
          > learning Haskell from a book or programming with Dan Ingalls
          > programming Smalltalk? (Said programmer is already a Smalltalker.)
          >
          > If you don't know how Dan Ingalls is, substitute: Guy Steele, Paul
          > Graham, James Gosling, Richard Stallman, Don Knuth, Butler Lampson,
          > etc.

          True, but there comes a point where there are no truly new ideas
          to find if you keep drinking from the same well.

          Case in point: if you compare FORTRAN I to Fortran 95, you'll see
          the same basic language, but some important differences. Modern
          Fortran feels like an Algol derivative with a syntax that dates
          back to the 1960s.

          Another example - Factor is easily one of the most interesting
          new languages I've seen in quite a while. It's basically Forth,
          with some inspiration from the functional programming world, including
          a type inferencing engine that reminds me of Haskell.

          These principles extend beyond languages that begin with the
          letter 'F'. Perl, for example, has a string of influences that
          is long as my arm. Perl 6 has a string of influences easily
          twice as long. All of those came from "outside the Perl community".

          > Do you learn programming from people or languages? I think the answer
          > is people. You learn by working on real systems written by real
          > people.

          True. Ultimately, we do learn from each other. And there are many ways
          to learn.

          I find that I learn more from someone like Gerry Sussman, whether I'm
          reading a text he's written, studying his code, listening to him give a
          keynote, or watching him teach (thanks to some recordings converted to
          Quicktime).

          Most of what I've learned from Kent Beck isn't from the code he's
          written,
          but about what he's written about the projects he's worked on. Ditto
          Paul Graham, Joel Spolsky, and Richard Gabriel.

          I also learn by working on real systems. *Both* are valuable. If
          you're
          going to learn from a text, you really need to find a *good* one, just
          like you need to work on a really robust system to learn anything
          useful.

          -- Adam
        • Rob Nagler
          ... Who are the gods creating these new languages, and what languages are they using to build them? How do we become gods and create languages? Rob
          Message 4 of 4 , Mar 31 9:58 PM
          • 0 Attachment
            Adam Turoff writes:
            > the belief that if you want to learn truly new approaches
            > to programming, the best approach is to try new languages.

            Who are the gods creating these new languages, and what languages are
            they using to build them? How do we become gods and create languages?

            Rob
          Your message has been successfully submitted and would be delivered to recipients shortly.