[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)