Earlier quoted context omitted.
As a beginner just grab the XML lib which is easiest to install and looks comfortable to use. If it doesn't work out try another one. I really don't get all the complaints in this thread about the lack of a central library repository. How hard is it to use Google? Libraries aren't suddenly bad because they're not from Lib Grand Central. In other languages, Perl specifically, I've tried libraries from CPAN that were t…
Perhaps it's possible to get lucky and find good libraries using nothing but Google and patience, but I'm baffled that anyone would deny the value of something like CPAN. CPAN's structure enforces good practices: (e.g., tests, docs, bug tracking). CPAN provides not one but two excellent search pages. It also contains many reviews, and makes it trivial to see the source of any library or app before you download it. CP…
Why I chose Common Lisp over Python, Ruby, and Clojure
121–130 of 143 posts
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#122Earlier quoted context omitted.
To be fair, I think most explanations for the decisions we make work this way.
I think it just seems that way, because it takes effort to explicitly pull all those arguments into our consciousness, to explain a decision that was taken subconsciously. The subconscious is often equated with the emotional or the irrational, but there is no reason to suppose the subconscious is incapable of rational decision making. Looking at it from that perspective, you are not rationalizing an irrational decisi…
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#123Earlier quoted context omitted.
Indeed, we figured out recently that it's basically embedded Algol 68... which seems superbly fitting somehow.
Common Lisp is very, very old. Tagbody and progv, anyone? It's an influential language, for sure, but I prefer Clojure for a number of reasons.
That CL contains TAGBODY is a brilliant thing. It amazes me that a language can be at once so high-level and so low-level. I haven't had occasion to use it yet, but the fact that it's there, and that the higher-level abstractions are built in terms of it, is a thing of beauty to me. (I don't know about PROGV.)
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#124Earlier quoted context omitted.
I think it just seems that way, because it takes effort to explicitly pull all those arguments into our consciousness, to explain a decision that was taken subconsciously. The subconscious is often equated with the emotional or the irrational, but there is no reason to suppose the subconscious is incapable of rational decision making. Looking at it from that perspective, you are not rationalizing an irrational decisi…
To my knowledge, the famous experiments of Kahnenman and Tversky have proven otherwise. When studying the effect of "anchoring", for example, they would actually explain to their subjects how their rational decisions are influenced by this irrational heuristic. Yet the subjects could not rid their decisions of that influence.
On the Wikipedia page for 'Anchoring', there is an example about thinking of a number and subsequently bidding (experiment by Ariely). What happens when you tell people with a high number that they are likely to make a relatively high bid, so they should try to make a relatively low bid? Do they make 'normal' bids or extremely low bids?
This shows that saying people can't rid their decisions of that influence is an overstatement. When you are consciously aware of the heuristics and the decision is taken over a period of time, you can downplay them.
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#125Earlier quoted context omitted.
Perhaps it's possible to get lucky and find good libraries using nothing but Google and patience, but I'm baffled that anyone would deny the value of something like CPAN. CPAN's structure enforces good practices: (e.g., tests, docs, bug tracking). CPAN provides not one but two excellent search pages. It also contains many reviews, and makes it trivial to see the source of any library or app before you download it. CP…
it goes beyond CPAN - it would have been nice to have a "batteries-included" version that packs in most useful libraries (like Python's Image, lxml, etc libraries). The very argument that choice > standardization is something I dont get - even in Rails, you have the choice of not using the default templating engine, JavaScript framework, etc. But it doesnt mean that they dont package it in anyway. This accelerates ad…
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#126Did you really choose Lisp over alternatives? Before learning CL I was a fairly decent, C, C++ and Perl programmer. Did assembly, Pascal, TCL and Awk. Up to that point, I always had to pause a for a minute when starting a new project/script, think about its scope, and choose a language based on the necessary performance, development speed, expressiveness, available libraries, etc. (and whether whoever was going to re…
this is exactly how I feel about Ruby...
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#127Earlier quoted context omitted.
> Cliki was launched, C-L.net, and the #lisp IRC channel was born and Google doesn't see any uptrend: http://www.google.com/trends?q=common+lisp
Not only that, it's noise compared to a few other dynamic languages: http://www.google.com/trends?q=perl%2C+python%2C+ruby%2C+com...
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#128It's funny, that the decision to choose Common Lisp for some project often has to defend itself (because of so much FUD around the language). CL has one killer feature, that will appeal to any mature developer: it's the only production-ready language around, in which you are virtually not constrained by any third-party design decision. That's it. Discussing other details just boils down to the question of tastes (tha…
What about Clojure, circa now? Do you not consider it "production ready"? I've used both CL and Clojure. I'd prefer either over Blub, but Clojure wins in my opinion.
For some specific tasks I might have preferred it (until CL catches up with concurrency support). But in general CL gives you more freedom.
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#129Earlier quoted context omitted.
I'm not so sure if set notation is higher level, but for the example in your longer comment, map/filter/product is not that bad if you use it wisely. Here is my version: map(lambda (w,s,l): {'widget': w, 'sprocket': s, 'location': l} filter(lambda (w,s,l): l.hasInStock(w) and l.hasInStock(s) and w.isUsableWith(s), product(widgets, sprockets, locations))) Well, I agree it is not any conciser that its list comprehensio…
You'll be thrilled (lol) to know that the lambda-tuple syntax isn't in python 3 (!); it does make my examples more concise. The argument in favor of set-notation being higher level is it's less specific (it doesn't explicitly provide a sequence of operations, just an outcome). List comprehensions look like set notation but have an implicit procedural translation you have to keep in mind to use them well, so it's a to…
Now you know why many people like me are gradually pissed off by Python and start the exile ... currently trying Scala and it seems a nice language (with list comprehension too! :)
> List comprehensions look like set notation but have an implicit procedural translation you have to keep in mind to use them well, so it's a toss-up.
Actually I think that's the problem I have with list comprehensions: I use them a lot in my code, usually 1~3 levels nested and then have a hard time tracking down the order of implicit loops (which is inner vs outer) and make sure the intermediate variables (x for x in y for y in z ...) do not clash ... OK maybe I'm using it too much and in the wrong way :(
> I prefer map/filter/reduce when sequencing has large performance implications but for simple filtering or raw-data-shaping comprehensions read more smoothly.
I didn't know map/filter is faster than list comprehensions? I thought both are optimized by Python interpreter. But I like the idea of knowing that at least map can be parallelized easily. But since Python does not utilize multicore in a decent way, all bets are off :(
Re: Why I chose Common Lisp over Python, Ruby, and Clojure
#130Earlier quoted context omitted.
I know you all know this, but I feel like it bears mentioning that nobody is forcing you to use list comprehensions whether map/filter stay in Python's built-ins or not. They can be defined in around 3-4 lines of code each. Lisp aficionados, already accustomed to the bottom-up style of programming, ought to have no problem writing functions like these as necessary.
There's a difference between things being possible and being encouraged . De-emphasizing functional operations makes it more likely for libraries to work in a non-functional style, for tutorials to do so, etc. It's tiring fighting against a community and a (benevolent) dictator that disagree with you.
That summarizes the problem I guess :D