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
>>
>>
next prev 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).