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?
@raichoo Not as many as, say, python.
@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.
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:
@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: https://www.youtube.com/watch?v=DM2hEBwEWPc. 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!).
@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 ...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.
To be fair the tune you are playing is also the tune I've heard from almost anyone that is the fan boy of any specific language, how their language is the good one because it reduces bugs or anything else.
No suprise these people also used their favorite language for "decades" and claim that as expiernce as to why it must be true.
I usually just read it as confirmation bias myself.
The truth is there are certain languages better suited for some tasks than others. Yes they reduce certain classes of bugs, they increase certain classes of other bugs. This doesnt make them equal it just means they are suited in cases where those classes of bugs are of more concern.
What I find almost entierly unhelpful in any discussion about languages is the one guy who is the expert on a language and puts it at the top of his fan list trying to tell everyone how his language of choice is universally superior. IT is completely blind to the nuance and plays entierly to personal biases.
But I agree, to each their own. You code what you have fun doing, as you should. ITs only when you claim your choice universally superior that it looses credibility in my eyes.
Haskell is a great language, lots to love about it. I find it fun as a langauge. I simply dont see it as functionally or universally superior to anything else (though perhaps superior in specific use cases). Even PL as a whole is not superior to non-PL overall.
There are many classes of languages, they all shine under certain circumstances. Some shine a bit more often than others overall.
@freemo @byron I don't think Haskell is the end of the line. It's currently the language that approximates my idea of a good PL for most of the stuff I do in my day job. I've seen systems using dependent types and I would very much like to have something like that, but sadly this is still research and not suitable for every day usage. Haskell is just a tool that helps me at expressing concepts I would otherwise be unable to write down. ML also seems to be pretty neat, but I can't speak for it.