Live data from Hacker News

State of the Haskell Ecosystem – February 2016

haskellforall.com

51–60 of 67 posts

Re: State of the Haskell Ecosystem – February 2016

#51
post #33
post #20

Earlier quoted context omitted.

I'm guessing the poster included being able to do front-end work in Haskell. elm and purescript might be plausible front-end languages, but ghcjs isn't really there yet.

Picking any compile-to-JS language (not counting ES6/7) is a risky proposition though. There are a lot of people regretting their five year-old "legacy" coffeescript applications today. GHCJS is improving at an astonishing rate, but at this point I still wouldn't use any compile-to-JS language for a serious production application. There's too high of a risk of building something that becomes unreasonably expensive to…

While I use ghcjs for one of my projects, have been a big user of Emscripten in the past, and recently switched from a CoffeeScript project to a TypeScript project at work, I understand what you're saying, but I think it's an overstatement.

Compiling to JavaScript is totally okay if the new language 1) adds something meaningful (like a type system [TypeScript, js_of_ocaml] or the ability to conveniently deal with unboxed data [LLJS, Emscripten]) and 2) does not have a significant runtime overhead. GHCJS, in particular, adds a _huge_ amount of runtime overhead, largely because JavaScript doesn't (yet) support tail calls so the CPS transform must be trampolined. In addition, laziness doesn't make a lot of sense for frontend code, which generally should be as tight as possible. Also, look at the code produced by ScalaJS sometime and weep. :D

js_of_ocaml, on the other hand, produces extremely tight code, and is very suitable for building web frontends. Of course, OCaml probably has a similar learning curve as Haskell. I can't imagine people would get excited about the syntax.

TypeScript is a sweet spot: it's got some value over straight up ES6, but it's easy to integrate and has a very short learning curve.

Re: State of the Haskell Ecosystem – February 2016

#52
post #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…

Just like Haskell, people learn CS by lazy evaluation. Racking up bullet points is not how people should be hiring.

They should be able to train you to do what they expect you to do.

Re: State of the Haskell Ecosystem – February 2016

#53

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 mor…

>By the time I reach cardinality I wonder if maybe the author is more interested in making things sound intimidating than helping?

I'm overstating my case in that post, but underestimating how hard this currently is doesn't change that there are things you'd want to understand before diving into a Haskell web application. Part of this is on the framework designers, it's mostly/only Scotty that has made any attempt not to incorporate concepts that would be difficult for beginners and it's more "hiding" than "not using".

You don't need 100% grokhood all along the way, but the current status quo is that people frequently flounder and burn out because the resources they _did_ use didn't explain things usefully or cover enough. This is not conjecture, this from a _lot_ of time spent working with people hands on via IRC and Skype and curating a popular guide: https://github.com/bitemyapp/learnhaskell

>"Why can’t I learn Haskell the way I learned $BOZOLANG?" >...I hope the book itself won't encourage the stereotypes about Haskell the way this post does.

The stereotype that I grew up reading c2 wiki and hacker lore? I've spent most of my career so far writing C#, VB.NET, and Python. I don't even really mind a bit of Python here and there, but I don't have much cause to resort to it any more except for Ansible.

As it stands, our readers have been taking breaks from the book to successfully work on side projects starting at about chapter 9 through chapter 26. Different people find there are different spots in the book where they can step away and get things done. The point is that the rest of it is always there if they need it. Education-by-blog-diaspora has not been terribly successful for many Haskell beginners up to this point. Partly because there aren't enough people for there to be enough angles on something that beginners can reliably find something that "clicks" for them. Another problem is that you want exercises to thoroughly understand a different way of thinking about and putting together programs.

In the end, it feels little different in my head than when I'm writing in something imperative, but the experience is more difficult than it needed to be for beginners for a long time. The book is me "scaling up" my ability to help people. Like it or don't, whatever, but please don't try to make a blog post I wrote into something it isn't so you can try to take me down ad hominem.

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

You can find out what the tone of the book is by checking out the sample provided on the book's website. No need to speculate. As it is, the tone is light but to the point. Readers have enjoyed the dry humor which is not at all like how I write on my blog. Which people have liked too. You should spend less time on HN commenting on things you don't like.

I have writing to do. Goodnight.

Re: State of the Haskell Ecosystem – February 2016

#54
post #46
post #30

Earlier quoted context omitted.

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?

You build against a fixed set of packages defined by "Stackage" so that you only need to build them all once. While this set evolves over time, if many (or all?) of your projects target the same Stackage LTS then you won't need to rebuild dependencies.

Re: State of the Haskell Ecosystem – February 2016

#55
post #46
post #30

Earlier quoted context omitted.

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?

Dependencies are downloaded and compiled once for all your projects using the same Stackage release and are shared between projects.

In the end you still might have duplicated dependencies if you use different stackage.org releases but it's a much better situation than using Cabal sandboxes where every project has its own copy of dependencies.

Re: State of the Haskell Ecosystem – February 2016

#57

I like this sentence: > For a long time vim and emacs were the Haskell editors of choice. Now more traditional IDEs like Atom and IntelliJ are starting to get Haskell support

While vim and emacs are certainly more "traditional", they're not IDEs, and hence not "traditional IDEs".

As a Lisper, I'm still stuck with emacs as the best-supported tool, and that's kind of a sorry state of things.

Re: State of the Haskell Ecosystem – February 2016

#58

Earlier quoted context omitted.

Learn You a Haskell for Great Good has been an excellent resource for the intermediate programmer. Much of the intermediate to advanced space is already quite mature. The beginner space was the big gap.

Hi, I'm a coauthor of the book mentioned in the State of the Union post. The beginner parts were _a_ gap, but they weren't the only gap. In fact, none of the existing books really went very far beyond Monad, with only RWH covering monad transformers. So, part of the appeal of the book isn't just that we cover beginner topics better, we cover _everything_ from beginner to intermediate/advanced that you're likely to ap…

> The beginner parts were _a_ gap, but they weren't the only gap. In fact, none of the existing books really went very far beyond Monad, with only RWH covering monad transformers.

Having finally got productive using Haskell (on my second attempt at learning it), I can concur, if you're an already seasoned programmer, you need to grok transformers and mtl before you'll feel as useful as you are elsewhere.

Re: State of the Haskell Ecosystem – February 2016

#59
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…

Has anybody used Haskell and Elixir for building (advanced) web apps and is able to compare both? Thanks!

Re: State of the Haskell Ecosystem – February 2016

#60
post #23

Earlier quoted context omitted.

Elixir is getting increasingly popular as a server-side language with Phoenix. It has great concurrency, futures (Tasks [0]), smp and a fast http server (cowboy [1]). [0] http://elixir-lang.org/docs/v1.1/elixir/Task.html [1] https://github.com/ninenines/cowboy

But limited static analysis.

why should I want to have static analysis?
Post reply on HN