7 ms·
Common Lisp - Myths and Legends
- levicampbell 16y agoI had honestly considered writing my website in common lisp, but discarded that idea because I couldn't find good documentation for the RESTAS web framework.
- sedachv 16y agoDo you mean the official documentation, or 3rd party examples and tutorials? Andrey has been working hard at translating the official docs to English the past few months: http://restas.lisper.ru/en/ http://restas.lisper.ru/en/ As for tutorials, you are right that there could be more. Between https://github.com/archimag/rulisp https://github.com/archimag/rulisp and https://github.com/archimag/cliki2 https://github.com/archimag/cliki2 there are some good example sites built in RESTAS.
- parfe 16y agohttp://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=31402 http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=s... I couldn't find a date on the article, but it seems it's only web example is no longer valid.
- vixen99 16y ago"its only web example". It's means and can only ever ever mean "it is".
- adambyrtek 16y agoTechnically you are right, but your comment doesn't add anything to the discussion. Typos happen, and I wouldn't be so anal about that. There are more constructive ways to get upvotes.
- edoloughlin 16y agoHere's something that's not a myth or legend: if I live in Europe I pay ~€150 more for the professional version than I would if I lived in the US. (http://www.lispworks.com/buy/prices-1c.html http://www.lispworks.com/buy/prices-1c.html vs http://www.lispworks.com/buy/prices-2c.html http://www.lispworks.com/buy/prices-2c.html)
- jrockway 16y agoSBCL + Emacs probably has more features and runs faster anyway.
- hvs 16y agoI love CL. Absolutely love it. But these sorts of articles (this one is actually quite a few years old) just depress me. It's as if every one who defends CL has to make these sorts of "It's only a flesh wound!" sorts of arguments. With all deference to PG, one web application in over 10 years does not an argument make. Like I said, I love CL, I use CL, but it is not a popular language and I can't blame any company that chooses to go with Python or Ruby simply due to inertia of the languages. And don't get me started on how you are supposed to decide how to choose an implementation of CL...
- gaius 16y agoThe annoying thing is, I can't use LispWorks with an RDBMS unless I pay for the Enterprise Edition. So I can't even do a pilot project without it being "official" within the company. So there is zero possibility of a grassroots adoption happening. Contrast this with Oracle. One of the most money-obsessed companies in the world, I'm sure we'd all agree. But you can download Oracle Enterprise Edition for free with zero fuss and kick the tyres. They don't care, no time limit or size limit or anything, until you go into production with it.
- ScottBurson 16y agoThe open-source CL world has been slowly improving over the last several years. SBCL with CLSQL might work just fine for you.
- lispm 16y agoThat's really simple. You can get time limited full versions of LispWorks Enterprise from them. Let them know how long you need to evaluate the product.
- mahmud 16y agoYou can't also access an RDBMs from C without paying for Visual Studio Enterprise Edition, or using any of the myriad of Free compilers out there that are much better anyway, which everyone else uses.
- tomjen3 16y ago
- kruhft 16y agoI've been taking some time to learn CL lately, and one of the things I've been doing is SPOJ (http://www.spoj.pl http://www.spoj.pl) problems. One one paticular problem (FCTRL) I attempted to solve it in CL and came up with code that I was pretty sure would work. After submitting a number of times using the SBCL compiler, I could not solve the problem in the time allocated. So I went off and just manually translated my code to Python. Exact same algorithm, pretty much word for word translation. Submitted, and made the cut (barely). This I found dissapointing; how could a byte code interpreted language be faster than a compiled language? So I picked up 'ANSI Common Lisp' and started optimizing. Found some problems where I was using / instead of when I could just use floor (but then I found a problem where floor always does a cons; why is there no simple floor where I don't get multiple return values). Submitted, finally got accepted (and slightly faster than python). Further optimizations included giving the exact ranges for certain numbers and inlining the floor function. After an hour or two of optimization work I got it down to about 66% of the python run time. Not even close to what I was expecting in runtime performance, especially considering the 'SBCL is just as fast as C' arguments that are all around. Not that I'm not going to stop learning CL, but it seems the performance claims just don't add up to the performance reality (for this case). And the development time was doubled just to make the program run acceptably fast. As Paul Graham said in ANSI Common Lisp: Lisp lets you write slow programs fast, and fast programs slow. But in many cases 'good enough' is just that and I can really see how python excells in this regard and how it's taken over the hearts and minds of a lot of Ex-Lispers.
- lispm 16y agoCommon Lisp is not simply fast. Common Lisp enables you to write a lot of code in Lisp that is fast. If you write Python and just call the in C written functionality of the implementation it can be easily as fast. With Common Lisp it is possible to stay a long time in Lisp, without the need to use C to improve the speed. Plus you can write code with optimizations that can then get rid of much of the overhead (type checking, bounds checking, ...). But that should only be done locally. Generally the performance model of Common Lisp is not that simple. It takes some practice and some understanding of the compiler and underlying runtime to get code 'really' fast. If you are disappointed with the speed of your code, you should really ask the experts in the Lisp community for some help. There are often trivial ways for speed up and then there are sometimes very complex ways to get better performance. It is hard to learn this from books. You really need to interact with some people who have experience.
- warmfuzzykitten 16y ago[advertising]
- tomjen3 16y agoActually PR, but yes. Just like everytime you hear the words "Zed Shaw", "Linus", "RMS", "Ruby on Rails", "Node.js". It is all branding.
- jrockway 16y agoSomeday when I fix my blog software, I am going to write the following blog post: "How should I determine whether or not to use Language X?" 1) Do you want to use Language X? If you don't want to use it, don't. 2) Do you communicate with people that use Language X? Programming doesn't happen in a vacuum. You probably don't want to read the language implementation source code to determine how to call a function. So it's good if someone is around to teach you the language or to write docs for you. It's also nice to have libraries, because when you want to write Awesome Web 2.0 App, you probably don't want to write a sockets library too. If you answered yes to both questions, you should use Language X. If you start using it and don't like it, then use something else. Please do not write a blog post about your experience, because nobody cares.