Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^2: TMTOWTDI... and most of them are wrong

by perrin (Chancellor)
on Jul 01, 2005 at 03:19 UTC ( [id://471539]=note: print w/replies, xml ) Need Help??


in reply to Re: TMTOWTDI... and most of them are wrong
in thread TMTOWTDI... and most of them are wrong

Note that we have very little evidence that Paul Graham is a decent programmer. His chief accomplishment was selling an e-commerce startup during the Internet gold rush. I'm inclined to take his opinions about what makes a good programming language with a grain of salt.
  • Comment on Re^2: TMTOWTDI... and most of them are wrong

Replies are listed 'Best First'.
Re^3: TMTOWTDI... and most of them are wrong
by dragonchild (Archbishop) on Jul 01, 2005 at 03:42 UTC
    I'm curious - what would you consider evidence that someone is or isn't a good programmer? I'd be willing to bet we could find a number of examples of his code somewhere on the Net. Granted, it probably won't be in Perl, but I'd bet the code would be pretty decent.

    Likewise, the same argument could be made for Larry's code. I mean, his biggest accomplishment is almost 20 years old. How much of Perl5.8 or 5.6 did Larry actually write? He's just a designer, right?


    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
      Larry Wall is famous for writing a series of impressive programs like patch and perl. Paul Graham is famous for selling his company and writing a book. Paul might be a good programmer, but his book didn't have much technical material in it, so I really couldn't say. I don't know Lisp, so I wouldn't be able to tell from his code anyway.

      In general, I feel like the whole "languages for smart people" thing is often hauled out as an excuse for writing obfuscated code that would fail your test 2. Most of us are less smart than we like to think when it comes to programming, and even smart people are often smart in different ways.

        Paul Graham is famous for selling his company and writing a book. Paul might be a good programmer, but his book didn't have much technical material in it, so I really couldn't say.

        He's also rather well known in the Lisp world for his other books - ANSI Common Lisp (exactly what it says on the tin) and On Lisp (a rather good advanced lisp book) :-)

        I don't know Lisp, so I wouldn't be able to tell from his code anyway.

        As a (mostly ex- these days unfortunately) Lisp programmer I'd say he's pretty darn good.

        Not to say that I'd agree with every word he says on technical subjects (like don't agree with everything merlyn or TheDamian say :-), but I'd pay attention.

        In general, I feel like the whole "languages for smart people" thing is often hauled out as an excuse for writing obfuscated code that would fail your test 2. Most of us are less smart than we like to think when it comes to programming, and even smart people are often smart in different ways.

        You're right, it is sometimes used as an excuse for terrible code - but anybody who does is completely missing the point Graham is trying to make. You can write obfu code that only "smart" people can understand in any language.

        While he didn't win any friends by the way he named the LFM and LFSP divide I think there is an interesting contrast to be made between languages like Lisp and Perl whose philosophy seems to be to trust the programmer to use powerful tools appropriately, and languages like Java and Python that seem, to quote Graham, "deliberately restrict the abstractive power of the language".

        In general, I feel like the whole "languages for smart people" thing is often hauled out as an excuse for writing obfuscated code that would fail your test 2. Most of us are less smart than we like to think when it comes to programming, and even smart people are often smart in different ways.

        I agree in principle with each of your points. Yet, no-one is going out and saying "General Relativity needs to go away because not enough people are mentally capable of understanding it." That's kinda how I see what you're saying. Just because something is complex and hard doesn't mean that it wasn't done correctly.

        Of course, we now enter the shifty realm of "How do you know when something is done correctly". My two rules are general purpose ones that maximize for both shareholder value and programmer productivity. (For the record, that's what Paul Graham maximized for with his business.) Other rules might maximize for programmer replacibility or who knows what else. The point is that different languages will meet the needs of different rules.

        Here's an example - I can see no need to ever have to use Java in my professional life. However, my professional life (as far as I can see) is a very specialized world that Java doesn't fit into. I can very easily conceive of a world where Java is the absolute right call. Different rules, different tools.


        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re^3: TMTOWTDI... (On Lisp, anyone?)
by Anonymous Monk on Jul 01, 2005 at 18:22 UTC
    Note that we have very little evidence that Paul Graham is a decent programmer.
    What about his book on advanced lisp techniques? It's pretty much the lispers bible about macro usage. Or how about his ANSI Common Lisp book. Don't those count as considerable contributions?
      Good point. I'd count that as evidence enough then. I'm not sure his team programming strategy (hire a few of your closest friends from college who already use the same style as you) will work for all companies, but it's a good approach when you have the option.
Re^3: TMTOWTDI... and most of them are wrong
by Anonymous Monk on Jul 01, 2005 at 18:37 UTC
    I'm inclined to take his opinions about what makes a good programming language with a grain of salt.
    Take as much salt as you need. Of course, I'm skeptical that anyone who thinks map is a difficult concept to master would be able to recognize a good language.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://471539]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2024-04-20 11:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found