Live data from Hacker News

Why I chose Common Lisp over Python, Ruby, and Clojure

postabon.posterous.com

71–80 of 143 posts

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#71
post #49
post #36

Earlier quoted context omitted.

I too thought the logic was weak. Here was my basic objection: you chose not to use two popular web programming languages because of their potential volatility, but then went with one that has been so infrequently used in web programming that it almost certainly has opaque deffeciencies. It's not that your reasons were bogus, they just didn't carry the decision.

That's a fair point. For a programmer without Lisp experience, that would be true. But I've written enough Lisp-based webapps that there aren't really that many 'unforseen' problems for me anymore (rule of thumb: use software by Edi Weitz - everything he writes is golden :-D)). That being said, I still ran into trouble with Elephant, so I probably should have taken these sort of 'unknown unknowns' (which are more pre…

If you are going to be the only programmer on the project then your reasons make sense. However, if you are going to have other people on the projects - then your reasons do not make sense from a longer term point of view. How many lisp programmers do you have out there as compared to python or ruby programmers? If you and the founders decide to go your separate ways how likely is the project going to be continued in lisp?

It seems like a somewhat precarious decision to let you use Lisp for this project. There's nothing supremely special about the problem you are attacking that warrants Lisp (outside of your comfort level which you clarified very clearly in your post).

Perhaps I'm just old and cynical but I've been on too many projects where the first (and therefore "lead") developer chose a particular language and architecture that in the long term was not sustainable.

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#72
post #16

Did 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…

> I could write code faster than I would in Perl, Awk or TCL, it ran as fast as C++ Was that GUI code (as the rest of your post seems to imply)? CL is not competitive with C++ in terms of raw speed, in my opinion. Without type declarations, it's close to Perl.

[deleted]

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#73
post #71
post #49

Earlier quoted context omitted.

That's a fair point. For a programmer without Lisp experience, that would be true. But I've written enough Lisp-based webapps that there aren't really that many 'unforseen' problems for me anymore (rule of thumb: use software by Edi Weitz - everything he writes is golden :-D)). That being said, I still ran into trouble with Elephant, so I probably should have taken these sort of 'unknown unknowns' (which are more pre…

If you are going to be the only programmer on the project then your reasons make sense. However, if you are going to have other people on the projects - then your reasons do not make sense from a longer term point of view. How many lisp programmers do you have out there as compared to python or ruby programmers? If you and the founders decide to go your separate ways how likely is the project going to be continued in…

There are, obviously, far more ruby/python programmers. But, at the very most, I might only ever need a dozen Lisp programmers and I already know 20 that I would love to work with. Lisp is even pretty easy to pick up if you're smart know other dynamically typed, functional, and OO languages.

As a point of reference, ITA Software has no trouble hiring 100s of Lisp programmers.

Minor correction: I am a founder - and if I were to leave (while my co-founders continued), I'd make a point to find my replacement first.

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#74
post #72

Earlier quoted context omitted.

> I could write code faster than I would in Perl, Awk or TCL, it ran as fast as C++ Was that GUI code (as the rest of your post seems to imply)? CL is not competitive with C++ in terms of raw speed, in my opinion. Without type declarations, it's close to Perl.

[deleted]

"and it ran as fast as C++" (emphasis added)

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#75
post #21

Earlier quoted context omitted.

In the last two years? Clozure Common Lisp at least: an open source multithreaded Lisp implementation with unicode on Win32. Before then it was all Unix. Lisp platform independence is so good, I hack on win32 all day and when I am ready to deploy on Linux, the only warning I get is from git telling me it's converting line endings to Unix style. The staggering number of new and maturing infrastructure libraries; borde…

It's funny, when I googled "Clozure CL" I got: An open-sourced Common Lisp implementation for LinuxPPC. and didn't look at it again. If you are using OSX/Linux anyway, is Clozure CL useful (considering you we already got CMUCL/SBCL)?

CCL is supposed to have nice bridge to Objective-C and Cocoa on OS X. It also compiles very fast compared to SBCL and supports threading on Windows (which SBCL does not).

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#76
post #33
post #27

Ok, so Rails is too heavy weight for you? What about Merb? Or Sinatra, which was designed for just that reason? Dismissing Ruby as language because only one of a dozen available web frameworks is too "heavy-weight"sounds a bit short-sighted to me.

I am not the OP, but I have a problem with Rails and alternatives: there does not seem to be a viable alternative to ActiveRecord around? I looked into DataMapper (I think that was it's name) which initially looked great. But then I could not find any information on how to use transactions, and also received no answers on the newsgroup. I guess I should have read the source, but I gave up at that point. Since I hate…

ActiveRecord is a small part of Rails. Lots of people use Rails without using ActiveRecord.

See http://whitepages.com for an example.

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#77
post #22
post #6

Earlier quoted context omitted.

Nope - just a style thing. You don't need lambdas either - named functions are just as powerful. But I often think 'functionally.' Since I have options, I'd rather go with a language that allows me to program how I think - instead of being forced to translate my thought into its semantics.

Nope - just a style thing. You don't need lambdas either - named functions are just as powerful. It depends on what you define as power, and how wide of a continuum you are willing to presume that it runs. Named functions add two levels of clutter. The first is to the actual code, because you have to add a name to something that never wanted one, and it has to be defined apart from where it is used. You could give it…

I agree with this big time. I hate increasing the "vocabulary" of my program unnecessarily.

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#78
post #21

Earlier quoted context omitted.

In the last two years? Clozure Common Lisp at least: an open source multithreaded Lisp implementation with unicode on Win32. Before then it was all Unix. Lisp platform independence is so good, I hack on win32 all day and when I am ready to deploy on Linux, the only warning I get is from git telling me it's converting line endings to Unix style. The staggering number of new and maturing infrastructure libraries; borde…

As a beginner to lisp, I have always been bothered by the lack of standardization - especially in terms of libraries. For example, a couple of weeks back, there was an article about a python-based tool on HN (I forget which). There was a lot of opinion, however was generally about BeautifulSoup vs lxml. Coming to CL, I dont even know where to begin for XML parsing ( http://www.cliki.net/XML ). Which is why, it seems…

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 total shit and then I googled around and grabbed a better one from someone's homepage.

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#79
post #47
post #41

Earlier quoted context omitted.

Well, FP is mostly about nesting, but it's uniform and people get used to thinking that way. List comprehensions, on the other hand, are more like procedure code (conceptually), and it sucks to nest them. Nesting aside, it's the different level of abstraction that matters for FP-ers. Plus, you get 5 mentions (3 y's and 2 x's) of some intermediate variables instead of 0 in your code, so both token-wise and char-wise,…

I have a longer comment here that argues the opposite: list-comprehensions are only a syntactic pun or two away from set-builder notation, which is a higher level-of-abstraction (it declaratively states what it is) than map+filter (which specify a procedure to generate it, albeit at higher level of abstraction than a for-loop). If you can put together a nontrivial usage of map+filter with at least three source collec…

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 comprehension (about the same I guess?). Nothing is perfect, like you said, know you tool :)

Re: Why I chose Common Lisp over Python, Ruby, and Clojure

#80
post #21

Earlier quoted context omitted.

In the last two years? Clozure Common Lisp at least: an open source multithreaded Lisp implementation with unicode on Win32. Before then it was all Unix. Lisp platform independence is so good, I hack on win32 all day and when I am ready to deploy on Linux, the only warning I get is from git telling me it's converting line endings to Unix style. The staggering number of new and maturing infrastructure libraries; borde…

* Few years ago you couldn't just download a random lisp library and expect it to work * Yeah, that was my painful experience as a noob. Now dependency libraries get downloaded behind the scenes. You mean ASDF takes care of dependencies for you?

She might be talking about clbuild.
Post reply on HN