Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: "There are some stunningly novel ideas in Perl" -- Paul Graham

by adrianh (Chancellor)
on Apr 28, 2003 at 20:42 UTC ( [id://253831]=note: print w/replies, xml ) Need Help??


in reply to Re: "There are some stunningly novel ideas in Perl" -- Paul Graham
in thread "There are some stunningly novel ideas in Perl" -- Paul Graham

The profs don't have the best record (as in Pascal, Modula-2, Prolog, Lisp, Turing, APL, etc). I mean sure these languages all have their fine points, but writing business type apps in a reasonable timeframe for a reasonable budget doesn't seem to be one of them.

I have to disagree.

Pascal is hardly a fair example. At the time it first appeared it rocked - I'd much prefer it to FORTRAN or assembler. Now, of course, there are better options. At the time there were not. Language design improves, both inside and outside academia.

I know of very large and serious companies with large amounts of mission critical code written in Prolog, LISP and APL. Actually, I've never considered APL to be an academic language - I've only ever come across it being used by stats fiends in industry.

Prolog is a language I regularly miss, since it's quite hard to write code in a declarative/logicial style in Perl.

Judging the worth of a language by its commercial success isn't that useful. Perl, after all, doesn't come out very well on that scale. Neither does Python, Ruby, TCL, etc. COBOL and VB, on the other hand, must be great!

Commercial usage has a lot more to do with fashion, marketing and FUD than it does with the utility of the language.

I find it mildly amusing that the Lisp FUD ("slow", "all those brackets make unmaintainable code", etc.) is so close to the Perl FUD ("slow", "all those $@% make unmaintainable code", etc.)

I find it even more amusing that things that used to be bad ("Common Lisp has this ghastly abstract machine that makes everything far to slow to be useful") suddenly become good ("Java has this great abstract machine that makes it portable"). There is a lot of truth in the line that languages become more like LISP as they grow up.

Personally I would much rather code an application in Common Lisp than I would in C++, and in my experience Lisp hackers are much closer to Perl hackers in outlook that Java/C++ folk.

I have to admit I don't see the same hacker/academic confrontation you see in the article. He comments on the fact that much language innovation has moved from the academic world into the industrial/open-source world, and says nice things about the result. That's a fact and the reasons he gives seem reasonable to me. He's not saying "hacker languages bad, academic good" or "academic languages good, hacker bad". I can't see that he's expressing any surprise that this has happened either.

Did somebody with a PhD bite you when you were young? :-)

  • Comment on Re^2: "There are some stunningly novel ideas in Perl" -- Paul Graham

Replies are listed 'Best First'.
Re: Re^2: "There are some stunningly novel ideas in Perl" -- Paul Graham
by demerphq (Chancellor) on Apr 28, 2003 at 22:48 UTC

    Hi adrianh. Stands to reason that about the only reply that actually analysed what i said was yours. *grin* Yes, I sometimes have a chip about "academia". Yes I went off on a rant that I probably shouldnt have. Do I still think that I had a point? Yes.

    I have to admit I don't see the same hacker/academic confrontation you see in the article.

    Well I admit I probably read more into it the first time than there was there. Hence the update. Hence the replies.

    I know of very large and serious companies with large amounts of mission critical code written in Prolog, LISP and APL. Actually, I've never considered APL to be an academic language - I've only ever come across it being used by stats fiends in industry.

    Well, I'll admit that I know of a number of specialist fields where these languages are commonplace. Are they used worth mentioning outside of these spheres? I would argue that no they arent. Because generally speaking they aren't particularly suitable to general purpose work. I think that if they were we would see them more often. (I recognize this is dangerously close to a very bad argument, but in this case I dont think I'm crossing the line.)

    Prolog is a language I regularly miss, since it's quite hard to write code in a declarative/logicial style in Perl.

    I think a lot of people find it hard to write code in a declarative/logical style. I think a lot of people have a hard time even understanding the ideas behind it. Its unsuprising to me that we dont see a lot of code written that way. Its confusing. Hell most people have a hard enough time understanding perfectly straightforward imperative programming, let alone the wacky stuff.

    Judging the worth of a language by its commercial success isn't that useful. Perl, after all, doesn't come out very well on that scale. Neither does Python, Ruby, TCL, etc. COBOL and VB, on the other hand, must be great!

    I'm not sure that I expressed myself clearly. I certainly didn't mean to imply commerical success in terms of financial benefit. I meant more in breadth of use, in the number of running applications/systems (pick a metric) that were written in the language, etc. Think of C. What percentage of the worlds applications, including many of the run-time engines of the languages we are discussing have been written in C? All of them? Most of them? And id be suprised if language vendors in the C market have profitted from that language anywhere near as much as some the really profitable langauges like Java and VB.

    Commercial usage has a lot more to do with fashion, marketing and FUD than it does with the utility of the language.

    You really think so? I dont think the corporate world is generally as foolish as that. I think the market works out what is what eventually. For instance anyone who looks really closely at a proper Pascal implementation (not one of the later and fairly common pseudo-pascals that wasnt quite real pascal) would see that it is quite inferior to another language, quite similar in outward looking functionality, that being C. This has a pretty good overview of what I'm talking about. My point is that I don't think any propaganda would have lead to Pascal superceding C. And as we know we didnt see it happen. C ended up everywhere. Pascal didn't. C ended up everywhere. Lisp didn't. More recent past IMO also indicates the same, despite the huge hype behind Java it hasn't eliminated any of the main competitors on the scene when it started, there are still signifigant markets it hasnt penetrated (and probably wont). It snagged a chunk of market share, but is it holding on to it? Is it growing?

    Personally I would much rather code an application in Common Lisp than I would in C++, and in my experience Lisp hackers are much closer to Perl hackers in outlook that Java/C++ folk.

    How many programmers feel the same? Most I know from Uni hated lisp. More to the point, would your boss pay you to do so? Would he like to have to hire someone to replace you?

    have to admit I don't see the same hacker/academic confrontation you see in the article. He comments on the fact that much language innovation has moved from the academic world into the industrial/open-source world, and says nice things about the result. That's a fact and the reasons he gives seem reasonable to me. He's not saying "hacker languages bad, academic good" or "academic languages good, hacker bad". I can't see that he's expressing any surprise that this has happened either.

    Saying no. At points dripping with implications? Yes for sure. Lets just take the original posted paragraph:

    Language design is being taken over by hackers.

    Read: The enemy is at the gates! (Read the update at the bottom)

    The results so far are messy, but encouraging.

    Read: Even though what they are doing is interesting, its messy so we can still look down on it.

    There are some stunningly novel ideas in Perl, for example.

    We had better look out. These guys are on to something. :-(

    Many are stunningly bad, but that's always true of ambitious efforts.

    But dont worry. :-) We can still look down on them.

    At its current rate of mutation, God knows what Perl might evolve into in a hundred years.

    Read:Look these guys don't develop stuff, they put it down to wild chance and mutation. We dont need to worry about them. They'll be to the animals in a hundred years anyway.

    Ok, i'm laying it on a bit thick, but I think of chunk of his stuff was along those lines. Incidentally I think that has been long been an internal rivalry between the "profs" or "suits" and the "hackers" (for lack of a better term), even in the academic enviornment. A number of extremely prominent and influential computer pioneers never graduated. In the industry we see many competent people without degrees or certification. So to discover that they are doing interesting things is hardly a shock.

    Anyway, this whole thread has blown way out of proportion. (My fault :-( I went too far in my original post, but still feel that the underlying point (that nobody should be in any way suprised that innovation in our field can come from a hacker) was fair.


    ---
    demerphq

    <Elian> And I do take a kind of perverse pleasure in having an OO assembly language...

    • Update:  
    Orignally I sarcastically used the term "the indians are coming". I meant this to refer to North American hysteria about Indian (Native American) invasion in the earlier phases of colonisation. However at least one person felt offended by this statement and I have changed it to something without racial overtones. I apologise if I caused any offense.


      I think you're doing all those languages bitter injustice. Unless you want to argue that Windows is clearly the better operating system amongst its competitors - in which case, I have nothing to say, anyway.

      I would argue that the proliferation of C is due mostly to its good performance (potential) on all but the very slowest of platforms, the sheer amount of coders its conceptual simplicity has afforded it, and that it is low level enough to allow its use for just about any task. Combined, these factors mean it can be used for pretty nearly any job - regardless of whether it should.

      I believe the largest contributor to the developments as they happened was how far LISP and Smalltalk and others more were ahead of their time - not only conceptually, but also in terms of hardware demands. With the rapidly growing hardware resources and scale of software systems, the necessity of such advanced paradigmata to realistically cope with the complexity is being "discovered". Consequently "modern" languages are drifting towards concepts pioneered by Smalltalk and LISP decades ago. About time I say..

      Makeshifts last the longest.

        And not only are better hardware resources helping, but in a great example of "do it right then make it fast" Lisp and Smalltalk systems get better and better at compiling to efficient code. Most Lisps now (and for a long time) go to native code, and some compilers are _very_ good, and the same holds for Smalltalk (which in addition can get a boost from JIT stuff).

        I think you're doing all those languages bitter injustice.

        You aren't the only to overreact to my comments here. I see words like "injustice" and "trashing" and the like. I never said these were bad languages. Just that on the level of general utility there are better ones.

        Unless you want to argue that Windows is clearly the better operating system amongst its competitors -

        Actually Windows is a very interesting example of my point about the market being wiser than we give it credit for. It nicely illustrates that despite mindbogglingly huge resources and marketing the market doesn't fall sucker everytime. I take the continued growth of Linux sector to be a good indication that despite propaganda the market figures things out in the end.

        Combined, these factors mean it can be used for pretty nearly any job - regardless of whether it should.

        This is a crucial issue. It can't be overlooked.

        Consequently "modern" languages are drifting towards concepts pioneered by Smalltalk and LISP decades ago. About time I say..

        Its interesting isn't it. Kinda reminds me of something else, Knuth debated about whether to remove the extensive coverage of tape based sorting techniques from AoP. In the end he decided not to. He justified his decision on the grounds that some new tchnology may make itself apparent that will require similar strategies to use it efficiently.


        ---
        demerphq

        <Elian> And I do take a kind of perverse pleasure in having an OO assembly language...
      Hi adrianh . Stands to reason that about the only reply that actually analysed what i said was yours. *grin*

      I very nearly didn't. To be blunt your post read like an ill informed flame. That's okay, we all do over hasty things on occasion. However, if it was me, I'd slap a <strike></strike> around most of it. Describing Paul Graham as somebody "stuck in his lonely and lofty academic tower bitching" just makes you appear foolish to anybody who has a passing knowledge of his work. My apologies if that is not what you intended to imply, but it's certainly how it read to me.

      In the future it might be an idea to read the entire article before posting :-)

      Well, I'll admit that I know of a number of specialist fields where these languages are commonplace. Are they used worth mentioning outside of these spheres? I would argue that no they arent. Because generally speaking they aren't particularly suitable to general purpose work. I think that if they were we would see them more often. (I recognize this is dangerously close to a very bad argument, but in this case I dont think I'm crossing the line.)

      I think you are ;-)

      I would strongly argue that Lisp is a general purpose language - more on that in a minute.

      Just because Prolog and APL are niche languages doesn't mean they're not worth mentioning. So what if they're not suitable for general purpose work. Does the fact that you cannot write a device driver in Perl mean Perl is a poor language? No, it means you use the right tool for the right job. That is why they are useful. In business as well as in academia.

      If you are a statistics fiend APL is your friend, just like Perl is your friend if you need to munge some text (not that these are the only things either language does well.)

      If I have a problem I can state in a declarative style I'll use Prolog if I have it, or end up re-implementing it.

      Niche languages are worth studying since languages evolve by theft. Look at how the concepts from the academic niche languages of earlier decades permeate the programming languages of today (abstract data types, OO, encapsulation, data hiding, etc.)

      Perl has stolen a great deal from many languages, academic and otherwise. Who's to say that there aren't some more things Perl can steal from APL and Prolog. Perl 6 is certainly stealing more from Lisp (decent macros for example). We have that Swiss Army Chainsaw metaphor to maintain after all!

      I think a lot of people find it hard to write code in a declarative/logical style. I think a lot of people have a hard time even understanding the ideas behind it. Its unsuprising to me that we dont see a lot of code written that way. Its confusing. Hell most people have a hard enough time understanding perfectly straightforward imperative programming, let alone the wacky stuff.

      Replace "declarative/logical" by "object oriented" and I recall very similar phrases being said in the eighties :-)

      There are a whole set of problem spaces where declarative/logical languages are the right choice. Maybe there are fewer of them than those that fit OO or procedural languages, but that doesn't make them less important. It definitely doesn't make them less important to business.

      SQL is one example of a declarative language that many people find quite useful. Perl 6's rules would be another example of a declarative language that looks like it might be fun.

      I think you will be surprised at the amount of Prolog (and languages descended from Prolog) in the medical and finance sectors. Companies like American Express spend a great deal of time and money on Artificial Intelligence (see AI at Amex and American Express 2). I worked for several years on a development environment which consisted of four "academic" languages (Pop-11, Prolog, ML and Common Lisp). Clients included companies like HP and BT.

      Businesses do use niche languages all of the time. Other languages may be used more, but popularity is not the only scale to judge the utility of a programming language.

      I'm not sure that I expressed myself clearly. I certainly didn't mean to imply commerical success in terms of financial benefit. I meant more in breadth of use, in the number of running applications/systems (pick a metric) that were written in the language, etc

      I obviously didn't express myself well either :-) I was referring to "breadth of use" too. My comment still stands. The fact that languages like C, Java, COBOL and VB are used in businesses more than Lisp, Perl, Python and Ruby does not necessarily mean they are more suited to the problem domain. I've seen many C and C++ projects that would have been far easier to implement in Lisp or Perl.

      I commented that:

      Commercial usage has a lot more to do with fashion, marketing and FUD than it does with the utility of the language.

      and you said:

      You really think so? I dont think the corporate world is generally as foolish as that.

      Yes I really think so. However, this doesn't mean that the corporate world is foolish.

      Many people don't consider anything outside C/C++/Java for new projects. On the occasions you do get to discuss alternatives you end up discussing the relative ease of recruiting developers, rather than whether the language has appropriate features.

      This isn't really foolishness, because there are many issues outside language features that are important to a business - the ease of getting developers, the difficulty of maintaining a codebase in multiple languages, the existing skills of in-house development teams, etc.

      I will now twist your comments on Pascal to my advantage (sorry :-)

      Wirth created Pascal as a teaching language. It wasn't designed to be a general systems/business language, so it's hardly surprising it's not very good at the task. As Kernighan says in the article you referenced:

      Comparing C and Pascal is rather like comparing a Learjet to a Piper Cub - one is meant for getting something done while the other is meant for learning - so such comparisons tend to be somewhat farfetched

      ...

      It was a considerable achievement for 1968.

      The fact that industry adopted such an eminently unsuitable language for developing real applications (because getting Pascal coders was easy) backs up my point about the corporate world not always being entirely rational about language choice.

      I cannot think of any language features that make Lisp a radically worse language than Java or Perl to write business applications in.

      I can think of several features of Lisp (e.g. automatic memory management) that make it a more suitable language than C/C++.

      People can (and do) write business applications in a reasonable timeframe for a reasonable budget in Lisp. People can (and do) write them in Perl. You can write them in C, C++, Java, Eiffel, Python, or any of a dozen other languages. The fact C/C++/Java are more popular has very little to do with those languages being better for the problem domain.

      On my preferring CL to C++ you said:

      How many programmers feel the same? Most I know from Uni hated Lisp.

      To-may-to, To-mah-to. Most I know quite like it. In the many terribly boring pub arguments on programming languages I've had over the years Lisp normally comes in peoples' top five.

      (Don't go down the pub with me. I'm terribly dull :-)

      In my experience people who don't like Lisp haven't used it for a serious project and are criticizing it from a position of ignorance. Lisp has been evolving and improving for 45 years and is an exceptionally good language in many, if not most, respects.

      However, arguing from personal experience is hardly productive - we obviously have different friends. Can you give describe which features of the Lisp language make it unsuitable for developing business applications?

      More to the point, would your boss pay you to do so? Would he like to have to hire someone to replace you?

      I'm part of a workers co-op, so technically I'm my own boss. So the answers are "Yes" and "No" :-) Note that neither of these questions relate whether Lisp is a good language or not.

      I still find it difficult to see your interpretation of:

      Language design is being taken over by hackers. The results so far are messy, but encouraging. There are some stunningly novel ideas in Perl, for example. Many are stunningly bad, but that's always true of ambitious efforts. At its current rate of mutation, God knows what Perl might evolve into in a hundred years.

      Everybody I've shown it to reads it as praise for Perl of a non-faint nature. Especially in the context of the article where Java's not making it to 2103.

      I've re-read PG's article again and I still cannot see the anti-hacker sentiment that you see. He certainly has a Lispish bias. Everybody has a bias towards their favourite language. However, he explains his points in a coherent manner and everybody is free to disagree with them.

      Incidentally I think that has been long been an internal rivalry between the "profs" or "suits" and the "hackers" (for lack of a better term), even in the academic environment. A number of extremely prominent and influential computer pioneers never graduated. In the industry we see many competent people without degrees or certification.

      True, and what a pointless rivalry it is. You have idiots in industry criticizing academics who have "no real world experience". You have idiots in academia criticizing industry for "not understanding underlying concepts". Both groups are foolish. Both are unfair stereotypes.

      So to discover that they are doing interesting things is hardly a shock.

      ...

      I went too far in my original post, but still feel that the underlying point (that nobody should be in any way surprised that innovation in our field can come from a hacker) was fair.

      Agree completely. The problem I have is that I still can't find any reference in the article to surprise or shock that "hackers" are taking over on the language innovation front. He calls it "One of the most exciting trends in the last ten years" and follows it up later with "This seems a good trend and I expect it to continue". Doesn't sound negative to me. Not that surprising really since I'd put PG in the "hacker" category, and he's busy playing with Arc :-)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (3)
As of 2024-04-24 13:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found