Live data from Hacker News

State of the Haskell Ecosystem – February 2016

haskellforall.com

41–50 of 67 posts

Re: State of the Haskell Ecosystem – February 2016

#41

This might be a good place to ask this: if one decides to go deep into Haskell, is it a good gamble? What does the job market look like for Haskell developers?

Speaking as the co-author of the Haskell book mentioned in the post and somebody that has used Haskell 9-5 for a couple years - you'll have more luck getting permission to trial Haskell internally than you will competing with other Haskellers for the jobs that are out there.

I recommend getting comfortable with the sorts of libraries you'd use at work before trialing to avoid what fizbin mentioned elsewhere in the thread.

tl;dr create, don't take, a Haskell job

Re: State of the Haskell Ecosystem – February 2016

#42
post #2

Can someone explain to me why Haskell will ever be viable as a fullstack language? I have done a few toy projects in Haskell, and it has taught me some great functional programming concepts that I now apply to other languages. But, purely functional programming seems to work 90% the time, but the other 10% is so negative it invalidates the rest. Edit for clarification: Full Stack would be app server up. So runs a ser…

I use Haskell exclusively on my SaaS app ( http://sostenoto.com ). The backend not only provides a simple REST API, but it also provides WebRTC signaling and a real-time graphical communications and presence protocol. Haskell makes it so easy to write correct concurrent code it's not even funny. GHC's magnificent IO manager means I can handle 1000s of connections on one amazon instance. Can't understand why you would…

Is there Haskell involved in the WebRTC code or is pretty much all JavaScript?

Re: State of the Haskell Ecosystem – February 2016

#43
A great comparison to the above article is this post by Stephen Diehl, "Reflecting on Haskell in 2015". [0] A great read and an interesting pointer on the state of Haskell / Javascript (Elm, Purescript). Also, work your way through "Write you a Haskell", [1] well worth the effort.

Going through the post, this looks like a comprehensive book. Read the rationale behind, 'how to learn Haskell' from author. [2]

[0] "Reflecting on Haskell in 2015" http://www.stephendiehl.com/posts/haskell_2016.html

[1] "Building a modern functional compiler from first principles." http://dev.stephendiehl.com/fun/index.html

[2] "Why we don't chuck our readers into web apps" http://bitemyapp.com/posts/2015-08-23-why-we-dont-chuck-read...

Re: State of the Haskell Ecosystem – February 2016

#44
post #2

Can someone explain to me why Haskell will ever be viable as a fullstack language? I have done a few toy projects in Haskell, and it has taught me some great functional programming concepts that I now apply to other languages. But, purely functional programming seems to work 90% the time, but the other 10% is so negative it invalidates the rest. Edit for clarification: Full Stack would be app server up. So runs a ser…

"Can someone explain to me why Haskell will ever be viable as a fullstack language?"

Aside from the solid compiler ghc and many libraries, the ability to write less, more reliable software. That's the objective isn't it?

Another reason is the increasing number of usable languages written in Haskell. Using say Purescript, elm or other front-end languages, it may be as important as knowing Haskell as know C is for Python, for example.

Re: State of the Haskell Ecosystem – February 2016

#45

I think that I own 7 Haskell books, and there are good parts in all of them. A few of them are great. Why all the love and strong recommendation for a new unpublished book? I use Emacs, IntelliJ, and TextMate for Haskell. I love all three. I thought the best part of this article was the coverage of libraries because I find myself to be uncertain of selecting the most appropriate ones. I use a small subset of Haskell…

Hi, I'm a co-author of the book mentioned. Unpublished might be a bit uncharitable, the current version of the book is 26 chapters and over one thousand pages. As for why? We make certain you actually learn everything you need to know and we _aggressively_ test and review the material with actual learners. My co-author Julie's first programming language is Haskell, which she has learned from me and while writing the…

OK, I read "early access" and thought "unpublished".

I stand by my minor complaint that the article was deep in praise for your book and I thought minimized the impact of the many fine existing books on Haskell.

Good luck with your book. I like your enthusiasm.

Re: State of the Haskell Ecosystem – February 2016

#46
post #30
post #25

I've tried many times to learn Haskell. The problem is always with setting up a compiler, getting packages, setting environment, not getting a ton of gigabytes of duplicated packages, getting useful vim support etc.

Have you tried stack? It was released about six months ago and has revolutionised Haskell's offering in this area.

>not getting a ton of gigabytes of duplicated packages

How does stack help here?

Re: State of the Haskell Ecosystem – February 2016

#47
I am a beginner Haskeller maybe just crossing the border into "intermediate."

What has been most frustrating for me is not really the quality or availability of books or learning materials. Instead, it has been hard to deal with the variability in the opinions of veteran Haskellers as to what it even means to be a beginner.

For example, in one job interview I had, the people interviewing me (several of whom had used Haskell for 10+ years) were very impressed by simple things -- using ADTs to model a take-home programming problem; knowing about tail-call elimination and how it impacts folds and when to write something with a helper function; basics of type classes; and fluency with Monads perhaps just slightly beyond what is discussed in LYAH.

In another interview, someone right off the bat asked me to explain Arrows in great detail. I admitted I didn't know anything about Arrows except that they were in some sense a generalization of the "context" view of Monads.

Another interviewer once asked me frightening questions about Template Haskell and using it for SQL queries (e.g. HASQL).

Yet another asked me "design" questions about multi-parameter type classes and multi-parameter ADTs. I could point out examples of the latter, like Either, and I could name-drop the idea of Phantom Types because I heard it once in a Haskell lecture, but I tried to communicate to them that I didn't have any real command over these things in a real-life situation.

It's frustrating on one hand because it makes it seem like there is no path, of any kind, from beginner to intermediate. It's like a Heaviside functions or something. You are just a beginner until one day you're suddenly not.

It's kind of like playing Marco Polo in a swimming pool too. One person's yelling from that corner about Arrows. Someone else is yelling about multi-parameter type class design patterns. Someone else thinks you should know Template Haskell.

There's seriously no way to prioritize studying those things. If you want to go an learn Arrows, especially if you're in a geographically isolated area like I am (hence no ability to attend meetups) and you don't already have a job providing the crucible of real work to drive learning, then you'll just flounder for weeks or months with Wikibooks entries on Arrows, etc. Then somebody stops you and says you're not good enough because you don't know multi-parameter type class patterns and so now you stop and pivot to that. Maybe whack-a-mole is a better analogy than Marco Polo.

Of course there will always be some corners of an ecosystem that are obscure. But the problem with Haskell is that it seems like everything is obscure and everything pulls you in an entirely different direction, and you don't understand how they are related until long after you've mastered them at an intermediate proficiency.

What I'd really like to see is more of a community consensus about what it means to be "beginner" or "intermediate" or "advanced".

Maybe then people who are putting up job ads for relatively junior positions or positions where they pay clearly means it's junior will at least have some community guidance for the sort of out-of-the-box recitational knowledge to expect?

Re: State of the Haskell Ecosystem – February 2016

#48
post #42

Earlier quoted context omitted.

I use Haskell exclusively on my SaaS app ( http://sostenoto.com ). The backend not only provides a simple REST API, but it also provides WebRTC signaling and a real-time graphical communications and presence protocol. Haskell makes it so easy to write correct concurrent code it's not even funny. GHC's magnificent IO manager means I can handle 1000s of connections on one amazon instance. Can't understand why you would…

Is there Haskell involved in the WebRTC code or is pretty much all JavaScript?

The Haskell server provides the WebRTC signaling, which is the only part of WebRTC that is not handled by the in-browser APIs. Basically before a peer-to-peer connection can be established, you have to provide some way of sending messages between the two users.

Re: State of the Haskell Ecosystem – February 2016

#49

Earlier quoted context omitted.

I use Haskell exclusively on my SaaS app ( http://sostenoto.com ). The backend not only provides a simple REST API, but it also provides WebRTC signaling and a real-time graphical communications and presence protocol. Haskell makes it so easy to write correct concurrent code it's not even funny. GHC's magnificent IO manager means I can handle 1000s of connections on one amazon instance. Can't understand why you would…

> Can't understand why you wouldn't be using Haskell for server-side web development. I can't tell whether that's just a rhetorical flourish, so I'll answer straight. To begin with, there are a couple of concerns that might kill an attempt to use Haskell. 1. I might not be able to get management approval. Haskell is an obscure language with a reputation for difficulty. The bosses might well say no. 2. I might need to…

It's hyperbole, but if you were in the decision seat (which the person in your hypothetical is not), I think it's best to stick with a powerful language to ease development. Not trying to incite a flame war, but I have to agree with Paul Graham on this one.

Re: State of the Haskell Ecosystem – February 2016

#50
The author of the book mentioned has a post called: "Why we don't chuck readers into web apps"[0] that is...not encouraging.

"....Understanding algebraic datatypes requires understanding products and sums. Understanding products and sums requires understanding addition, multiplication, types, cardinality, type constructors, and data constructors...."

By the time I reach cardinality I wonder if maybe the author is more interested in making things sound intimidating than helping? Or will readers be quizzed on the Continuum hypothesis?

"Why can’t I learn Haskell the way I learned $BOZOLANG?"

...I hope the book itself won't take this tone. The community doesn't need it.

[0] http://bitemyapp.com/posts/2015-08-23-why-we-dont-chuck-read...

Post reply on HN