Barry Margolin <bar...@genuity.net> writes: >As a Lisper, I expect that I would have a fairly easy time learning Logo, >because it was inspired by Lisp (not to mention that it was designed to be >easy to learn, since it's targeted at young children). But I wouldn't >expect most c.l.l participants to be able to answer Logo questions just >because they know Lisp.
Oops, sorry, I misspoke. I didn't mean that I'd post "how do you do such-and-such in Logo?" in c.l.l; what I had in mind was more like "I'm trying to implement a garbage collector for my Logo interpreter and..." For the former question category there's a comp.lang.logo, but I wouldn't expect to find much deep technical expertise there -- and the deep questions would scare away the teachers anyway. :-)
* Hrvoje Blazevic | I also wonder what led you to believe that I would value selling burgers | more than the brain-time. Is it because you believe that it is only lawyers, | politicians and diplomats that do use brain-power?
No. I consider this "discussion" to have ended some time ago.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
> I've been programming long enough to know that when you're more > concerned about what the right comment character is than about writing > good comments you're not on the level of the important any longer. I > also know that the nuts and bolts of getting work done is the petty > problem of expressing algorithms for execution by machine, not the > discussion of whether the guys who use language-flavor Y are apostates > who must be banned from the church.
I think the point is that an important goal for Scheme is to do it right, dammit, or not at all. This would be horrible if Scheme were the only choice, but it's not. Since there are a jillion decent programming languages with the attitude "who cares what the comment character is", what's wrong with there being *one* that wants to get it right, dammit.
Erik Naggum wrote: > Perhaps people who use Common Lisp and Scheme are already adept at writing > programs and no longer have the pathetic little problems that so plague the > newer languages....
> "Jens Axel Søgaard" <use...@soegaard.net> writes: > > r...@4dv.net wrote:
> > > Although, in the conclusion, it states that one might > > > care to view Scheme as not Lisp.
> > Depending on the political context:
> Politics is the death of engineering. Engineering is about getting > things built. Computer languages are a tool for doing that, with > better languages being (hopefully) a better tool. When one spends > one's energy on politics rather than progress towards the goal, > though, one takes a serious turn off of the road and into the weeds.
I'm inclined to think this is an expression of a naive and secluded notion of engineering and what it means to "get things built", particularly when the things being built require the cooperation and resources of dozens, perhaps hundreds, and in some cases entire nations. Your statement may hold true for personal projects, or ones where you already have control over the needed resources, but those are really simple and small problems and certainly do not justify a blanket statement about engineering.
Bruno LaTour's "Aramis, or The Love of Technology" is an interesting book that I think is relevant to this issue of politics and engineering.
* Perry E. Metzger | What I've noticed in a lot of people in this community (and it really | is just one community) is a lot of arrogance.
Funny, that, I see a lot of humility and respect for the opinions and thoughts of those older and wiser than oneself. There is virtually no arrogance among the cognoscenti. My experience has been one of great patience and willingness to help those who wish to learn. However, when some arrogant little snot of a newbie walks into the forum only to spout his own arrogant views without listening to anybody else, the /newbie/ will think this is arrogance. If you are an arrogant newbie, people around you will generally return the favor. If you are interested in learning things from those who know, the Lisp communities are better than most. Well, at least comp.lang.lisp. The comp.lang.scheme people have generally been on the defensive even when they are not attacked in any way, which I can only interpret as symptoms of a very /protective/ crowd. However, it has never been /arrogance/ that I have found even in the hostility towards comments on the severely limited Scheme model.
| Being a very arrogant person at times, I can perhaps recognize the symptom a | bit better than most.
Perhaps you do much too well? Arrogant people tend to trigger arrogant responses from others, too. It is a stupid human tendency that is only changed by limiting or removing one's own arrogance.
| I have often made the mistake of thinking I knew more than I really did, but | I've been working pretty hard on keeping my mind open instead, and it often | brings results.
Most of the people I have found in the Common Lisp community have been well aware, not only of how much they know, but of where it came from and how they arrived at the conclusions they hold, so that they can communicate this to others when they need to defend their opinions. Rapid internalization of new knowledge and the ability to integrate it with other information make it possible to produce intelligent observations and connections. All of these attributes indicate both "intelligent" and "observant" to me, and not the dumb and judgmental attributes that correlate with arrogance.
| I don't know about that. I'd expect that if the community was truly vibrant | we'd be seeing things like equivalents to CPAN and such.
I think this shows your arrogance more than anything else. You are obviously not willing to consider the fact that CPAN and the like depend on much more than "vibrant communities" to exist. In particular, they depend on the comparative worthlessness of the time spent on making software for their languages. When the time you spend writing software is both worth paying for and it is worth paying others for their time, you get a vibrant /market/, not a vibrant library of free software. You also do not solve problems that people are willing to solve for free.
| I've been programming long enough to know that when you're more concerned | about what the right comment character is than about writing good comments | you're not on the level of the important any longer.
Just so we have this clear: You think somebody is arguing over the right comment character? Where did this happen? And moreover, why is this so important to you that you think it reflects on the whole community?
| I also know that the nuts and bolts of getting work done is the petty | problem of expressing algorithms for execution by machine, not the | discussion of whether the guys who use language-flavor Y are apostates who | must be banned from the church.
And just so we have this clear, too: This happened where? And it was important to you why? Perhaps I do not understand your problems, like I do not understand the most recent troll in comp.lang.lisp who whines about the syntax. Trolls are not representative of the community in any way. You should know this, I think.
| Software, unlike theoretical mathematics, is largely about accomplishing | things. That leads people to unfortunate mundane concerns like finding a | module that builds web pages for you or finding a module that interfaces to | Oracle or finding a module that does statistical analysis for you. When a | language's devotees no longer discuss such pragmatic matters and instead | spend all their energy on religion, it implies they are not writing code.
I would like you to think about and enumerate the many other assumptions that went into this rather strange conclusion. The most important (at least to refute your conclusion) assumption is why these things are important to you. You are undoutedly right that these things happen, just as we find the most brilliant mind sometimes uttering stupid comments unwittingly, but does that prove anything? I do not in any way wish to deny that these things are sometimes discussed and are consuming the time of many people when they do, but I wonder why you select these events and similarly ignore the events when people discuss application-oriented aspects equally consumingly. I tend to think of the former as supporting the notion that people want to think in their languages an therefore need syntax that fits their thinking. It is only to the very shallow that syntax does not matter.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
* William D Clinger | Isn't it pretty to think so? | | Ernest Hemingway
Nice quotation. Sometimes, I think people think ugly because they do not want pretty to be an option in the real world. There is a implicit accusation in this quotation that if it is pretty, it cannot be true, and if you believe the pretty option, you are naïve. This attitude is unfortunately very hard to combat, since those who believe in such things are amazingly unwilling to accept that the world can have pretty parts when their whole life experience has been that none of it is.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
Erik Naggum <e...@naggum.no> writes: > * Perry E. Metzger > | What I've noticed in a lot of people in this community (and it really > | is just one community) is a lot of arrogance.
> Funny, that, I see a lot of humility and respect for the opinions and > thoughts of those older and wiser than oneself. There is virtually no > arrogance among the cognoscenti.
When I asked one of the high cognoscs about the absence of an i/o multiplexing primitive in his dialect because I needed one for doing some event driven programming, I was regaled with why event driven programming is stupid and ugly and I should be using threads instead. I've had a dozen such experiences of late.
> My experience has been one of great patience and willingness to > help those who wish to learn. However, when some arrogant little > snot of a newbie walks into the forum only to spout his own > arrogant views without listening to anybody else, the /newbie/ > will think this is arrogance.
I think calling anyone an "arrogant little snot" tends to lessen the power of one's claim to humility, don't you?
> | I don't know about that. I'd expect that if the community was > | truly vibrant we'd be seeing things like equivalents to CPAN and such.
> I think this shows your arrogance more than anything else. You > are obviously not willing to consider the fact that CPAN and the > like depend on much more than "vibrant communities" to exist. In > particular, they depend on the comparative worthlessness of the > time spent on making software for their languages.
Ah, that explains it. Thank you for enlightening me.
-- Perry E. Metzger pe...@piermont.com -- "Ask not what your country can force other people to do for you..."
> When I asked one of the high cognoscs about the absence of an i/o > multiplexing primitive in his dialect because I needed one for doing > some event driven programming, I was regaled with why event driven > programming is stupid and ugly and I should be using threads > instead. I've had a dozen such experiences of late.
I think the cognoscs are right here. Threads and multiplexing primitives are duals of each other anyway, so if you are given threads, you can easily create the multiplexing primitive you want.
But organizing design around non-blocking I/O primitives (from an OS design standpoint) turns out to be much more complex and error prone than having straightforward subroutine blocking primitives, and telling users to use threads if they want multiplexing.
So that's why you get told that: it's actually the right thing. If the best way to represent your computation is with a non-blocking or a multiplexing interface, then it's very easy to implement that using the threads you've been given.
step...@dino.dnsalias.com (Stephen J. Bevan) writes:
> "Perry E. Metzger" <pe...@piermont.com> writes: > > I don't know about that. I'd expect that if the community was truly > > vibrant we'd be seeing things like equivalents to CPAN and such.
> By this measure, which languages are truly vibrant?
Vibrant might be the wrong term. Lets just say "being so actively used by large communities that lots of tools and libraries are available on the net".
By that measure, we're talking about C, C++, Java, Perl, Ruby, Tcl/Tk (Tcl makes my teeth itch but never mind that), Python, and doubtless a few others I'm forgetting or unaware of.
I'm not passing any moral judgments here, by the way. Just noting what has become popular enough that you can go out and at will find yourself books like "Programming the Perl DBI" or libraries to generate web log templates or what have you. People might discount the importance of such things, but they're a pretty big part of the way modern people put together apps. It is a lot easier to steal someone's RFC822 parser that they've put up on the net than to write one, regardless of the language, and when there is a critical mass of such stuff available it makes a difference in your life.
-- Perry E. Metzger pe...@piermont.com -- "Ask not what your country can force other people to do for you..."
In comp.lang.scheme Perry E. Metzger <pe...@piermont.com> wrote:
: Erik Naggum <e...@naggum.no> writes: :> * Perry E. Metzger :> | I don't know about that. I'd expect that if the community was :> | truly vibrant we'd be seeing things like equivalents to CPAN and such. :> :> I think this shows your arrogance more than anything else. You :> are obviously not willing to consider the fact that CPAN and the :> like depend on much more than "vibrant communities" to exist. In :> particular, they depend on the comparative worthlessness of the :> time spent on making software for their languages.
It is statements like these that cause me to pick another popular C library to write an FFI interface for in the scheme implementation I've chosen.
I'm beginning to believe that the reason scheme isn't as popular as the rest of the languages isn't so much as there are many implementations, but more so that no-one understands how to market it worth a damn.
Seen any oreilly books on scheme, or scheme interfaces to SQL or anything like that? My point exactly.
-- -pete
E-mail address corrupted to stop spam. Reply mail: psilord at cs dot wisc dot edu I am responsible for what I say, noone else.
* Perry E. Metzger | When I asked one of the high cognoscs about the absence of an i/o | multiplexing primitive in his dialect because I needed one for doing some | event driven programming, I was regaled with why event driven programming is | stupid and ugly and I should be using threads instead. I've had a dozen | such experiences of late.
And this is an argument for what, precisely? Like, /whose/ arrogance?
| I think calling anyone an "arrogant little snot" tends to lessen the power | of one's claim to humility, don't you?
No, of course not. I am humble in the face of the field of mathematics, in awe of the great number of geniuses before me, greatly inspired by the works of many brilliant minds that could both conceive of the most elegant concepts and their intricate interrelationships and formulate them so cleanly and briefly in books that I could read and grasp their ideas in but a minute fraction of the time it took them to develop them, and yet I am disgusted to the deepness of my soul by the lack of even the most basic arithmetical skills and the rampant innumeracy of many journalists and politicians, because those are people who are so unequivocally /not/ humble in the face of mathematics, lacking any and all appreciation of the field, yet have the gall to abuse simple results in the field in a way that shows an utter disrespect for all the great minds that made it possible for them to have a chance to grasp mathematical ideas in their compulsory education, but discarded that chance and instead spit in the face of every mathematical thinker with their every breath.
| Ah, that explains it. Thank you for enlightening me.
You're welcome. I note that the intelligent /exchange/ of ideas has ceased.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
In an attempt to throw the authorities off his trail, "Perry E. Metzger" <pe...@piermont.com> transmitted:
> I don't know about that. I'd expect that if the community was truly > vibrant we'd be seeing things like equivalents to CPAN and such. It is > not disgraceful to say "I'm writing an application that needs to > interface with database X, anyone have a binding written already" or > what have you. Perhaps the Lisp community is beyond actually having to > use its language day to day but I doubt that.
I think we _are_ seeing something like CPAN in the form of CCLAN.
The efforts are somewhat less integrated and less coherent than is the case for Perl (or Python, or Ruby, with their respective communities), but that isn't _too_ surprising what with there being an actually diverse set of Common Lisp implementations.
There is _somewhat_ less demand for CPAN-like stuff for Common Lisp since the base language has a bit more in it.
It is _somewhat_ more difficult to construct CPAN-like stuff because there are a multiplicity of CL implementations.
On the Scheme side of the fence, it's _much_ more difficult to see common code get deployed for a multiplicity of Scheme implementations because the base language is so much smaller. The SRFI process is nonetheless supplying at least _some_ of this. And we periodically hear more about things designed for scsh getting ported more widely :-). -- (concatenate 'string "cbbrowne" "@ntlug.org") http://www.ntlug.org/~cbbrowne/lisp.html "High-level languages are a pretty good indicator that all else is seldom equal." - Tim Bradshaw, comp.lang.lisp
* Peter Keller <psil...@data.upl.cs.wisc.edu> | It is statements like these that cause me to pick another popular C library | to write an FFI interface for in the scheme implementation I've chosen.
No, it is not. If you had understood the word "comparative", you would not have been able to use my statements to support your preconceived notions.
-- Erik Naggum, Oslo, Norway
Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.
Perry E. Metzger wrote: > I'm not passing any moral judgments here, by the way. Just noting > what has become popular enough that you can go out and at will find > yourself books like ...
Then let's not leave COBOL and Pascal off the "vibrant" list. Remember those popular languages?
In the last exciting episode, Peter Keller <psil...@data.upl.cs.wisc.edu> wrote::
> I'm beginning to believe that the reason scheme isn't as popular as > the rest of the languages isn't so much as there are many > implementations, but more so that no-one understands how to market > it worth a damn. > Seen any oreilly books on scheme, or scheme interfaces to SQL or > anything like that? My point exactly.
O'Reilly also doesn't have books on Common Lisp, and aren't accepting new titles on TeX or _any_ form of Lisp, so I'd not count that as being of much interest.
And the following bit of Guile code does _exactly_ what it would be expected to do, namely interface with PostgreSQL, and pull a set of entries.
(use-modules (database postgres)) (define test (pg-connectdb "dbname=sqlledger")) (define result (pg-exec test "select * from zipcode")) (let loop ((index 0)) (if (< index (pg-ntuples result)) (begin (display (pg-getvalue result index 0)) (display (pg-getvalue result index 1)) (display (pg-getvalue result index 2)) (display (pg-getvalue result index 3)) (display (pg-getvalue result index 4)) (newline) (loop (+ index 1)))))
The PG binding is a little more "primitive" than you'd usually use in CL, basically eschewing all use of macros, and not really providing any help with transactions/cursors (both being places where some well-place macros would be _really_ useful).
But it exists, and it works, and I just used it to blow up an Emacs buffer by showing 80,000-odd zipcodes. -- (concatenate 'string "aa454" "@freenet.carleton.ca") http://cbbrowne.com/info/oses.html Coming Soon to a Mainframe Near You! MICROS~1 Windows NT 6.0, complete with VISUAL JCL...
Kenny Tilton <ktil...@nyc.rr.com> writes: > Perry E. Metzger wrote: > > I'm not passing any moral judgments here, by the way. Just noting > > what has become popular enough that you can go out and at will find > > yourself books like ...
> Then let's not leave COBOL and Pascal off the "vibrant" list.
I'm afraid I must. I can't find large COBOL libraries anywhere on the net, and there isn't any place to find large Pascal libraries, either. The same can't be said about C or Python.
-- Perry E. Metzger pe...@piermont.com -- "Ask not what your country can force other people to do for you..."
In comp.lang.scheme Erik Naggum <e...@naggum.no> wrote: : * Peter Keller <psil...@data.upl.cs.wisc.edu> : | It is statements like these that cause me to pick another popular C library : | to write an FFI interface for in the scheme implementation I've chosen.
: No, it is not. If you had understood the word "comparative", you would not : have been able to use my statements to support your preconceived notions.
SunOS buzzard > webster comparative 1 com.par.a.tive adj \k*m-'par-*t-iv\ 1 : of, relating to, or constituting the degree of comparison in a language that denotes increase in the quality, quantity, or relation expressed by an adjective or adverb 2 : considered as if in comparison to something else as a standard not quite attained : RELATIVE [~ stranger] 3 : studied systematically by comparison of phenomena [~ literature] com.par.a.tive.ly adv com.par.a.tive.ness n 2 comparative n 1 : one that compares with another esp. on equal footing : RIVAL; specif : one that makes witty or mocking comparisons 2 : the comparative degree or form in a language
I'm sorry, but I guess I just don't understand how you wanted to use it in the context with "worthless".
-- -pete
E-mail address corrupted to stop spam. Reply mail: psilord at cs dot wisc dot edu I am responsible for what I say, noone else.
> "Perry E. Metzger" <pe...@piermont.com> writes: > > When I asked one of the high cognoscs about the absence of an i/o > > multiplexing primitive in his dialect because I needed one for doing > > some event driven programming, I was regaled with why event driven > > programming is stupid and ugly and I should be using threads > > instead. I've had a dozen such experiences of late.
> I think the cognoscs are right here. Threads and multiplexing > primitives are duals of each other anyway,
Actually, they aren't in practice -- there's a huge performance difference. I could go into a long argument on why it is that event driven programs are actually quite straightforward to write (they are no more alien than functional programming is -- it is just a different style), why they are much easier to write than thread driven programs for certain applications (among other things, you end up with much more elegant designs), and why in general the performance on real hardware of event driven code is going to always be better than that of thread driven code. I think this is all a digression though. We aren't talking about threads vs. events. We're talking about an attitude in the community.
The annoyance here is people assuming they know "the right thing" and attempting to impose it, assuming they know more than the person inquiring about his problem space. Maybe someone for whatever reason needs to do something you don't particularly like -- work in an object oriented style or a logic programming style or whatever style you happen not to agree with this week. You aren't likely to be "right" when you tell them "no that's stupid", you're just likely to be expressing taste rather than "The Truth".
The Truth is that there isn't always a The Truth. Just because there are problems with object systems doesn't mean objects are always stupid. Just because you don't like someone writing a network protocol that uses XML instead of sexprs doesn't mean that they don't have to interface with something someone else built regardless of your taste. Just because you might think there are no conditions in which it might be better to do non-compacting garbage collection doesn't mean someone might not have a condition in which he needs a non-compacting collector, etc.
At best you can say "my experience is that it would be better for you to use a hash table for this instead of a PATRICIA tree, but you can implement the PATRICIA tree using structures this way..." and hell, maybe it even turns out that the guy knows more about routing than you do because he's a routing guy and you aren't and PATRICIA trees are optimal for that problem.
> So that's why you get told that: it's actually the right thing.
I find in general that The Right Thing is hard to impose. I was running a NetBSD related company for a couple of years. I found that people want threads for some apps, and even though I didn't like threads, I paid someone to work on a better performing threads mechanism because some people find they're more convenient some of the time than the techniques I prefer.
I could have told those people that they were idiots but they weren't idiots -- they had reasons for wanting to use a technique other than the one I found ideal and I couldn't really claim to understand their problem domain as well as they did, so I shut up and worked on giving them what they needed rather than what I felt The Right Thing was. I had no idea if my notion of The Right Thing was right anyway. I am not omniscient, and this is engineering, not mathematics.
In general, the languages and systems that win are the ones with the least ideological axe to grind. I find that's true with people, too.
-- Perry E. Metzger pe...@piermont.com -- "Ask not what your country can force other people to do for you..."
"Robert Uhl " wrote: > > > Well, it has the same unhealthy facination with lists that are > > > really chains of glued together pairs.
> > This is true. For now. It seems to be changing though.
> 'Cause we all know that Scheme is headed to representing every as > strings? I'm afraid I don't follow.
Because many Schemes now support structures/records and there is an SRFI describing them. So less things will be done with pairs when they really shouldn't be.
> The Truth is that there isn't always a The Truth.
Amen brother!
Seriously, hanging out on both c.l.l and c.l.s will quickly demonstrate that the viritol level in the former is much much higher. Whether it is political or religious is rather irrelevant, c.l.l is simply more intolerant.
-- Cheers, The Rhythm is around me, The Rhythm has control. Ray Blaak The Rhythm is inside me, bl...@telus.net The Rhythm has my soul.