4 ms·
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 f
by cutler 7y ago
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.
- mark_l_watson 7y agoI 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.
- rcarmo 7y agoDitto. 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 https://github.com/gilch/hissp will do.
- nerdponx 7y agoCurious 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.
- rcarmo 7y agoIt 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.
- nerdponx 7y agoThat'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.
- reikonomusha 7y agoI haven’t tried, but are the variables properly captured in closures? LET should have “temporary” lexical scope, not “temporary” temporal/dynamic scope.
- gilch 7y agoIt does at least act like it has closures. Try starting the REPL with $ hy --spy and you can see how examples get compiled.
- rcarmo 7y agoAt 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.
- cutler 7y agoNot a small thing really. To anyone who groks Lisp a dysfunctional let is a non-starter.
- slifin 7y agoAs 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 https://nextjournal.com/chrisn/fun-with-matplotlib
- cutler 7y agoI 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.
- dangom 7y agoIt 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.
- nanomonkey 7y agoJoker fills in the scripting with clojure syntax quite well.
- joobus 7y agoClojurescript with planck is another option. https://planck-repl.org/ https://planck-repl.org/
- sli 7y agoLumo as well. https://github.com/anmonteiro/lumo https://github.com/anmonteiro/lumo
- cutler 7y agoIt'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.
- nanomonkey 7y agoAhh, Clojure also has access to Python objects through libpython-clj (https://github.com/cnuernber/libpython-clj https://github.com/cnuernber/libpython-clj).