[HN Gopher] 2022 State of Haskell Survey
       ___________________________________________________________________
        
       2022 State of Haskell Survey
        
       Author : luispauloml
       Score  : 36 points
       Date   : 2022-11-03 15:41 UTC (7 hours ago)
        
 (HTM) web link (haskellweekly.news)
 (TXT) w3m dump (haskellweekly.news)
        
       | doe88 wrote:
       | I'm a relatively newcomer so maybe discard this comment. What
       | hurts me most at this point is the lack of documentation, or at
       | least the lack of simple examples. This is the only language I
       | know where more often than not the main documentation of a module
       | is a link to a journal paper. Alternatively, I'm just not always
       | able to infer what a function does just by looking at its
       | signature. Just give examples.
        
       | gamegoblin wrote:
       | This is maybe a big ask, but could anyone who has been a long
       | time Haskell user give some bullet points on major language
       | developments since ~2015 or so?
       | 
       | I was deep into Haskell and used it as my primary language from
       | 2012-2015, but switched over to Rust around that point. I've been
       | thinking about trying a mid-size hobby project in Haskell to get
       | updated on the new state of the art.
       | 
       | Some things I have heard tangentially (and may be
       | misremembering):
       | 
       | - Field accessors (i.e. `myObject.field` instead of `field
       | myObject`)
       | 
       | - Monad hierarchy refactoring (monad of no return)
       | 
       | - LiquidHaskell making some inroads
       | 
       | How is package management these days? Is cabal hell still a
       | thing? How's the IDE situation?
        
         | rkrzr wrote:
         | > How is package management these days?
         | 
         | We use Stack together with Nix to pin all dependencies. That
         | works very well.
         | 
         | > Is cabal hell still a thing?
         | 
         | No.
         | 
         | > How's the IDE situation?
         | 
         | Much better than it was. Haskell Language Server (HLS) has been
         | a game changer. It works very well and can be used with
         | different editors (easy to install for VS Code for example).
        
         | tikhonj wrote:
         | Cabal's been fundamentally redesigned to have "Nix-style"
         | builds. This has solved most of the problems I remember
         | encountering with the tool. These days, I only have issues when
         | packages have incorrect or incompatible version bounds on
         | dependencies.
         | 
         | Tooling has improved massively in general. ghcup can install
         | and manage versions of Cabal/Stack/GHC/etc automatically. The
         | Haskell language server provides reasonable editor-agnostic IDE
         | functionality; I've been using it for a while now and have
         | found it to be useful and solid.
         | 
         | The language itself has had a bunch of small quality-of-life
         | improvements. The foundation still feels the same--not a major
         | change like jumping to dependent types or something--but lots
         | of rough edges have been sanded off.
         | 
         | I've been using Haskell for over a decade now and I'm very
         | happy with the progress of the language and the ecosystem over
         | the last several years.
        
       | cfiggers wrote:
       | Haskell is a beautiful, elegant language. And the tooling is a
       | trainwreck that keeps me from using it.
        
         | whateveracct wrote:
         | Different strokes. I literally use ghci + plain text editor and
         | are in no way tooling bound no matter the project scale.
         | 
         | I'd say 25% of my Haskelling happens at a computer though.
        
           | nequo wrote:
           | > I'd say 25% of my Haskelling happens at a computer though.
           | 
           | Where do you do the rest of your Haskelling?
        
             | whateveracct wrote:
             | Doing chores, playing music, playing video games, laying
             | about, walking. I also tend to browse random Haddocks and
             | source code on my phone the same way I browse other
             | websites.
             | 
             | It's mostly a subconscious thing. I can't tell you how many
             | times I've had a Haskell problem to solve (highly-abstract
             | and systems programming alike) and I take a couple days off
             | the keyboard and come back and write code that'll last
             | years.
             | 
             | Of course, there's still a time and place to do the whole
             | tight feedback coding loop thing. But it isn't how most of
             | my Haskell comes to be.
        
         | tuukkah wrote:
         | _> And the tooling is a trainwreck that keeps me from using
         | it._
         | 
         | What's the worst part of Haskell tooling in your opinion?
        
       | luispauloml wrote:
       | I really wish I could use Haskell all the time instead of Python
       | and the most dreaded programming language, a.k.a. MATLAB.1 I
       | guess all that's left for me is to do whatever toy projects come
       | to my mind in my free time.
       | 
       | 1 https://survey.stackoverflow.co/2022/#most-loved-dreaded-and...
        
       | nawgz wrote:
       | As a non-Haskeller, the only tool I can think of interacting with
       | that has any Haskell is Hasura's graphql-engine[0], which GitHub
       | stats say is 28% Haskell (and then like 55% web languages, so I
       | assume the backend is all Haskell and the web languages are for
       | the UI it presents etc)
       | 
       | Are there other popular Haskell tools? Or is it more of an
       | academic language? I was surprised to see it on the GitHub repo.
       | 
       | [0]: https://github.com/hasura/graphql-engine
        
         | adius wrote:
         | There are lots of popular, mature, and awesome Haskell
         | projects:
         | https://github.com/search?q=language%3Ahaskell+stars%3A%3E10...
         | 
         | GitHub uses Haskell for all its code analyzation, so you're
         | interacting with it all the time! =>
         | https://github.com/github/semantic
        
         | luispauloml wrote:
         | Thinking about "tools" in a more general sense, I'd mention
         | Pandoc,1 which is an end-user application, and PureScirpt,2 a
         | programming language.
         | 
         | 1 https://pandoc.org
         | 
         | 2 https://www.purescript.org
        
       | weatherlight wrote:
       | I hope tooling becomes the #1 priority. - after using languages
       | like Rust and Elixir, It's hard going back to other langs where
       | the tooling is not at that standard,
        
         | tuukkah wrote:
         | In your opinion, where are the biggest differences between Rust
         | and Haskell tooling quality?
        
           | jfoutz wrote:
           | not the op. I'm a hobbyist.
           | 
           | I've figured out stack and it's pretty great.
           | 
           | My editing cycle is pretty terrible. usually vim in one
           | terminal and another terminal to run ghci or stack build.
           | That's ok, it lets me work through my toy problems.
           | 
           | But compared to IntelliJ or even coq and proof-general, it's
           | a lot rougher to loop through type in new code, run it, fix
           | or next batch of new code.
           | 
           | obviously developers are going to use whatever they want, but
           | it would be really nice to see a setup with _anything_ emacs,
           | visual studio, atom whatever. and show how to get to that
           | setup, and how to quickly test, analyze performance,
           | refactor.
           | 
           | Refactoring is Haskell's super-power. I change things and
           | chase compiler errors, and it works well enough. Compared to
           | even java/eclipse 15 years ago it feels primitive. it works,
           | I can get by. I'd like to see how "grown ups" do it.
        
             | tikhonj wrote:
             | Have you tried the Haskell language server? I don't think
             | it has project-wide automatic refactoring--maybe that's
             | something people are working on, but also seems quite
             | difficult--but it definitely tightens the write/compile/fix
             | loop.
        
               | jfoutz wrote:
               | I think I did, I think I spent some time puttering around
               | trying to get a setup to match my config.
               | 
               | I would suggest, a clear path in a getting started guide
               | - if you use this editor and these tools, you will have a
               | working system end to end. maybe a short video showing
               | interaction with that specific toolset.
               | 
               | I got sort of mired in what packages to use for emacs. I
               | don't really know how other people have their stuff set
               | up. Not having a clear path, I just kinda winged it. And
               | was not successful.
               | 
               | I understand all the parts of my current workflow.
               | 
               | There's nothing wrong with presenting 500 options for
               | solutions. But it would be really nice to have a "do
               | these 5 things and you're good to go". Any set of tools
               | would be fine. I can compare a working system to my
               | system and puzzle out what I need to configure.
               | 
               | That may already exist, and I missed it. If that's the
               | case, make that guide more prominent. I seem to recall
               | looking around a lot.
        
               | tikhonj wrote:
               | Yeah, definitely. We're working on adding a guide[1] like
               | that to haskell.org as we speak :)
               | 
               | If you have a chance, you could look over the PR and tell
               | me whether this is roughly what you're thinking of.
               | 
               | [1]: https://github.com/haskell-
               | infra/www.haskell.org/pull/214
        
               | jfoutz wrote:
               | ### Editor *Visual Studio Code* is a popular choice with
               | well supported editor integration. Install the [Haskell e
               | xtension](https://marketplace.visualstudio.com/items?item
               | Name=haskell....) and you are all set. It should work out
               | of the box and use your installation of HLS.
               | 
               | lgtm
        
           | weatherlight wrote:
           | For one, cargo just works. The same with hex and mix.
           | https://github.com/hexpm
           | 
           | I'm using a mac m1 I cannot get stack and the Haskell
           | language server to play nice for VSCode.
           | 
           | I'm also not a huge fan of YAML in general for configuration.
           | Rust uses Toml, Elixir literally just uses elixir itself for
           | configuration.
        
       | carterschonwald wrote:
       | There's a bunch of issues with how these surveys have been
       | designed in the past, imo, and generally solicitating easily
       | interpretable qualitative responses on technical systems is just
       | hard.
        
       ___________________________________________________________________
       (page generated 2022-11-03 23:03 UTC)