I really want to code more open-source Haskell but i just cant justify the lack in contribution that would result in....

@freemo You mean that people would not contribute to it because it is written in Haskell?

@freemo Potential contributors? Maybe. Actual contributors. Maybe not so much. People rarely help with small to medium projects. Most feedback you usually get is that you are not using the right language, license, version control, you name it. But even if you change those aspects, the people who have initially complained about that won't contribute anything. I'd say, use what's best for you to realize the project. You will remain the sole maintainer for the majority of its existence anyway.

@raichoo I run a lot of different open-source projects across several different languages. I find that language choice is a huge factor in the actua number of contributors you get on an active and useful project.

@freemo It's just my take on it, not trying to convince you of anything. It's just the way I tend to role with things. YMMV and that's totally fair.

@raichoo In terms of enjoying what your coding, I agree, do what is fun.

Thats the thing, you are going to pick what languages you find fun, most people would, most people SHOULD. But thats also why if I want a piece of software to be successful I will have better luck picking a popular language.

Whenever I want to write a project in haskell I quickly look at other projects like xmonad and how simply choosing haskell for the most part has lead to it getting very little attention compared to things like i3

@freemo Attention can be a driving factor. I personally don't see the merit in it though. I want to create the best outcome possible for me and the people who end up using my code. If it gains a larger audience that's fine. If it happens to be a handful of people, that's also fine. I don't consider "user base" or whatever an interesting metric to go by. I use some rather obscure tools, but I use them because they are exceptionally good, not because they are popular.

@raichoo Depends what your building. In my case I am building a decentralized P2P system that, like all such systems, has its success determined by how many people use it. So in this case getting attention is of critical importance really.

@freemo Like I said. Different needs, different drives. For something like that I'd probably use Haskell because of the robustness it delivers. Been using it for rather critical stuff for a couple of projects in my day-job. But if you have your reasons not to use it, why ponder the idea?

@raichoo I like haskell because its fun. But it cant really do anything better or worse than any other language. In fact since it isnt as popular if anything it works to my disadvantage due to having fewer libraries to pick from.

I would happily pick a language just for enjoyment to use it alone if i could get away with it (and on many projects I can). But sadly in this case practical needs outweigh my personal enjoyment.

@freemo In that regard I disagree. Anyway, it's your project. I'm not here to convince you of anything.

@raichoo @freemo It seems to me that the most important aspect of choosing a language for a project is how it affects your own programming speed and effectiveness, of which happiness is a part.

Unless you're starting out with a team (or using a super unpopular lang), the real way you get help is by writing something people get excited about.

For small languages, you *also* have aficionados running around looking for a cool project to join *just* for that language, so it goes both ways.

@byron

That is true, if im having fun im more motivated and that should be factored in for sure. Next time im working on a project that isnt so dependent on contribution i will likely take a stab at Haskell. Until now I've just done toy snippets like this:

anaconda.org/freemo/multibimap

@raichoo

@freemo @byron If you want to find out what languages like Haskell and ML can do better than other languages, I really want to recommend this talk to you: youtube.com/watch?v=DM2hEBwEWP. Even though it's about ML it applies to all languages that have algebraic data types, something that is missing in most popular languages. The rabbit hole is far and wide. I don't want to appear condescending, this is stuff that most people don't realize when they just toy around with the language (which is cool!).

@raichoo

I'll check it out, though algebraic types are nothing new to me. Keep in mind i never said there wasnt anything unique about Haskell, only that it didnt produce better applications in any sense.

@byron

@freemo @byron Certainly depends on what you mean by "better". Haskell just gives you tools to prevent certain common classes of errors. Tools which other languages simply lack and cannot emulate. Algebraic data types are also really just a piece of the puzzle. Things like data kind promotion also open up whole new possibilities, akin to dependent types. Being able to write code that eradicates certain classes of bugs yields "better" applications in terms of robustness. At least for me.

@raichoo @freemo I'm definitely in the camp of "I've only toyed with Haskell and it was a while ago" but I was sold on the power of what it brings to the table.

In terms of what makes an app "better"... removing classes of bugs is obviously an advantage.

@raichoo @freemo ...BUT still, in most cases the first order differentiator between apps is whether you wrote it at all, or not.

Sounds simple but realistically the biggest hurdle tends to be "did I finish it in a meaningful way?"

So it can be about picking the language you enjoy using the most.

Of course it depends on use case too, and in a real sense languages aren't just syntax but libraries, tools and even supported platforms too.

As @freemo says, removing bug classes often adds others.

@byron @freemo "Removing some bugs often add others" to me pretty much sounds like a false dichotomy. It's not the experience I've had and I've been working with Haskell for about 10 years now. It's an argument I hear quite often though, as if there was some unspoken law of nature that magically spawns bugs to keep balance between programming languages. Seems to be a variation of "Turing's Tarpit". I don't think it's helpful at all, but again, it's your call.

@byron @freemo I basically think that one should use the PL one is most familiar with. That also includes ecosystem and tooling. However, not all PLs are created equal. I'm not using BASIC anymore, and for good reason. There is a whole branch of science dedicated to PLs and Haskell and ML draw from that. Are these languages suited for everything? I don't think so, but most of what we do these days would benefit from them.

Follow

@raichoo @byron

Well I wouldnt argue that point. Your going to be most effective in a language if it happens to be the language you have significantly more expiernce with. But that is also the result of selection bias and historic usage.

I generally find, as a professional of 3 decades in the CS field, that it only takes me a few months to become an expert in any one language. Over the course of a career it is trivial to become a complete expert in many dozens of languages if you invest the time into learning and applying them. At that point there isnt just one language that you are most expiernced with, you are an expert in many, so it is no longer the limiting factor.

@freemo @raichoo I agree learning new languages isn't a huge barrier.

When I was in CS, it was pretty normal to have brand new languages in each course, where the language wasn't the *topic*, just something we were supposed to learn on the side while doing course work.

I've even found I usually learned languages best by starting with a project and then learning the language people said was good for it. Way back I first learned Perl just to write a text processing script for a friend.

@freemo @raichoo Still it can be a barrier, the difference between:

"I'll tinker with four new languages I've heard good things about for the next 3 months making toy programs in my spare time"

vs

"I'll just sit down right now and start this new app."

It's tricky because every language exists for a reason and has its advocates. It's hard to know what you'll *actually* like using and find effective until you've written real programs in it.

And it's still about what *you* work best in.

@byron

Well yea, surely if you only know one or two languages there is a barrier if you want to pick one you never learned. But I think most well expiernced coders already should know dozens of languages at expert level. At that point its all about selecting the tool that will get the job done.

@raichoo

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.