Language volatility #2003
Replies: 6 comments 3 replies
-
(My personal opinion, and relatively uninformed as I only started using Hy a month or so ago) I think this should be less of an issue now, assuming we're timely with the 1.0 release. Also, theoretically one could write a "hycompat" package, that would work something like this, and your code would otherwise need minimal changes: (import [hycompat.from-0.11 [*]])
(require [hycompat.from-0.11 [*]])
;; ... your existing hy 0.11 code ... Probably best to wait until 1.0 is released to start on any compatibility layers though... |
Beta Was this translation helpful? Give feedback.
-
I agree with scauligi with the fact that we shouldn't be looking to preserve backwards compatibility until 1.0. I think the bigger issue is that the Hy code base changes so frequently and we're pushing releases directly to main pypi line that it's hard for people to really settle in to hy before things break again. I was thinking that we move to a more python like release cycle. Leave Hy at |
Beta Was this translation helpful? Give feedback.
-
Hi. Thanks everyone who answered! I'm slightly surprised that other mere-users haven't weighed on this. I think the solution that freezes 0.x and moves continued development to 1.0 pre-release is very good. I'd plead you to keep I'd think I'm completely alone on this, but googling to see if there were others with similar concerns as me, I discovered not one [1] but two [2] (e-)books on Hy. There's also blog posts kvetching hard about constant breaking and having multiple projects in multiple versions of Hy, but I don't think these make a point I haven't made, they just do it more forcefully. Maybe there is (and maybe there is not) a disconnect between "product owners" (and I have a profound sense of "hierarchy" towards them; I'm just a mathematician in data scientist drag) who see Hy as a work in progress, full of flaws and less-than-ideal features, and "product users" -- I previously thought I might be one in a handful of these, but apparently there's more -- who see this as a programming language, and a very useful one. This being open source, users don't have that much leverage over product owners. I have to resort to pleading:
[1] https://leanpub.com/hy-lisp-python |
Beta Was this translation helpful? Give feedback.
-
As one of the 0.0.x users, I'd like to say I keep coming back expecting to see a stable release that will let me pick up https://github.com/rcarmo/sushy again and re-spin it in "modern" Hy because I quite liked its conciseness. I left Hy when This is just my $0.02, obviously, but having stable releases with good docs would greatly help. |
Beta Was this translation helpful? Give feedback.
-
I'm another simple user - I use Hy as a numpy/scipy wrapper and for trading software - and I have had to pin to 0.20.0. Another problem is that there is no obvious way to access the docs for 0.20.0. Here, a message saying breaking changes: NEWS" on the front page of the docs (under source, discussions, pypi) would really help people understand the language status and avoid losing some of those casual users who are experiences the breakages. It would have saved me an hour or two and I follow Hy quite closely. For me, Hy is a very nice tool, but still a tool. I really hope that breaking changes will be minimal after 1.0 as moving my code to 1.0 will be quite a large project. As rcarmo says, stable releases with good docs (and the docs are pretty good) will help greatly. Using a moving target for trading software was in hindsight rather risky, but a lispy semantic structure makes reasoning about mathematical code so much easier. |
Beta Was this translation helpful? Give feedback.
-
Yeah, it complicated our lives, too. It was a mistake, and we're back on 0.* releases.
You're in luck. 0.24.0 was released in June.
It's an obsolete release, so keeping the documentation online would lead to yet more cases of people reading it when they're using a different version and reporting a "bug" when the inevitable problems arise. You can still use
We've had a giant banner and people ignored that, too. If people don't consider the possibility of version differences, there's really no way we can convince them to do that. My impression at this point is that people being flummoxed by version differences is part of the cost of doing business, and the most we can do is document things well.
I don't understand how you could follow Hy quite closely and not notice that it has breaking changes.
Yeah, the point of such a release number, in my mind, is to indicate that no breaking changes are imminent. Presumably they'll happen eventually and there will be a Hy 2.0 and 3.0 someday, but if they were going to happen soon, I wouldn't call the latest release 1.0.
I think you'll have an easier time of it if you update your code for each release, instead of waiting till 1.0 and trying to cope with a massive number of changes simultaneously. That will also allow you to get new features and bugfixes (including compatibility with newer Pythons) and help us test our latest code. |
Beta Was this translation helpful? Give feedback.
-
This is meant as feedback: it's written from my point of view. I know there are other, more qualified points of view and that the project has the direction it has.
I know that feature stability is not in scope until 1.0. But @allison-casey said (I think I quote their intent correctly) in an issue I can't find anymore that continually breaking code has the effect of a highway billboard saying "don't use this language!".
The breakneck speed of change in Hy might be a suicidal tactic. There's only so many times you can convince people to rewrite projects like Adderall and Hydiomatic. Less advanced users like me can always pin a version of Hy (PyPI statistics suggest the most popular version is 0.11) to keep their stuff working, but can I recommend the language?
I could also fork something right before
toolz
functions are removed from the standard prelude and call it "Messy Hy". But I'm not at that level as a programmer (I mean, to maintain a fork, contribute back upstream, move forward with Hy in most non-aesthetic respects). Maybe Hy could do something like it --- it's what Python did at the 2.7 -> 3.0 discontinuity. I mean, I get that project leaders find much to improve in Hy, but I find that Messy Hy is great.As it stands now, I think Hy will just keep losing users. This isn't a ragequit from a community in which I have literally no standing; I'm just an anecdote.
Beta Was this translation helpful? Give feedback.
All reactions