Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If Hy could resolve its problems with let being moved to contrib and attracted enough manpower to reach 1.0 I think it could attract significant mindshare. Hy fills in the missing piece for devs who want to go all-in with modern Lisp supported by an established ecosystem, ie. front-end/Clojurescript/NPM, scripting/Hy/PyPi and back-end/Clojure/JVM.


As of recently, scripting is viable in Clojure due to GraalVM's native image

If it's the ecosystem that's of interest there are solutions for that too: https://nextjournal.com/chrisn/fun-with-matplotlib


I was suggesting Hy adds PyPi to your arsenal, especially for ML and data science. With these 3 you have a modern lisp solution to anything above system level and backed by a solid ecosystem of libraries.


It seems to me that this solution to call python from clojure defeats the purpose of using clojure in the first place. You lose the interactive loop, as you can't really inspect the underlying python objects and it's hard to jump around definitions or refactor. Also, imports and functions being called as strings is terrible for debugging.


I agree that removing ‘let’ makes the language much less pleasing for me to use. I recently looked in contrib for ‘let’ and saw the macro definitions but could not get it working. It seems like a small thing, but it does keep me from doing more than rare experiments with Hy.


Ditto. I moved away from it partially due to the removal of let and partially due to lack of Python 3/async support (which is now landing).

I’d really like to see a 1.0 with let back in the core, but I don’t see that happening just yet.

Edit: typos, plus I’m also curious to see what https://github.com/gilch/hissp will do.


Not a small thing really. To anyone who groks Lisp a dysfunctional let is a non-starter.


Curious what problems you had with let. I tried it recently and it worked fine. Having an import is annoying but it's not the end of the world.


It was removed without the replacement macro being fully baked, and a number of other things were changed at the same time. Rather than rewrite my stuff at every minor release, I moved on.


That's what I'm asking. What's not fully baked about it? In my (admittedly small) testing, it does its job of assigning stuff in a temporary scope.


I haven’t tried, but are the variables properly captured in closures? LET should have “temporary” lexical scope, not “temporary” temporal/dynamic scope.


It does at least act like it has closures. Try starting the REPL with $ hy --spy and you can see how examples get compiled.


At the time, it just wasn’t there :)

Nowadays it seems to work, but rewriting my code to catch up with today’s version (and cope with the other changes introduced over the last couple of years) is not something I’m interested in doing.


Joker fills in the scripting with clojure syntax quite well.


It's not about Clojure syntax. In fact Hy is only a rough approximation of Clojure. It's about the whole of PyPi available from Lisp. If it resembles Clojure, even better, but that's not Hy's raison d'etre.


Ahh, Clojure also has access to Python objects through libpython-clj (https://github.com/cnuernber/libpython-clj).


Clojurescript with planck is another option. https://planck-repl.org/





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: