4 ms·
Lisp does not, at the moment, have any truly practical implementation of multiprocessing. It also doesn't gather any of the lazy benefits of Haskell. It is wort
by Locke1689 17y ago
Lisp does not, at the moment, have any truly practical implementation of multiprocessing. It also doesn't gather any of the lazy benefits of Haskell. It is worthless for prototyping as its modules haven't been up to date in 20 years.
Edit: Gruseom is right, I was very critical without providing any support. Lisp is still very useful in certain cases. The instances which I find trouble with it are detailed in my second response.
- gruseom 17y agoLisp does not, at the moment, have any truly practical implementation of multiprocessing. That would explain why there aren't any Lisp web servers. It is worthless for prototyping as its modules haven't been up to date in 20 years. Tell that to the people who are using it. Oh wait, I'm one of them. What you're saying here is such a crock that I have to wonder what your purpose is.
- Locke1689 17y agoFair, I was overly critical. For me, I find that it is far easier to find modules for Python than for Lisp. For example, the other day I was looking for a module to read and write ID3 tags. The only thing I could find for lisp was http://www.google.com/search?hl=en&client=safari&rls=en&q=lisp+id3+module&aq=f&oq=&aqi= http://www.google.com/search?hl=en&client=safari&rls..., which is buggy and incomplete. It didn't take very long to find a suitable Python module. As to multithreading, first since when is a web server the be-all-end-all of multiprocessing? Hell, you don't even need multithreading to do a webserver, just use Unix processes. My issue with Lisp is that there is no standard for multi-threaded Lisp; the ANSI spec doesn't consider threading at all. The Lisp community seems to be increasingly fractured over the years, which is too bad because I'm not insulting Lisp because I hate it -- it has just become too difficult to use as my generic do-everything language.
- gruseom 17y agoSorry for impugning your motivations. I lumped your comment in with the anti-CL canards that people keep repeating. Your ID3 tag library is a good example of the kind of thing one doesn't find much of in the CL world. On multithreading, though, I think you're off base. Modern CLs all support it, it works great, end of story. That it's not in the standard is a red herring; you simply look up what you need in the documentation for your Lisp instead of in the Hyperspec. Big deal. If you want to run on more than one Lisp, it's trivial: (defun spawn (name fn) #+ccl (ccl:process-run-function name fn) #+lispworks (mp:process-run-function name nil fn) #+sbcl (sb-thread:make-thread fn :name name)) I wouldn't use CL as a do-everything language either, but it's typically a superb place to be if you're trying to do anything complex.
- wglb 17y agoTo respond to a specific point, Practical Common Lisp has a complete implementation of a program to read MP3 and build an online index from the information there. It is a thing of beauty.