Live data from Hacker News

Ask HN: Why Shouldn’t I Use Lisp?

news.ycombinator.com

11–20 of 31 posts

Re: Ask HN: Why Shouldn’t I Use Lisp?

#11

Depends on what you are implementing and how. I find Lisp good if you have a rough top-down design and lots of bottom-up implementation details to suss-out. You can test each bit as you build and in passing you might implement a DSL for your domain. There are many compiled Lisps (both CL and Scheme) so performance can be quite good. Generally, it is hard to deploy Lisp on client systems (if that is a requirement) wit…

Loko Scheme is certainly not an exception in producing a single executable with no dependencies. All major Common Lisp implementations do this. I shipped a program for Windows quite easily using Clozure Common Lisp ("CCL").

Re: Ask HN: Why Shouldn’t I Use Lisp?

#12
post #2

To paraphrase Ansel Adams (who was speaking of cameras), there is no one best language only the best language for the project you're doing. It may very well be that Lisp is the right language for your project. That depends largely on what the project is and what advantage you are seeking from Lisp (or another choice) that helps complete your project and, most importantly, reduces debugging time later since that's whe…

> because that language offers much more flexibility for UI design

Sure, for values of "flexibility" approaching "the only darn way to make UI run in the browser".

Re: Ask HN: Why Shouldn’t I Use Lisp?

#13
post #2

To paraphrase Ansel Adams (who was speaking of cameras), there is no one best language only the best language for the project you're doing. It may very well be that Lisp is the right language for your project. That depends largely on what the project is and what advantage you are seeking from Lisp (or another choice) that helps complete your project and, most importantly, reduces debugging time later since that's whe…

> because that language offers much more flexibility for UI design Sure, for values of "flexibility" approaching "the only darn way to make UI run in the browser".

You could use TypeScript, like VSCode does.

Re: Ask HN: Why Shouldn’t I Use Lisp?

#14

Depends on what you are implementing and how. I find Lisp good if you have a rough top-down design and lots of bottom-up implementation details to suss-out. You can test each bit as you build and in passing you might implement a DSL for your domain. There are many compiled Lisps (both CL and Scheme) so performance can be quite good. Generally, it is hard to deploy Lisp on client systems (if that is a requirement) wit…

Loko Scheme is certainly not an exception in producing a single executable with no dependencies. All major Common Lisp implementations do this. I shipped a program for Windows quite easily using Clozure Common Lisp ("CCL").

Generally that's true. Loko Scheme is interesting, though - but probably not widely used. Check the documentation.

Probably he meant 'zero' dependencies. Like not depending on C libs. I see that Loko Scheme depends on running on Linux (unclear, which versions) and AMD64 cpu - it seems to be able to run on bare metal, too - but the dependencies on the hardware are unclear. To bootstrap, it might need another Scheme implementation.

Many Lisp systems can generate executables, some of which then may depend on some external libraries (maybe in specific versions), specific OS versions or even specific CPU variants (not unknown on ARM hardware which has a lot of CPU variants).

Re: Ask HN: Why Shouldn’t I Use Lisp?

#15
post #14

Earlier quoted context omitted.

Loko Scheme is certainly not an exception in producing a single executable with no dependencies. All major Common Lisp implementations do this. I shipped a program for Windows quite easily using Clozure Common Lisp ("CCL").

Generally that's true. Loko Scheme is interesting, though - but probably not widely used. Check the documentation. Probably he meant 'zero' dependencies. Like not depending on C libs. I see that Loko Scheme depends on running on Linux (unclear, which versions) and AMD64 cpu - it seems to be able to run on bare metal, too - but the dependencies on the hardware are unclear. To bootstrap, it might need another Scheme im…

A language implementation that depends on no C libraries, on a platform whose documented interfaces are C libraries, still has a platform dependency, and that platform dependency is worse.

Re: Ask HN: Why Shouldn’t I Use Lisp?

#16

Depends on what you are implementing and how. I find Lisp good if you have a rough top-down design and lots of bottom-up implementation details to suss-out. You can test each bit as you build and in passing you might implement a DSL for your domain. There are many compiled Lisps (both CL and Scheme) so performance can be quite good. Generally, it is hard to deploy Lisp on client systems (if that is a requirement) wit…

Traditionally Lisp systems are incredibly easy to deploy by saving an image. Images are so different from what is practical in C or Java that I found it hard to wrap my head around. An image is a saved running state. It requires a runtime that allows interacitvity. Smalltalk, Common Lisp, and ML are all examples. Scheme based systems typically don't provide it...but like anything there are exceptions.

Some documentation about images in SBCL: http://www.sbcl.org/manual/#Saving-a-Core-Image

Re: Ask HN: Why Shouldn’t I Use Lisp?

#17

Because static typing is important for working productively with medium-to-large programs, because the Lisps have decrepit ecosystems, and because they aren't even good dynamically typed languages either, with the possible exception of Clojure. There is nothing that Common Lisp has, that other languages don't have, that makes it necessary.

That‘s a pretty opinionated statement... Could you elaborate on why you think the Lisps aren‘t „good dynamically typed languages?“

And I don‘t think „necessary“ is a good metric when comparing programming languages; „pleasant to use“ or „efficient to write“ strike me as more pertinent (as well as the obvious runtime efficiency questions).

Re: Ask HN: Why Shouldn’t I Use Lisp?

#18
post #17

Because static typing is important for working productively with medium-to-large programs, because the Lisps have decrepit ecosystems, and because they aren't even good dynamically typed languages either, with the possible exception of Clojure. There is nothing that Common Lisp has, that other languages don't have, that makes it necessary.

That‘s a pretty opinionated statement... Could you elaborate on why you think the Lisps aren‘t „good dynamically typed languages?“ And I don‘t think „necessary“ is a good metric when comparing programming languages; „pleasant to use“ or „efficient to write“ strike me as more pertinent (as well as the obvious runtime efficiency questions).

Use of a bad language like C or Java or Emacs Lisp (if that can be called bad) can be necessary -- the best choice.

I don't have a novel explanation of what makes Common Lisp and Scheme bad dynamically typed languages, just the ordinary obvious reasons, so there's no point in writing it out.

Re: Ask HN: Why Shouldn’t I Use Lisp?

#19

Depends on what you are implementing and how. I find Lisp good if you have a rough top-down design and lots of bottom-up implementation details to suss-out. You can test each bit as you build and in passing you might implement a DSL for your domain. There are many compiled Lisps (both CL and Scheme) so performance can be quite good. Generally, it is hard to deploy Lisp on client systems (if that is a requirement) wit…

Clojure does pretty well on clients, ClojureScript for web and single .jar for JVM Clojure.
Post reply on HN