Hacker News new | past | comments | ask | show | jobs | submit login
Using Git-annex for Data Archiving (complete.org)
69 points by jandeboevrie on June 18, 2023 | hide | past | favorite | 13 comments



I saw a talk at linux.conf.au about a decade ago by the then-main (only?) Git Annex developer. He was living way out in the styx with no internet connection and surviving off community contributions.

It seemed like the choice of Haskell, while novel and interesting, made the barrier to entry quite high even for this talented and experienced developer. All power to him, but it’s a peculiar choice for essentially a piece of plumbing software. I shudder to think what this means for casual contributors.

I’m on board with functional programming and Haskell is very interesting, but I’ve still never understood the decision.


hah if you consider yourself "talented" or "experience" and can't contribute to a project you want to contribute to just because it's Haskell, you might have misevaluated yourself on those axes [1]

i never knew git annex was Haskell actually! maybe this is a marketing failure. I'd love to contribute. Haskell projects are trivial to contribute to compared to all other languages (speaking as a Haskeller)

> I’m on board with functional programming and Haskell is very interesting, but I’ve still never understood the decision.

I see this take often with HNers. Have you considered that the author just likes a Haskell? That it's fun? And that without it, they wouldn't have bothered spending the time on the project period?

[1] I learned enough Haskell to contribute to your average codebase as an undergrad at a state school who never learned a higher level language than C in school. Neither talent nor experience are needed. But maybe they're detriments given the interplay with ego.


> speaking as a Haskeller

Perhaps that's what makes it harder for you to put yourself in other people's shoes.

Having to learn a new language/stack/... for a contribution (especially a "casual" contribution) objectively raises the barrier to entry.

That's not the same as to say "I can't do it because it's too hard". That's more like "I have better uses of my time and I choose to contribute to something else". The net effect of many many people doing this little choice over time is that projects use too unfamiliar stacks will receive less contributions.

On the other hand, the contributions they will get will be made by people who truly care and possibly that will mean the contributions will be higher quality.


Put yourself in an author's shoes. git annex doesn't exist in the world - but you have the idea for it. Haskell is your strongest language, and honestly you don't really like programming in other languages. So you write it in Haskell and it works and becomes a somewhat popular piece of plumbing.

For projects I write at least, I'm that author. My projects wouldn't even exist if I didn't use Haskell. So thinking about optimizing for long tail contributions by anonymous users is illogical on the face of it.

It sounds to me you wouldn't think any open source project should be written in Haskell for these reasons. That seems silly to me.

Also - I've contributed, debugged, etc projects in many languages I barely know. It's not that hard if you're actually talented and experienced. I actually fixed a bug in a small, single-author Haskell library for my first ever project. I hadn't even finished LYAH let alone fully understand what I had read. So when a supposedly "very experienced" software engineer "cannot learn Haskell" enough to make small changes, I raise my eyebrow. You can't do better than 21 year old me with 0 professional experience and 0 formal FP education?


I didn't claim that you shouldn't use whatever language you want to write your software. By all means use whatever you like most for whatever reason.

On the other hand, I don't think we should be framing other people as "lazy" or "non senior enough" or whatever just because they make a different choice in how to spend their time.

After all time spent in something has an opportunity cost and people make different choices.

I'm saying that as a language nerd who learned most of mainstream and not so mainstream languages out there just of the sheer joy of doing it. I do understand there are people out there that are not like me and that doesn't mean I'm better than them, just different


I am really interested in Haskell, and I’ve written a good amount of it. I don’t blame someone for writing the software they want in any language they want.

> hah if you consider yourself "talented" or "experience" and can't contribute to a project you want to contribute to just because it's Haskell, you might have misevaluated yourself on those axes

But the way some members of the Haskell community talks down to people is so off-putting. It is the main reason I stopped using it.


I think the footnote you elided sums up my opinions here. I wasn't the one who brought up "talent" or "experience" - that was a direct response to the top-level comment.

The footnote makes it clear neither are necessary. And that saying "even 'talented' and 'experienced'" folks couldn't from Haskell isn't a slight against the language choice but rather the aforementioned folks.


> saying "even 'talented' and 'experienced'" folks couldn't from Haskell isn't a slight against the language choice but rather the aforementioned folks.

I don’t think that pointing out that esoteric language choice can make ”the barrier to entry quite“ high for participating in development is controversial.

I try not to turn discussions about language choice into slights against people. People are different, and learn things differently. If you cannot empathize with casual contributors finding it more difficult, or not worth it, to contribute to unfamiliar languages in unfamiliar paradigms, I can’t help you.

For what it’s worth, I agree with your response to:

> I’m on board with functional programming and Haskell is very interesting, but I’ve still never understood the decision.

A person’s fun and enjoyment at development has to be a key component to engaging in an activity. That’s why I stopped engaging with Haskell - the community’s attitude and conversational tone frequently involved talking down to people. More than many other language communities I’ve experienced. It’s not all Haskell devs; probably not a majority. But it’s not fun to be insulted when trying to add a sentence of context to a comment.

It leads me to feel defensive in an unproductive way.


> hah if you consider yourself "talented" or "experience" and can't contribute to a project you want to contribute to just because it's Haskell, you might have misevaluated yourself on those axes

I was describing the Git Annex lead developer as talented and experienced, not myself.


Some people just do not do Haskell (Lisp, Perl, C....). They tried, they failed. Sometimes they failed several times over couple of decades.

Contributions can have several forms, not just Pull Request on github!


https://git-annex.branchable.com/design/assistant/blog/day_7...

"Now finished building a special configurator for rsync.net. While this is just a rsync remote to git-annex, there are some tricky bits to setting up the ssh key using rsync.net's restricted shell. The configurator automates that nicely."


Internet Archive (IABAK) offer this as well.

https://wiki.archiveteam.org/index.php/INTERNETARCHIVE.BAK/g...


I love git annex so much. Solves all of the difficult parts of data archival for me (but boy, what a learning curve, even if decent at git). Joey Hess is a legend for building it.




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

Search: