I found Haskell to be one of those languages I wanted to learn/play with, but found that I couldn't get it working 'out of the box'. IIRC, with Haskell, I struggled with compatibility across versions of GHC and getting a Repl to work in Vim. After a few hours of fighting with it, I moved onto other things. I think language designers underestimate how important it is to make things work immediately with good tooling. I had a play with Rust the other day; what a breath of fresh air. So trivial to get working. If Haskell is the FoC, then someone should make a nice IDE for it 😉
@Chris Maughan when did you have your Haskell unboxing struggle? It did get a bit better somewhere along the line, but for all I know, running Haskell has gotten worse. (I guess I learned Haskell about a decade ago. And probably spent more than a year reading functional programming papers before writing Haskell with the intent to run.)
06/30/2020, 7:38 AM
It was about a year ago I think. I had a look around this morning at the latest; there are still quite a few steps, but I may give it a go, because I am genuinely interested in playing with the language.
So, for fun this morning, I followed the install instructions.
• Use chocolatey to install haskell, from the windows instructions.
• Install Stack using the 64 bit windows install.
• Stack new, stack setup.
The above dialog shows what I got.
At this point I walk away. And the beginner users, the ones not familiar with figuring stuff like this out, and all the casual interest users walk away.
I do recall something similar last time, before I got to the joys of installing repl and vim support.
06/30/2020, 11:54 AM
@Chris Maughan it seems that this is a ghc bug, as described here: https://gitlab.haskell.org/ghc/ghc/-/issues/17926 .
Reading through the issue discussion, I see it is mentioned that Windows support is not the top priority, quote: "we have finite resources and few people interested in either maintaining Windows support or sponsoring such work".
So I believe this supports your claim that the experience with Haskell on Windows is currently not in the best shape.However, speaking as relatively new Haskell user on Linux, I can say I had pretty nice experience with it! I had no problems installing it, and at first, just running singular files via ghci and playing with Haskell was really smooth experience for me and it took me a long way in learning Haskell. I did not yet bother installing Stack at this point.Later, when I wanted to do a proper project, Stack took care of the whole build process in a really nice way without requiring me to know much (although I did end up reading the whole documentation, so I wonder if maybe it was harder to get started with it than I remember).I did have some struggles setting up IDE in Emacs, but I found ghcid to be amazing, very easy to use option, and Haskell professionals recommended it as their tool of choice. Finally, after some time, I managed to set up Dante which now works ok, and I am currently looking forward to https://github.com/haskell/haskell-language-server .
I believe Vim has less options than Emacs currently, but don't take me for my word.
06/30/2020, 12:09 PM
Thanks @Martin Your story gels with what I see a lot as a windows user. I make cross platform tools too, so I can see how the platform of choice is going to get priority. It is always frustrating when a) a community doesn't care enough about it, or b) they expect you to 'fix' it to be able to use it.
At the beginning of this thread I was really just pointing out how important this stuff is to get right. Does this mean that the Windows user base for Haskell is much reduced, because all those students that wanted to try it fell at the first hurdle and just installed Rust (or whatever) instead? I believe it does. Your comment about struggles setting up the IDE is another thing. Suppose I'm a user who is used to intellisense from my C#, a great debugger, and an IDE that almost writes the code for me as I type. Then drop me into Haskell land - that's a real uphill struggle. I really have to want to learn it. It just doesn't suck me in, because the first hurdle is bigger than I'm willing to jump....
I'd love to see a study of 'user numbers' vs 'ease of install'. Or a question like 'what was your first experience in language X like'?
06/30/2020, 1:21 PM
@Chris Maughan I in general agree that Haskell is not as accessible as some other languages out there. But, I don't think that community does not care, and I am sure they don't expect you to fix smth like this 🙂, I believe it is just that Haskell is not as mainstream as some other languages, which means there are less contributors, and stuff needs to get prioritized. C# on the other hand is much more widespread, and is supported by Microsoft.
And as I mentioned, there is a way to get started with haskell really easily, and that is via ghci! That is how I started when I took Haskell lessons in university, and I remember there were other students doing it on Windows, I wonder how hard was it for them.
Btw, from what I have seen so far, I believe Haskell community is aware of problems and wants to solve them, there is often discussion about how can Haskell be made more accessible, since that is important for the whole ecosystem. So it could be valuable for them if you shared your feedback! I usually interact with community on r/haskell .
06/30/2020, 1:35 PM
I'm not trying to be deliberately antagonistic, I hope that's clear 🙂 I'm not interested enough to start sending feedback, interacting with the community. Maybe I might have been after a week of using the language. But they lost me at 'Exception' on a clean install, after I gave my time for the second time to try to play with it.... That's what interests me. I'm a capable guy, I could work around it, figure it out.
If the haskell community of (thousands?) wants to fix it, then why haven't they? I'm pretty sure this issue is a year old at least. If this was my software project, and the install experience was broken, I would stop everything else until it was fixed. Because every lost user is potentially a huge cost - that user might have gone on to create massive amounts of content or buzz around the product....
To give a more productive example, I recently worked on Sonic Pi. Along with adding visualizers and other code fixes, I reworked the build system to use CMake. I removed some old projects, some manual build steps, even rewrote some code to remove the need for a big/complicated library. Eventually I got the build down from 20 or so steps that often didn't work down to 3 simple script commands to build the project and a windows installer - along with CI that builds the install binary on every submit.
IMHO, on Windows, it was extremely difficult to build a working binary. You had to really know your stuff to build the Ruby bits and the C++ bits, etc. and get a working binary. Effectively, on Windows, I doubt that many developers who might have contributed to that excellent project would have got far enough to get a working executable.
This is the other side of the coin. If you can't build it, you can't improve it.
Which is just to say, I'm not shouting about stuff without doing things about it 😉
06/30/2020, 3:10 PM
@Chris Maughan sure, I didn't perceive your feedback as negative! I get that you are playing the role of user/dev who wants to try smth and if things are not smooth, moves on, which is important perspective to take, because it reflects adoption of the developer tool/language, and I do think you have a good point regarding Haskell, I just wanted to provide details on my experience.
I don’t see how anyone can think that Haskell represents the future of computer software. It is a language designed in academia that has no drawing or event handling primitives. It doesn’t have any direct language support for sound, bitmaps Animation or timing. It doesn’t have any provision for the Internet in the language itself. It’s basically a console language like Lisp or python. and what is futuristic about rendering on the server side that takes you back to PHP. It is a physical fact that per user the server has much less computer power than the client now. Samsung’s latest phone has 12 GB of RAM which is way more than the average laptop. So why push computation to the server where you have less computer power? I have no doubt that there are many applicationsWhere server side is more convenient and the right architectural decision. But that doesn’t mean it covers the majority of cases. And working with HTML and CSS is awful. CSS Is one of the poorest Designed graphical models in the history of the universe. Incredibly sensitive to tiny mistakes, your entire page can be scrambled with the missing tag. Fragile, baffling, annoying are the three most common words that come to my mind when I think of CSS.