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:14:04 +0100	[thread overview]
Message-ID: <7AAFE4127E1DB57785BB273A@[192.168.1.2]> (raw)
In-Reply-To: <55D72913-15FB-415F-BE43-7D173E0AC449@storytotell.org>

> 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:14 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 [this message]
     [not found]                         ` <7AAFE4127E1DB57785BB273A@192.168.1.2>
2009-09-05 14:36                           ` Eris Discordia
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='7AAFE4127E1DB57785BB273A@[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).