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

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.

  • Comment on Re^4: TMTOWTDI... and most of them are wrong

Replies are listed 'Best First'.
Re^5: TMTOWTDI... and most of them are wrong
by adrianh (Chancellor) on Jul 02, 2005 at 00:54 UTC
    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".

      I'll be glad to accept Graham's Lisp books as proof of his technical chops.
Re^5: TMTOWTDI... and most of them are wrong
by dragonchild (Archbishop) on Jul 01, 2005 at 13:48 UTC
    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?
      I don't think science and programming have much in common. Science is about discovering fundamental things about nature while programming is about describing how to accomplish some task in a way that both your co-workers and your computer can understand.