Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Perl vs Lisp/Java/C/C++

by archen (Pilgrim)
on Sep 09, 2001 at 06:22 UTC ( #111232=note: print w/ replies, xml ) Need Help??

in reply to Perl vs Lisp/Java/C/C++

Yeah, I saw that article too... but I'm not sure I really buy it. Development time is okay and all, but how about maintainability? I want to see these guys write a 500,000 line lisp program and come back to it 5 months from now, and then maybe they'll wish they'd have used Java. I'm not sure execution is quite as big of an issue as it once was. Scripted languages pay for an overhead in loading and such but for a language such as perl which usually runs off the command line, this isn't all that noticeable. Hell, a lot of compiled languages tend have so much stuff thrown in that they the computer ends up spinning it's wheels just loading unnessary junk. All in all, I'd rather shoot myself before I'd start programming in Lisp (lets just say I was scarred for life in college and leave it at that.)

Comment on Re: Perl vs Lisp/Java/C/C++
Re (tilly) 2: Perl vs Lisp/Java/C/C++
by tilly (Archbishop) on Sep 10, 2001 at 05:37 UTC
    You may have had a miserable experience with Lisp, but I think that you are writing it off far too easily. First of all a 500,000 line Java program is likely to be about a 50,000 line Lisp program. The factor of 10 difference in code size for the same task will pay for itself in maintainability. OK, since the lines will do more they will be harder to follow. Say a factor of 3. But that makes the overall code base about a factor of 3 easier to understand.

    Of course just glancing at the code base what you first notice is that you have to think. As petral pointed out to me once, this is analagous to the division between readable and legible fonts. Legible fonts are ones which can be seen easily from a distance and under poor viewing conditions. A readable font is one which you can easily read large quantities of. They are not the same. Lisp is very definitely not legible. But it lends itself to readable code.

    And it gets better. Your reduced code size makes it possible to work with a smaller team. Since intrateam communication has been known for decades to be the biggest bottleneck on large projects, that is an even bigger win. Therefore you have less code, your code base is easier to understand, and you have a smaller team that can work faster. Who would you bet on?

    This isn't just theory. Read Paul Graham's article Beating The Averages about the history of ViaWeb. One of the many points that he made is that they found that any competitor who was advertising for Java programmers could just be written off. They simply weren't going to be serious competition...

    (Many of the same points apply to Perl of course...)

      I probably am writing Lisp (and don't get me started on Prologue either) off to easily. I didn't exactly mean how many lines it takes to make a program - although that's a very good point! I meant just a raw count of 500,000 lines. I don't much like Java, but supposidly one of Java's selling points is that it can scale to be extremely large and still be reasonably maintainable. Truth be told I'm not sure I buy into that myself.

      Perl and Lisp do have similarities in how cryptic a program can look. But I think the recursive nature in lisp tends to add a degree of compexity, compaired to languages that are a bit more strait foreward.
Re: Re: Perl vs Lisp/Java/C/C++
by hding (Chaplain) on Sep 10, 2001 at 18:55 UTC

    I can't point to any scientific studies, but I find it a lot easier to read old Lisp code that I've written than old Java code that I've written. Of course, there's not all that much old Java code that I've written, so it may just be a matter of familiarity, which may also explain why you believe Lisp to be hard to read. I suspect part of it, though, is that Lisp lets me more directly translate how I think about a problem into its solution as a program, which means that the program, viewed at a later time, will more naturally correspond with what is in my mind, even at that later time.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (13)
As of 2014-07-23 17:08 GMT
Find Nodes?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:

    Results (148 votes), past polls