23 ms·
It's going too far to say "has no value". It may be true that its value is not immediately obvious, though. In my opinion, Lisp is more attractive than any ot
by stray 11y ago
It's going too far to say "has no value". It may be true that its value is not immediately obvious, though.
In my opinion, Lisp is more attractive than any other language because of its Condition System -- though macros rightfully get more attention -- what it lacks is libraries.
But hopefully, that condition won't last too long. If nobody beats me to the punch I'm working on a way to steal Python's libraries by transpiling them into Lisp.
- agumonkey 11y agoLibs ? quicklisp seemed fully featured. The problem seemed like a community / branding problem. People are used to python libs and word of mouth so lisp is a vacuum. The condition system looks very nice, but I rarely see people talking about it. Not saying it is not useful, just that I'd love to know more about usage. Maybe at one point people leave conditions to go into typed programming too. The 'no value' was a bit strong, I meant it relatively to trendy and stable languages.
- stray 11y agoActually, Common Lisp has a very nice (optional) type system. It is not uncommon to declare types once everything is working to speed things up -- so with Lisp, you get the best of both worlds. What sets Lisp's condition system apart is that it separates signaling a condition, handling it, and restarts. In other words, the decision about which handler to choose for an exception is usually made in much higher-level code, where it belongs. And when no suitable handler is found you get dropped into the debugger. While in the debugger you can create the handler you need, and then call it. And all this without unwinding the stack at all. So while in another language I'll have to restart a long running process over and over again until the code covers all the unexpected cases -- in Lisp I can just start off assuming the happy path and refine as I go along, without ever having to start over because of an error. I almost always feel that people talk about the wrong things regarding Lisp. A huge deal is made over macros, but nobody ever mentions the reader which is what makes macros possible. And when people do talk about macros they almost never mention reader macros. And sometimes people do make a completely justified big deal out of the MOP (meta-object protocol) -- but frankly, I think generic functions and multiple dispatch are far more important. Or the fact that Lisp offers multiple-inheritance done right (multiple inheritance gets a bad rap because most other languages lack the flexibility to properly handle them). But seriously, the Condition System. It is in my mind, the killer feature of Lisp. http://www.nhplace.com/kent/Papers/Condition-Handling-2001.html http://www.nhplace.com/kent/Papers/Condition-Handling-2001.h... http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html http://www.gigamonkeys.com/book/beyond-exception-handling-co...
- raiph 10y agoI wonder if you noticed the language which just shipped its first official version with: * a typing system some call "gradual typing" (loosely similar to optional typing); * a condition system; * "grammars/actions" which are not only first class in the language but are self-applied in a bootstrapping fashion during parsing (which I'm thinking is equivalent in power to reader macros); * CLOS inspired OO; * a MOP; * generic functions; * multiple dispatch; * multiple inheritance "done right".