3 ms·
With zero snark, because I've never had the (apparent) pleasure of working with a lisp, what are the use cases for Common Lisp? It barely registers when talking
by themartorana 12y ago
With zero snark, because I've never had the (apparent) pleasure of working with a lisp, what are the use cases for Common Lisp? It barely registers when talking about building APIs and production cloud platforms for game services, which is my current wheelhouse. Clojure comes up, of course...
- copsarebastards 12y agoA few cases I've seen CL used for: 1. Decision systems for stock and commodities trading. 2. Flight scheduling and flight price optimization. 3. Social network analysis and advertising impact analysis. What all of these problems have in common is that they involve crunching a fuckton (the technical term) of data, sometimes in real time, and making decisions based on it. Some of the problems are NP complete and use genetic algorithms and other techniques to approximate ideal solutions. These are extremely hard problems. It's also worth noting that many of these systems were started in the 80s and 90s and encode a lot of research and business logic which simply isn't yet available elsewhere. I'd love to work on one of these systems, but unfortunately I've only been working in industry a mere decade and the competition in that area has mostly 2-3 times that level of experience.
- pavelludiq 12y agoSpecific domains where clojure might not do so well are probably the same domains where the JVM is impractical, for example embedded or low-level programming, anything where you have to interact heavily with the world outside of the JVM and have a small footprint. Obviously mobile looks like an area where common lisp has better options(with this announcement that makes two commercial implementations, the other one being mocl: https://wukix.com/mocl https://wukix.com/mocl). How about crazy experimental operating systems? https://github.com/froggey/Mezzano https://github.com/froggey/Mezzano If you want to write native(non-swing) guis LispWorks has that covered, and the open source gtk/qt bindings, while a bit unlispy work very well. Racket has a pretty cool framework too. There is also the fact that a lot of programmers, rationally, or irrationally, simply dislike the JVM. Pretty much everything I dislike about clojure has more to do with the JVM than the core design itself. Both lispworks and franz maintain success lists, so you can look at some of these projects if you want to see some areas where lisp has done fine: http://www.lispworks.com/success-stories/index.html http://www.lispworks.com/success-stories/index.html http://franz.com/success/ http://franz.com/success/
- duncan_bayne 12y agoMy understanding (as a Lisp beginner but with 15+ years commercial development experience) is that Common Lisp has more powerful macro systems, better tooling and better error handling. Some commercial Common Lisp implementations are also known for good, portable GUI frameworks. Clojure has better support for concurrency, very good JVM integration, and a better story around Javascript courtesy Clojurescript (vs. Common Lisp's parenscript). While some people seem quite strongly averse to Clojure (see e.g. http://www.loper-os.org/?p=42 http://www.loper-os.org/?p=42) my opinion - again, that of a Lisp beginner - is that they both have their uses. It's certainly possible to build web front-ends and API-based back-ends using Common Lisp. I know because I'm doing it now :)
- nabla9 12y agoCommon Lisp hits some kind of sweet spot for developing very specialized software. If you think you need to build huge specialized software framework or special programming language from ground up to start solving the problem, you might need Common Lisp. Common Lisp is very programmable language that can still deliver decent speed. http://www.lispworks.com/success-stories/index.html http://www.lispworks.com/success-stories/index.html http://franz.com/success/ http://franz.com/success/