9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Eris Discordia <eris.discordia@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] nice quote
Date: Sat,  5 Sep 2009 15:36:26 +0100	[thread overview]
Message-ID: <60AFF4E379B26EE4BC4F8B2C@[192.168.1.2]> (raw)
In-Reply-To: <7AAFE4127E1DB57785BB273A@192.168.1.2>

> general-purpose language good for "system programming"--you seem to call
> that "being a good OS language"--

I take this part back. I mixed your post with Jason Catena's for a moment.

--On Saturday, September 05, 2009 15:14 +0100 Eris Discordia 
<eris.discordia@gmail.com> wrote:

>> Let me be a little pedantic.
>
> The 9fans know given the haphazard nature of a hobbyist's knowledge I am
> extremely bad at this, but then let me give it a try.
>
>> FYI, it's been Lisp for a while.
>
> As long as Britannica and Merriam-Webster call it LISP I don't think
> calling it LISP would be strictly wrong. Has LISt Processing become
> stigmatic in Lisp/LISP community?
>
>> Like what? The if statement, which was invented by Lisp? The loop
>> statement, for expressing loops? It sounds like you got a dose of Scheme
>> rather than Lisp to me.
>
> I just read in Wikipedia that, "Lisp's original conditional operator,
> cond, is the precursor to later if-then-else structures," without any
> citations. Assuming that to be true conditional branching is a
> fundamental element of control flow and it has existed in machine
> languages ever since early days. There's really very little to brag about
> it.
>
> Regardless, I offer the following comparison:
>
>> 19.2. How to Use Defstruct
> <http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node170.html>
>
>> Struct (C programming language)
> <http://en.wikipedia.org/wiki/Struct_(C_programming_language)>
>
> In the (small mind?) mental model of small computer there's the row of
> pigeonholes and the stencil you may slide along the row for "structured"
> access to its contents. I leave it to you to decide which of the above
> better corresponds to that. My opinion you already know.
>
> Indeed, my only encounter with LISP has been Scheme and through a failed
> attempt to read SICP.
>
>> This hasn't been true for a while. Common Lisp is a general purpose
>> language like any other. The only thing I have ever found obnoxious about
>> CL was the filesystem API. Most CL implementations are compilers these
>> days and they produce surprisingly efficient machine code. The Scheme
>> situation is more diverse but you can definitely find performance if
>> that's what you're eluding to.
>
> I was alluding to the expressive power of C versus LISP considered with
> respect to the primitives available on one's computing platform and
> primitives in which solutions to one's problems are best expressed. It
> isn't a matter of whether the language you use is supplemented by good
> libraries or how fast the binary image you produce can run as I have
> little doubt out there exist lightning fast implementations of complex
> algorithms in LISP. I was trying to give my personal example for why I
> managed to learn C and failed to learn LISP.
>
> If you have a scrawny x86 on your desktop and are trying to implement,
> say, a bubble sort--yes, the notorious bubble sort, it's still the first
> thing that comes to a learner's mind--it seems C is quite apt for
> expressing your (embarrassing) solution in terms of what is available on
> your platform. Loops, arrays, swapping, with _minimal_ syntactic
> distraction. Simple, naive algorithms should end up in simple,
> immediately readable (and refutable) code. Compare two implementations
> and decide for yourself:
>
> <http://en.literateprograms.org/Bubble_sort_(Lisp)>
> <http://en.literateprograms.org/Bubble_sort_(C)>
>
>>> Its claim to fame as the language for "wizards" remains.
>>
>> I think this has more to do with Lisp users being assholes than anything
>> intrinsic about Lisp. This is one of the nice things about Clojure. It's
>> a break from tradition in this regard, as well as many others.
>
> I really did mean "wizards" by "wizards." I intended no insult--merely
> sort of an awed jealousy.
>
>> It's as though you have the up-to-date negative propaganda, but not the
>> up-to-date facts.
>
> Of course. Propaganda has a wider outreach than facts, particularly when
> for every textbook on a subject there are, I don't know, ten (or more?)
> on the competing subject.
>
>> The main benefits it had in AI were features that came from garbage
>> collection and interactive development.
>
> More importantly, LISt Processing which used to be an element of the
> expert systems approach to AI and which is now defunct (as a way of
> making machines intelligent, whatever that means). While "expert systems"
> continue to exist the word causes enough reverb of failure to be replaced
> by other buzzwords: knowledge-based systems, automated knowledge bases,
> and whatnot.
>
> I think, and may be dead wrong, LISP's ominous appearance came from
> adhering to an AI paradigm. Now that the paradigm's no more viable why
> should the appearance persist?
>
>> An advantage it has these days is that it produces code that performs
>> better than, say, Python or Perl.
>
> I cannot comment on this. Have no knowledge of Python and beg to disagree
> about Perl. The entry barrier for learning Perl was low enough for me to
> learn and use it, unlike LISP.
>
>> I definitely would not call being a "general purpose system" and
>> suitability for "application programming" a "specific application area."
>
> Well, for one thing I believe you have misread me. I said C was a
> general-purpose language good for "system programming"--you seem to call
> that "being a good OS language"-- and low-level application programming.
> I probably should have taken more care and wrote the precise term:
> systems programming.
>
>> This is like saying agglutinative languages are worse for conquering the
>> world with than isolating languages because the Ottoman empire fell
>> before the English empire.
>
> Correlation doesn't imply causation--that's true. But there _are_ ways to
> ascertain a correlation is due to a causal relationship. One such way is
> to identify known causes of success or failure. _If_ one claims a
> language costs more to learn and rewards similarly or even less than
> another language one already has identified a known cause of failure. If
> failure does occur, causation by the language itself, rather than its
> surrounding elements (marketers, users, designers, climate, serendipity),
> cannot be ruled out.
>
>> I think it's mostly happenstance. Lots of languages succeed despite
>> having a killer app or app area. Python's a good example.
>
> Despite _not_ having those, you mean, right? I think it's too early to
> talk about Python's success. It has barely lived half as long as C and
> one-third as long as LISP. If you're really going to call Python
> successful I don't know how you're going to describe Java.
>
>> Please don't interpret this as "Lisp kicks C's ass."
>
> I don't, and I certainly weren't implying "C kicks LISP's ass." I don't
> qualify for that sort of assertion.
>
>> There are simply too many variables to lay the blame at Lisp's alleged
>> functional basis.
>
> That's a very good point. I did say "LISP represents a programming
> paradigm" but I don't think its (perceived?) failure has to do with the
> paradigm itself, rather with whether mere mortals can find application
> areas where the cost of assimilating that paradigm (and therefore
> learning the language) is justified by measurable gains.
>
>
>
>
> --On Friday, September 04, 2009 15:36 -0600 Daniel Lyons
> <fusion@storytotell.org> wrote:
>
>> Let me be a little pedantic.
>>
>> On Sep 4, 2009, at 2:18 PM, Eris Discordia wrote:
>>> Above says precisely why I did. LISP is twofold hurtful for me as a
>>> naive, below average hobbyist.
>>
>> FYI, it's been Lisp for a while.
>>
>>> For one thing the language constructs do not reflect the small
>>> computer primitives I was taught somewhere around the beginning of
>>> my education.
>>
>> Like what? The if statement, which was invented by Lisp? The loop
>> statement, for expressing loops? It sounds like you got a dose of Scheme
>> rather than Lisp to me.
>>
>>> For another, most (simple) problems I have had to deal with are far
>>> better expressible in terms of those very primitives. In other
>>> words, for a person of my (low) caliber, LISP is neither suited to
>>> the family of problems I encounter nor suited to the machines I
>>> solve them on.
>>
>> This hasn't been true for a while. Common Lisp is a general purpose
>> language like any other. The only thing I have ever found obnoxious about
>> CL was the filesystem API. Most CL implementations are compilers these
>> days and they produce surprisingly efficient machine code. The Scheme
>> situation is more diverse but you can definitely find performance if
>> that's what you're eluding to.
>>
>>> Its claim to fame as the language for "wizards" remains.
>>
>> I think this has more to do with Lisp users being assholes than anything
>> intrinsic about Lisp. This is one of the nice things about Clojure. It's
>> a break from tradition in this regard, as well as many others.
>>
>>> Although, mind you, the AI paradigm LISP used to represent is long
>>> deprecated (Rodney Brooks gives a good overview of this deprecation,
>>> although not specifically targeting LISP, in "Cambrian Intelligence:
>>> The Early History of the New AI"). One serious question today would
>>> be: what's LISP _really_ good for? That it represents a specific
>>> programming paradigm is not enough justification. Ideally, a
>>> language should represent a specific application area, as does C,
>>> i.e. general-purpose system and (low-level) application programming.
>>
>>
>> It's as though you have the up-to-date negative propaganda, but not the
>> up-to-date facts. Lisp is "really good for" the same kinds of things
>> other general purpose languages are good for. The main benefits it had in
>> AI were features that came from garbage collection and interactive
>> development. You get those benefits today with lots of systems, but that
>> doesn't mean they aren't still there in Lisp. An advantage it has these
>> days is that it produces code that performs better than, say, Python or
>> Perl. I definitely would not call being a "general purpose system" and
>> suitability for "application programming" a "specific application area."
>> This is like saying agglutinative languages are worse for conquering the
>> world with than isolating languages because the Ottoman empire fell
>> before the English empire.
>>
>> Please don't interpret this as "Lisp kicks C's ass." I'm saying, you're
>> only seeing the negative half of the situation, and seeing too much
>> causality. I think it's mostly happenstance. Lots of languages succeed
>> despite having a killer app or app area. Python's a good example.
>> Isolating the exact ingredients for the success of any language is
>> probably impossible. I'd say only with C is it really clear what led to
>> success, and it wasn't exclusively features of the language itself
>> (though it was a part of it), but also that it came with Unix along with
>> the source code. If the quacks had chosen C instead of Lisp for their "AI
>> research" perhaps C would have taken a big hit during the so-called AI
>> winter instead of Lisp. Perhaps if the Lisp machine vendors hadn't
>> misunderstood basic economics so thoroughly, their machines would have
>> become more common and taken Lisp with them the way Unix brought C. There
>> are simply too many variables to lay the blame at Lisp's alleged
>> functional basis. Especially today when languages like Haskell exist that
>> take functional so much further they make Lisp look like a procedural
>> language by comparison.
>>
>> —
>> Daniel Lyons
>>
>>







  parent reply	other threads:[~2009-09-05 14:36 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-02 14:29 ron minnich
2009-09-02 14:51 ` Rodolfo (kix)
2009-09-03  9:52   ` Greg Comeau
2009-09-03 11:15     ` Skip Tavakkolian
2009-09-03 13:59       ` Greg Comeau
2009-09-03 15:01     ` David Leimbach
2009-09-02 15:19 ` Enrique Soriano
2009-09-02 16:38 ` erik quanstrom
2009-09-02 16:56   ` David Leimbach
2009-09-02 16:58   ` Robert Raschke
2009-09-02 17:03     ` David Leimbach
2009-09-02 17:36       ` erik quanstrom
2009-09-02 18:08         ` Richard Miller
2009-09-02 18:27           ` David Leimbach
2009-09-02 18:35             ` erik quanstrom
2009-09-02 18:46               ` David Leimbach
2009-09-03 15:02                 ` Uriel
2009-09-03 15:02                   ` David Leimbach
2009-09-02 19:10             ` Jonathan Cast
2009-09-02 20:02               ` David Leimbach
2009-09-02 20:23                 ` Jonathan Cast
2009-09-02 20:45                   ` David Leimbach
2009-09-02 17:31 ` Eric Van Hensbergen
2009-09-02 18:25   ` David Leimbach
2009-09-02 18:47 ` ron minnich
2009-09-02 19:11   ` Brian L. Stuart
2009-09-02 19:32     ` David Leimbach
2009-09-02 22:59     ` Roman V Shaposhnik
2009-09-03  9:53       ` Greg Comeau
2009-09-03 11:24         ` Skip Tavakkolian
2009-09-03 12:01           ` tlaronde
2009-09-03 12:06             ` Brantley Coile
2009-09-03 14:03               ` Greg Comeau
2009-09-03 15:13               ` Jason Catena
2009-09-04  9:04                 ` Greg Comeau
2009-09-03 14:02             ` Greg Comeau
2009-09-03 14:57               ` Robert Raschke
2009-09-04  9:04                 ` Greg Comeau
2009-09-03 17:40               ` Brian L. Stuart
2009-09-04  9:03                 ` Greg Comeau
2009-09-04 17:47                   ` Brian L. Stuart
2009-09-04 18:01                     ` Jack Norton
2009-09-04 20:18                     ` Eris Discordia
2009-09-04 21:36                       ` Daniel Lyons
2009-09-04 22:50                         ` andrey mirtchovski
2009-09-05 14:14                         ` Eris Discordia
     [not found]                         ` <7AAFE4127E1DB57785BB273A@192.168.1.2>
2009-09-05 14:36                           ` Eris Discordia [this message]
2009-09-06  1:58                           ` Jason Catena
2009-09-06  3:38                             ` David Leimbach
2009-09-06 18:29                               ` Tim Newsham
2009-09-06 18:44                                 ` David Leimbach
2009-09-06 17:08                             ` Eris Discordia
     [not found]                             ` <9C0E59DDCCDD197FBD4EC404@192.168.1.2>
2009-09-06 18:05                               ` David Leimbach
2009-09-06 18:34                                 ` James Chapman
2009-09-06 18:26                             ` Tim Newsham
2009-09-06 18:40                               ` David Leimbach
2009-09-07  8:54                         ` Paul Donnelly
2009-09-07  9:07                       ` Greg Comeau
     [not found]                     ` <BB8E3A2E5419E566D0361D29@192.168.1.2>
2009-09-04 21:52                       ` Jason Catena
2009-09-05 11:02                         ` Richard Miller
2009-09-05 11:22                           ` Akshat Kumar
2009-09-05 12:11                             ` tlaronde
2009-09-06 20:04                               ` Rudolf Sykora
2009-09-06 20:45                                 ` erik quanstrom
2009-09-07  7:51                                   ` Vinu Rajashekhar
2009-09-05 13:38                             ` Anthony Sorace
2009-09-07  9:07                             ` Greg Comeau
2009-09-07  9:39                               ` Akshat Kumar
2009-09-07 15:49                                 ` Greg Comeau
2009-09-07 15:58                                   ` erik quanstrom
2009-09-07 20:56                                     ` Lyndon Nerenberg - VE6BBM/VE7TFX
2009-09-07 21:21                                       ` Federico G. Benavento
2009-09-07 21:33                                         ` Lyndon Nerenberg - VE6BBM/VE7TFX
2009-09-09  8:30                                           ` Greg Comeau
2009-09-09 11:22                                             ` erik quanstrom
2009-09-09 15:48                                               ` Charles Forsyth
2009-09-09 16:00                                                 ` Russ Cox
2009-09-09 16:37                                                   ` Abhishek Kulkarni
2009-09-09 16:51                                                     ` Jack Norton
2009-09-09 16:07                                                 ` erik quanstrom
2009-09-09 16:07                                                 ` Akshat Kumar
2009-09-09 16:08                                                 ` Richard Miller
2009-09-09 16:13                                                   ` Richard Miller
2009-09-10 21:45                                                   ` erik quanstrom
2009-09-11  7:54                                                     ` Richard Miller
2009-09-11 10:21                                                       ` erik quanstrom
2009-09-09 16:11                                                 ` David Leimbach
2009-09-09 16:29                                                 ` Jason Catena
2009-09-09 17:17                                                 ` Skip Tavakkolian
2009-09-09 18:36                                                   ` Jason Catena
2009-09-09 17:29                                                 ` Iruata Souza
2009-09-09 17:57                                                 ` Tim Newsham
2009-09-10 11:59                                                 ` Eris Discordia
     [not found]                                                 ` <99A870099C1B1D6560F4CF1A@192.168.1.2>
2009-09-10 15:58                                                   ` hiro
2009-09-10 21:24                                                     ` Eris Discordia
2009-09-09  8:30                                       ` Greg Comeau
2009-09-09  8:29                                     ` Greg Comeau
2009-09-05 14:27                           ` Eris Discordia
2009-09-05 14:33                           ` Eris Discordia
     [not found]                           ` <B6F7A6BD1919CC67B621FDE3@192.168.1.2>
2009-09-05 14:36                             ` John Floren
2009-09-05 14:51                               ` Eris Discordia
2009-09-05 19:30                                 ` Daniel Lyons
2009-09-05 23:48                                   ` Eris Discordia
2009-09-05 18:26                               ` erik quanstrom
2009-09-06  0:05                                 ` Eris Discordia
2009-09-06  0:17                                   ` erik quanstrom
2009-09-06  0:37                                     ` Eris Discordia
2009-09-06  0:56                                       ` erik quanstrom
2009-09-06 16:51                                         ` Eris Discordia
2009-09-06 17:32                                           ` tlaronde
2009-09-06  4:23                                 ` J.R. Mauro
2009-09-06 17:24                                   ` Eris Discordia
     [not found]                                   ` <393394D0A7F3F4A227F94CDA@192.168.1.2>
2009-09-06 18:03                                     ` Rob Pike
2009-09-06 19:26                                       ` Eris Discordia
2009-09-07 15:47                                       ` J.R. Mauro
2009-09-07  8:54                     ` Paul Donnelly
2009-09-07  9:04                       ` Daniel Lyons
2009-09-07  9:05                       ` Vinu Rajashekhar
2009-09-07  9:05                     ` Greg Comeau
2009-09-07  9:49                       ` Daniel Lyons
2009-09-07 11:34                         ` erik quanstrom
2009-09-07 16:00                         ` Greg Comeau
2009-09-07 19:23                           ` Eris Discordia
2009-09-09  8:29                             ` Greg Comeau
2009-09-09  8:35                           ` Paul Donnelly
2009-09-03 19:38               ` tlaronde
2009-09-03 21:55                 ` Daniel Lyons
2009-09-03 22:01                 ` Tharaneedharan Vilwanathan
2009-09-07  8:54                   ` Greg Comeau
2009-09-04  9:15                 ` Greg Comeau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='60AFF4E379B26EE4BC4F8B2C@[192.168.1.2]' \
    --to=eris.discordia@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).