Hacker News new | past | comments | ask | show | jobs | submit login

JP Morgan [1], Standard Chartered [2], Skedge.me [3], Soostone [4], and Facebook [5] have all advertised open Haskell positions recently. And those are just the ones that come to mind immediately.

[1] https://mail.haskell.org/pipermail/haskell-cafe/2015-June/12...

[2] https://donsbot.wordpress.com/2015/06/10/haskell-dev-role-in...

[3] http://www.reddit.com/r/haskell/comments/32ydm7/haskell_jobs...

[4] https://news.ycombinator.com/item?id=9473292

[5] http://www.reddit.com/r/haskell/comments/2useoq/haskell_oppo...




This is exciting news but the company you mentioned do not really qualify as "startups" though.


A couple of them mentioned here just for the Bay: http://www.wagonhq.com/blog/bayhac . Hope we still qualify as a startup!


Damn, this blog is so cool. Also, I share your excitement for the post cabal-install world :-)

Thank you for sharing!


JanRain, Silk, Wagon, Better, Bump, Fynder, Hasura, and more.

https://wiki.haskell.org/Haskell_in_industry

I expect some may keep it a secret, as it might give them some competitive advantage.


I didn't say "no one". Any company big enough will have open positions for pretty much any imaginable language or technology out there.

But picking Haskell as a start up is suicidal.


> But picking Haskell as a start up is suicidal.

Can you please list a few of the biggest reasons why?

In addition, aren't you aware there have been quite a few Haskell based startups?

Additionally, do you actually know Haskell and have you used it any substantial project/capacity?


> Can you please list a few of the biggest reasons why?

The main problem is the difficulty to hire Haskell programmers. Recruiting is crucial to a startup's success.

Then there's the entire ecosystem surrounding Haskell, which is still old and antiquated (looking at you Cabal) and moving very slowly (interfacing to NoSQL or AWS, etc...).

Finally, the very high bar to just learn how to correctly program in Haskell puts it out of reach of 99% of the developer community.


"The main problem is the difficulty to hire Haskell programmers."

That does not match my experience. I posted a Haskell position, promising to pay substantially below market rate with no hope of equity, and had a dozen or so applicants that seemed worthwhile (and a handful that really stood out, one of which turned into the hire).

"Then there's the entire ecosystem surrounding Haskell, which is still old and antiquated (looking at you Cabal)"

IME, pip is worse and Python seems a go-to choice for startups.

"Finally, the very high bar to just learn how to correctly program in Haskell puts it out of reach of 99% of the developer community."

Something like 99.9999% of the developer community isn't going to be working at your startup regardless.


The main problem is the difficulty to hire Haskell programmers. Recruiting is crucial to a startup's success.

"We were pleased to get a total of 42 applications, of which 19 merited serious consideration, and we eventually settled on a shortlist of 7 to interview. " [0]

Then there's the entire ecosystem surrounding Haskell, which is still old and antiquated (looking at you Cabal) and moving very slowly (interfacing to NoSQL or AWS, etc...).

> looking at you cabal

See this link for a solution: https://news.ycombinator.com/item?id=9766943

> interfacing to NoSQL

I recently used the Haskell riak[3] binding in my day job for an application. The mongoDB[4] package was uploaded "Tue Jan 19 06:04:06 UTC 2010"[5]

> AWS

There has been an AWS binding since 2011[1][2].

> etc

cassandra[6][7][8]

couchdb[9]

> Finally, the very high bar to just learn how to correctly program in Haskell puts it out of reach of 99% of the developer community.

A 10 year old can do it[9], so I'm sure more than 5% of the developer community can as well!

I wouldn't say I'm a spectacular programmer and I have both learned Haskell and used it in the real world easily enough. I will admit in the past there was a learning issue, but actions to make Haskell easier to learn have (and continue) to happen.[11][12][13][14]

I'm looking forward to any rebuttals you may have to these! :)

0: http://www.well-typed.com/blog/2010/08/on-hiring-haskell-peo...

1: http://hackage.haskell.org/package/aws-0.0.1

2: http://hackage.haskell.org/package/aws

3: http://hackage.haskell.org/package/riak

4: http://hackage.haskell.org/package/mongoDB

5: http://hackage.haskell.org/package/mongoDB-0.1

6: http://hackage.haskell.org/package/cassandra-thrift

7: http://hackage.haskell.org/package/hscassandra

8: http://hackage.haskell.org/package/cassy

9: http://hackage.haskell.org/packages/search?terms=couchdb

10: https://superginbaby.wordpress.com/2015/04/08/teaching-haske...

11: https://github.com/bitemyapp/learnhaskell

12: http://haskellbook.com/

13: http://www.amazon.com/Beginning-Haskell-A-Project-Based-Appr...

14: https://en.m.wikibooks.org/wiki/Haskell


Are there really that many cases of startups saying "oh man, had we only picked tool x instead of tool y, we wouldn't have been dead by now" ?


I've seen startups killed by New Guy CTO Who Really Likes Java.

It's rarely a tool that kills a company, though. It's an attitude. It's not the tool's fault. If you use some Java (perhaps you need to be on the JVM, because you're doing Android development or because an external client wants Jars) but allow the better engineers to work in Clojure or Scala, you'll be fine. If you hire the New Guy CTO Who Really Likes Java and people are punished for using high-productivity languages, then you're fucked. (<whine>"How are we going to hire Clojure engineers?"</whine> "Train internal talent up to it, dumbass.") But you'd probably be fucked if you had that same guy and he was fixated on a different platform or language. It isn't Java's fault.

It's similar to the debate about Agile/Scrotum, in which defenders of these methodologies blame imperfect people for the messes that these processes often create. The Agile Manifesto is pretty reasonable, all considered. But the sorts of people who will impose Agile from the top down, as a justification for aggressive micromanagement and age discrimination (cf. the terminal juniority of a culture where even senior engineers submit to time tracking)... are also the sorts of people who will destroy your company if they ever get to make decisions that actually affect other people.

As for Haskell... I've never met anyone who regretted using it. Of about 20 cases where people put it into production, I've never heard of anyone regretting it. (I have heard regret stories about Scala, especially regarding the build chain circa 2011-13, though it may have improved.) There is one case where that company moved to F#, but it wasn't Haskell's fault so much as a standardization around the Microsoft stack.


>> Train internal talent up to it, dumbass.

Train an X programmer on Y, and you'll most likely get Y written as X for quiet some time, until they gain experience, if ever.

The disconnect I've always had with using Haskell for anything is; you never get a result until the entire computation is complete. Oh but monads they say. Well, monads seem an aweful lot like procedural code (to me, the uninitated, unpracticed) so what's the point again? That's not meant as a criticism of Haskell, but just one persons thought process on the issue. I'd use SML if I could.


Train an X programmer on Y, and you'll most likely get Y written as X for quiet some time, until they gain experience, if ever.

Most companies are run by short-sighted mediocrities who don't look more than 3 months into the future. I think longer term. In the long term, the transition is worth it. The benefits of moving from Java to Haskell or Clojure, say, are worth a few months of struggling and first-time code. If you have half-decent programmers and a culture that allows people to take time to learn how to do things right, that pays itself off within the year.

The disconnect I've always had with using Haskell for anything is; you never get a result until the entire computation is complete.

That's not really true. If you need strictness, you can force evaluation and you don't need to use monads. I'm writing a Haskell class and I cover `seq` before I tackle monads in all their glory (i.e. beyond "here's how you do some basic I/O").

Oh but monads they say. Well, monads seem an aweful lot like procedural code (to me, the uninitated, unpracticed) so what's the point again? That's not meant as a criticism of Haskell, but just one persons thought process on the issue.

That's a fair point. Yeah, do-notation is a way to write imperative-looking code in a functional way. The truth is that for small programs, imperative code is often much more readable. That's how recipes are written, for example. Five lines of imperative code never killed anyone. It's when a function gets to 4,000 lines (often with multiple authors) that imperative programming completely shits the bed.

Monads, in short, are... a way to abstract around the concept of computational context so we can define what "stateful effects" are. `IO` has access to anything the machine can do. `ST` is single-threaded but stateful. `STM` can update some state (`TVars`) but has to follow the transactional rules. `State s` is a pure monad that looks stateful because it uses explicit state. Then we get to the monad transformer stacks, which are... potentially very complicated. (Phil Freeman's work with row types and the `Eff` monad in PureScript may replace the MT stacks one day.)

The point, in short is: imperative code is not evil, we're not trying to do away with it. We want to segregate it into functions that are preferably easy to read so we can reason about what stateful effects do happen. In Haskell, the monad system allows us to enforce this at the type level. You can look at the type signature and get an upper bound (unless "cheat functions" like `unsafePerformIO` are used; and they generally shouldn't be) on the space of stateful effects that can occur.


> I've seen startups killed by New Guy CTO Who Really Likes Java.

Of course, that's simple statistics. Java is the dominant language out there so it's going to be the most used language by startups that fail. That's a pretty silly argument.

And it works both ways: most of the startups that succeeded are based on Java (and other dominant languages). Hardly any of those based their product on Haskell. And again, I'm sure you can find a handful of those, but we're talking about statistical anomalies here.


> But picking Haskell as a start up is suicidal.

That's not the experience Skedge.me had. Rewriting their app in Haskell gave them an 80% code reduction, fixed all their major bugs that had been significantly impacting customer satisfaction, and the performance increases dramatically reduced their hosting costs. Their experience is described in more detail here:

https://www.youtube.com/watch?v=BveDrw9CwEg#t=1207


> Rewriting their app in Haskell gave them an 80% code reduction,

Surely you don't think that's how you measure a startup's success, right?


Agility matters, and code size pushes against that.

That said, the other bits are clearly more important: improved customer satisfaction and lower costs have much to do with startup success/failure.


That's not what you said though. You said picking Haskell was "suicidal". Clearly it's not.


But picking Haskell as a start up is suicidal.

Unsubstantiated FUD.


Indeed. See how the FUD spreader bends itself in all kinds of curves in order to not drown in comments...




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: