Follow

does anybody have thoughts on the Hare programming language

after fiddling with it for a little bit my take on Hare is that i cannot run it on my computer

i missed an argument in my compilation script and now i only have two failing tests, so that is progress

harec seems to work, except @init functions don’t seem to run, and trying to allocate 50TB of memory gives a segfault instead of a more graceful error. might be good enough? idk i kind of feel like you have to understand apple aarch64 assembly to figure out what is going on here, which is. not my specialty

@Lady I only really see it brought up as "worse Zig" but I haven't programmed in either of those

@clayote it is definitely less featureful than Zig

@Lady Barely any:

I like the ideas it's working with and the design-space it's aiming for,

I like that it is genuinely small-amount-of-code-to-support-its-features -- I can compile its full stack (i.e. including the assembler) on an android phone from sources.

(Needed a bit of modifying -- I'm still holding a vague intention of asking if that was the correct solution and share findings with them, I SWEAR--)

I think that distinguishes it in real ways from Zig, and gives it a real niche that it is aiming for and might well be valuable in. Or might be just a small group that is creating its own mildly-self-indulgent progamming AU of "technically coulda done this 20-40 years ago".

@Lady I am lightly skeptical of Drew DeVault's skill and self-discipline as a healthy community leader. I have limited evidence of this -- there is this on the mailing list where one of the maintainers steps down specifically over an (unspecified, and I have not speculated) "profound disagreement with Drew DeVault about what is and isn't appropriate behavior for a leader (or any prominent member) of a FOSS community":
lists.sr.ht/~sircmpwn/hare-use

and this interaction with a mildly easy-to-aggression newcomer (Pre-dating that stepping-down. I can across it searching for an error I got while compiling):
lists.sr.ht/~sircmpwn/hare-use
(In particular I think the quick, passionate-chirping responses, and the timestamps showing the speed vs. how long he would have had to wait for someone to chime in with an imo more appropriate response, are what reflect badly on him in this interaction.)

@Lady I don't know whether that's a pattern -- I haven't seen more, I also haven't seen another instance of someone coming in confident that they know something and that they're Correct and if they have an issue it's a bug, to serve as a second datapoint -- and don't know whether that's changed. (The maintainer stepping down was after this chronologically, tho nothing indicates it's pointing at it.) In addition to not seeing a second instance of it from Drew, or a second possible prompt of it similar to what prompted one I did see, I also haven't seen any instances of it from anyone else in the community.

I like their Code Of Conduct and Evangelism statements.

The above things I noticed did not influence me against joining -- I'm just. bad at Tasks. -- and weren't a barrier for me being interested. I would just have (and still might) enter being like "I'm kinda nervous walking in, hopefully I'm not entering in a way that I might risk this sort of interaction [link]" to head that off.

@Lady EDIT:
6 months ago they edited their Code of Conduct bit.
git.sr.ht/~sircmpwn/hare-docs/

They seem to have an "* Acting with patience, humility, and understanding when helping others, in particular less technically experienced members of the community" line in there specifically over and above the contributor-covenant.org source they based it on. I don't know if that's downstream of either of these, or a signal of them taking this seriously (if it even is a pattern) internally. (I don't have enough experiences to know how to tell.)

The community seems nice, and to the extent that this IS a problem in the community I am an optimist in general and also in this specific case and think (/feel comfortable hoping-assuming) that, if there is an issue and if they face it, they'll be able to get past it with relatively moderate effort and limited drama, and it won't impact the long-term health of the community/language/project.

@Lady This concludes my *glances upwards*, uh, Barely Any thoughts on harelang.

I vaguely want to try it an get lightly involved, in amongst the way-too-many-darnit other things I want to do.

@Lady Hey @Binder just FYI re: your boosting this, I was seeing this more as a "here's my thoughts in response to what you specifically said" rather than a "general FYI about this community".

I don't know if that's how you processed that when boosting it -- like, if you have harelang community people in your mutuals/followers, who you were seeing if you saw this, I'm definitely interested in their internal perspesctive in response to anything I said, implied, or noticed -- but I wasn't writing or seeing this as a broad-audience broadcasted "general PSA things about this project!" aimed at people who weren't already looking into it.
(But maybe you think it's worth that? I've definitely seen things like "this is more-private to you, but probably shouldn't be" and if you think that I wouldn't be against it spreading, but I didn't come to that conclusion myself.)

@Lady @Binder (I'm not necessarily asking you to do/undo/not-do/also-do any action in particular -- I trust you to know your own context and space, and the intentions/implications/downstream of your own actions and, as long as you understand this post (.. these two,now. I ran out of space), make whatever action is considered and reasonable. Just, to please understand that additional few folds/levels/nuances of context, since it's not something necessarily clear or necessarily encode-able in this medium.)

@gaditb @Lady To me that second link shows poorly on person that asked the question. They got few hints that platform is not supported. That was ignored. After firm restating of the fact, that user escalated it and blocked responses. (I'm not part of the community. I just started evaluating the language - that is how i found this thread).

@platlas @Lady Sure, it shows poorly on the person asking that question.

But being a community moderator -- in particular, being a community moderator who is the BDFL and so the person resppnsible for setting the vision and tone of the project, and for mediating conflicts in the community -- gives a much higher standard for your behavior, and in particular you should be able to make a good-faith effort to de-escalate a social interaction even with a stubborn person not in the community.

DDV's response, ' What does the "W" in "WSL" stand for? ', was sent <1 min after the repeated refusal to accept the answer.
It was sent passionately, dismissively, and in an attempt to get a dunk in -- the most charitable intepretation is that he was trying to shut down the conversation so that it didn't keep going in loops on the mailing list.
I'm not saying that as a person he shouldn't have felt that, but that as a community moderator he shouldn't have sent that.

@platlas @Lady He could have held his tongue for 45 minutes and had faith in his community that they could respond more charitably -- and that faith would have been rewarded! A community member was actively writing a more elaborated response!

There are also ways to shut down a conversation that would have been more de-escalatory and more respectful. That is part of the job, and part of the power-set, of a community moderator.
He could have (probably best after there's a charitable, thorough response from the community) gone "Hey, this topic looks like it's going in a loop -- this question has had an answer and to make sure we respect the time and attention of the other people on the mailing list, I'm going to ask that this discussion end."
(Or if he was emotionally tilted for whatever reason at that moment, totally fine, he could have noticed that and stepped back and let (or asked) another community moderator to send that and keep an eye on possible follow-ups.)

@platlas @Lady The random visitor coming in is behaving poorly, but this their first step in the community -- they don't have very high expectations on them at the moment.
But the community code of conduct specifically says "6. Acting with patience, humility, and understanding when helping others, in particular less experienced members of the community".
And DDV in two of his roles has the job of being a paragon of the community.

So if someone snips at a stubborn noob, 'What does the "W" in "WSL" stand for?' as a quick flashy gotcha, they should be pulled aside and privately told gently "Hey, just a quick sec -- you're not incorrect, and you're not wrong to feel that way, but remember, while I know you were frustrated, we don't talk like that here." (Not consequences or anything, literally just -- they forgot for a sec, and reminding them.)

@platlas @Lady But DDV is a community moderator and BDFL. He is a model for the community he has taken responsibility for. So if he does something, then regardless of what the CoC says, it IS something they do here. It weakens the CoC and it weakens the community.

And like this is just one weakening. I don't know if it's a pattern. I don't know of it actually reflects the regular practices in these situations -- it coulda been a one-off. And it's not a moral failing to not be able to handle those situations, it's literally just a skill. Community moderating is a skill and you don't need to good at it (even as a BDFL -- you can build around that).

@platlas @Lady So that's not to say he needs to be always bending over backwards to be charitable every stubborn noob on the mailing list.
He can know "hey, I can get heated" and hold himself back from any immediate response on the mailing list. He can make sure that the community moderators feel able and supported in privately calling out his behavior in the community when it happens. He can build situations where he isn't responsible for being on as a welcoming person in community spaces.

This was just one event where he was a bit rude and uunwelcoming as an individual (which like, happens on mailing lists, and doesn't do anything alone), that as a community moderator he was failing for a bit at that job and that as a BDFL he was setting a bad public example for the community.
and so that, as a net outcome of this one case, weakened the community somewhat.

@gaditb @platlas The “you cannot discuss Windows or macOS on the mailing list” thing is a bit of a red flag to me in general. Of course the goal of it is to reduce mailing list noise by filtering out platforms which the development team has no interest in supporting. But this is a limitation of the mailing‐list development model where every message has to go to everyone. The fact is that the project has no interest in supporting use‐cases outside of its own prescriptive scope. This level of paternalism implies a software community which does not trust its own users to make their own determinations about engineering decisions.

@gaditb @platlas If a number of engineers have made an educated decision that the best move for them is to build Hare for their WSL‐ or macOS‐based UNIX system, why would you stand in the way of them doing that? Unless you hate software engineering?

The response of the Hare team here would be “we are not standing in the way; we are simply not facilitating”, but when an engineer shows up at a community of engineers and says “does anyone know the solution to this engineering problem”, saying “we don’t talk about that engineering problem here” is more than just not facilitating a conversation; it is actively shutting it down

@Lady @platlas Is this a "separate from the community-management aspect of it", or are you seeing a connection here?

(Because like I see this as an ideological issue -- and one that is somewhat counter to other goals they've picked for the project -- but in terms of the community-health itself, I don't think I see a community-health issue with "we are only targeting this use-case and this platform, not others". Like I think you can narrow yourself to that still with a healthy community, that it's separate.)

@Lady @gaditb I'm not sure I follow. On official page there is stated reason why they do not support these platforms and also: "However, Hare is a standardized language and third-parties may build and maintain forks or compatible implementations of Hare targeting these systems." and there is link to third-party port to macos. source: harelang.org/documentation/faq

@Lady @gaditb What do you mean by "engineering decisions"? Supporting macos/windows? Or in general? Like AI etc.?

@platlas @gaditb The difference between computer science and software engineering is that sofware engineering involves compromises. The job of the engineer is to evaluate compromises and make a determination on which ones are most workable for solving a particular problem. If an engineer makes a determination on a compromise, like “I think it would be good to use Hare, but I would need to do it on WSL”, and you reject that determination out of hand, what you are saying is that you don’t respect them as an engineer. You disrespect them as a professional; you are saying you don’t believe in their ability to make their own determinations. That may be warranted in some cases, for example if somebody makes the decision to outsource important aspects of their work to AI. But it should be a judgement of last resort. A healthy community assumes that participants know what they are doing and are qualified to make their own determinations about whether something is a good idea.

@Lady @gaditb Sometimes it is not only about engineering, sometimes people have also morals outside of that. (Like with AI and influence on climate change etc.). Another thing is that they do not hinder anyone on using it on other platforms, just not providing support. Are you suggest that they should provide support there?

@platlas @gaditb what i am suggesting is that they do not trust their users to do that moral calculus on their own. of course there are moral reasons not to want to use Windows, but there are also moral reasons why one might have to use Windows. when i talk about engineering being a discipline of compromises, this includes moral compromises. and i am calling Hare paternalistic because they do not provide a space for people to go “okay, i am aware of the ethical concerns here, but i have evaluated things in the context of my particular situation and this is the lesser of two evils”. instead, they have decided that their analysis must apply to every situation, and you must go outside the community if you encounter a situation where their analysis does not apply. this does not give me confidence that they will be good at tactfully navigating other situations where their analysis‐in‐general does not match specific users analysis‐in‐particular

@Lady @platlas That's assuming that everyone agrees they're doing software engineering, in that way, no?

But you can have a healthy community around doing software hobby-hacking (or whatever like a model rocket club is), or software amateur-art, or software whatever-the-equivalent-of-a-wood-shop-is.

I think your objection is reasonable as an argument that they're not a healthy community of software engineers, but they could be a healthy community of another type (even if they might use words differently).

@gaditb @platlas well, if you are developing a programming language that is not suitable for engineering that is a good thing to know, but my assumption was that they did intend Hare to be useful for engineering, and thus the community of users would include engineers and need to respond appropriately to engineering concerns

@Lady EDIT2:
Back from my other comments more on the community side and off of the technical side, to the code/structure of the project itself,

the full directory of "hare, its sources, and its dependency (an assembler), off of a POSIX base" is <64MB and <2,500 files , including compilation artifacts and my own notes-to-self.

Which -- while I'm sure it will grow with features (I think this doesn't include much crypto? or unicode?) -- feels like a goal that I'm glad to see at least one project floating around having.

@Lady it's much faster than the Tortoise language, but somehow still takes longer to execute.

Sign in to participate in the conversation
📟🐱 GlitchCat

A small, community‐oriented Mastodon‐compatible Fediverse (GlitchSoc) instance managed as a joint venture between the cat and KIBI families.