Live data from Hacker News

Scripting in Common Lisp

ebzzry.io

11–20 of 41 posts

Re: Scripting in Common Lisp

#11
post #10

I'm somewhat baffled that Hy didn't gain any traction. Let's review the facts: - A lot of people love Python. - Plenty of people love Lisps, afaict with a sizeable overlap with the first group. - Hy, which is a Lisp on the Python platform, has no popularity whatsoever compared to other Lisps like Clojure. The heck?

Python can't use multiple cores, in contrast to the other lisps?

Re: Scripting in Common Lisp

#12
post #10

I'm somewhat baffled that Hy didn't gain any traction. Let's review the facts: - A lot of people love Python. - Plenty of people love Lisps, afaict with a sizeable overlap with the first group. - Hy, which is a Lisp on the Python platform, has no popularity whatsoever compared to other Lisps like Clojure. The heck?

It doesn't surprise me. It does not have a strong selling point.

I go on to the documentation page, and see that yes, it is nice clean lisp-like language, but I can't see what problem it solves that Clojure doesn't already solve. (And clojure has the existing library/community support to give it the edge.)

EDIT: That's not to say that there isn't one. I just am not immediately seeing it.

Re: Scripting in Common Lisp

#13
post #10

I'm somewhat baffled that Hy didn't gain any traction. Let's review the facts: - A lot of people love Python. - Plenty of people love Lisps, afaict with a sizeable overlap with the first group. - Hy, which is a Lisp on the Python platform, has no popularity whatsoever compared to other Lisps like Clojure. The heck?

Hy may have changed since I last looked at it, but when I had looked at it, Hy was more of an s-expression syntax bolted onto python.

Some random thoughts on why this matters:

Clojure is very much not a thin s-expression layer for java; that would have been terrible (Python is more like lisp than java which is why Hy is tenable whatsoever).

In particular, CL style macros with out some first-class concept of symbols are a footgun[1], but I'm sure I could find other issues.

Another item that can't be ignored is that Hy selected the clojure syntax, which is going to be a turn-off for anyone coming from Lisp or Scheme.

Finally, there are hundreds of thin s-expression layers on top of existing languages, and most of them are terrible; Hy has done nothing to stand out from this crowd, so most lispers will not look closely at it.

1: See https://youtu.be/cPNkH-7PRTk?t=4786 for Rich's discussion of how he managed this issue in Clojure.

Re: Scripting in Common Lisp

#14
post #10

I'm somewhat baffled that Hy didn't gain any traction. Let's review the facts: - A lot of people love Python. - Plenty of people love Lisps, afaict with a sizeable overlap with the first group. - Hy, which is a Lisp on the Python platform, has no popularity whatsoever compared to other Lisps like Clojure. The heck?

If I had to guess I would say the overlap is not as sizeable as you think, at least in the Common Lisp and Scheme camps.

Python really has very few things in common with Lisp and its philosophy is in many ways orthogonal to the philosophy of Lisp. From the idiotic moto "There should be one — and preferably only one — obvious way to do it" (which isn't even true in Python-land) to all the compromises that Python accepted to attract marketshare that would make any hardened Lisp user want to barf, it's crystal clear to me that Python makes an even worse platform than the JVM for Lisp.

Some examples of serious differences between Python and Common Lisp - that would make any serious CL user run away from Python/Hy - are:

+ CL (like Smalltalk) is a fully interactive language. Python's focus on interactivity is minimal if not entirely unproductive. Approaches like Jupyter come across as terrible hacks that lack most of the features that matter to people immersed in Lisp.

+ CL can be very performant. Implementations like SBCL can produce native code competitive with C compilers.

+ CL is truly multiparadigm (one can do imperative, functional, OOP, logic, aspect, nondeterministic, lazy, parallel/multicore and not feel as if the language is fighting him every step of the way). Python has too many limitations for that to be true.

+ Lisp feels conceptually clean and internally consistent. The metacircular evaluator is a thing of beauty. Python feels like a collection of gross hacks and adhoc rules thrown together by humans who didn't know better.

Re: Scripting in Common Lisp

#15
post #10

I'm somewhat baffled that Hy didn't gain any traction. Let's review the facts: - A lot of people love Python. - Plenty of people love Lisps, afaict with a sizeable overlap with the first group. - Hy, which is a Lisp on the Python platform, has no popularity whatsoever compared to other Lisps like Clojure. The heck?

Played around with it a few months ago. The syntax is peculiar, clojure-inspired, but still very different. Breaking changes have been made, leaving most libraries unusable. The documentation didn't mention this (and is lacking in many other ways).

And btw. many of these changes weren't even features. Like core functions getting removed for philosophical reasons.

Feels like they broke and abandoned it

Re: Scripting in Common Lisp

#16

It's not common lisp, but most of my Emacs use has been as a shell scripting alternative. Workflow being based around interactive improvement of a script from a simple interactive-macro through to things that are effectively done as shell scripts. The end result is something that can be run as a shell script, although translating to another language i.e. CL, Ruby, Go, etc. is the usual path for me to make better use…

Emacs is my favourite software, but elisp is one of my least favourite lisps. The other day I stumbled upon Shen language after some years and noticed it now has BSD license and an elisp implementation. I tried to add it to spacemacs and, to my surprise, it just worked. When I have some spare time the next thing I'll do will be to learn some Shen and see if for shell scripting it is an improvement over elisp.

Re: Scripting in Common Lisp

#17
post #10

I'm somewhat baffled that Hy didn't gain any traction. Let's review the facts: - A lot of people love Python. - Plenty of people love Lisps, afaict with a sizeable overlap with the first group. - Hy, which is a Lisp on the Python platform, has no popularity whatsoever compared to other Lisps like Clojure. The heck?

Python can't use multiple cores, in contrast to the other lisps?

What does language have to do with "use multiple cores"? Python has both multiprocessing and threading libraries.

Re: Scripting in Common Lisp

#18

Earlier quoted context omitted.

Python can't use multiple cores, in contrast to the other lisps?

What does language have to do with "use multiple cores"? Python has both multiprocessing and threading libraries.

And the GIL on CPython, but yeah multiple process are also an option.

Re: Scripting in Common Lisp

#20
post #10

I'm somewhat baffled that Hy didn't gain any traction. Let's review the facts: - A lot of people love Python. - Plenty of people love Lisps, afaict with a sizeable overlap with the first group. - Hy, which is a Lisp on the Python platform, has no popularity whatsoever compared to other Lisps like Clojure. The heck?

> which is a Lisp on the Python platform

'a Lisp' is a practically useless term, when you expect that usual Lisp code will run or even being able to be ported. It's incompatible with any other Lisp. Which makes it an island.

Post reply on HN