4 ms·
Yes, abandon something that's been making money for 30 years and throw away decades of domain expertise because it's not fashionable. Great idea. Not that cloj
by pavelludiq 11y ago
Yes, abandon something that's been making money for 30 years and throw away decades of domain expertise because it's not fashionable. Great idea.
Not that clojure is a bad language(I actually like it quite a bit), but compared to the professional common lisp world, it's a baby. CL has an extremely high-quality and stable specification, dozens of very good implementations for pretty much every platform(whit several ones that are decades old, and several ones that are brand new), a community that simply refuses to die, and use cases where clojure would be completely inadequate. Not to mention the assertion that non-clojure lisps are not going anywhere is completely false, both common lisp and racket(hell, even elisp) are growing in their niches and developing their ecosystems. Books and libraries are being written, products are being developed, conferences and meetups are organized, businesses are started and research is being done.
- themartorana 11y agoWith 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 11y 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 11y 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 11y 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 11y 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/