TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Haskell in Production: The good, the bad, and the ugly

115 pointsby hamidrover 12 years ago

19 comments

tikhonjover 12 years ago
I don't think the library situation is nearly as bad as some people--not necessarily the author of this presentation--make out.<p>For one, Haskell actually has a pretty good and growing collection of libraries, probably disproportionate to the language's popularity. Web development, in particular, is well represented: there are several competing web frameworks; Yesod even has commercial backing now. Haskell even has some libraries that are not well reproduced in other languages like QuickCheck and Parsec. I've also been looking at sbv lately, which seems rather more convenient than other languages' alternatives.<p>Additionally, libraries aren't the only thing that matters. In fact, most libraries are pretty trivial. I remember seeing a presentation by Brian O'Sullivan online about his experiences with using Haskell at a startup. One point that really stood out to me was about libraries: sure, some libraries (like JSON parsing, I believe) were missing; however, it only took him something like a couple of days to write it from scratch. Those days are easily overshadowed by Haskell's core advantages. I would much rather spend a couple of days writing a new library than trying to track down a bug Haskell's type system would have caught. The beauty of this system is also that each library only needs to be written once and can then be reused, making the world better for everyone.<p>Now, there are some other issues with Haskell. Cabal really is a big one. I just spent quite a while fighting cabal, and I'm not even sure how I won in the end :P. Happily, I believe people are working on addressing the cabal issue.<p>I'm sure there are other annoyances besides. But no language is entirely free of annoyances. Considering everything, I really do think Haskell is a good choice for a very wide range of programming problems, especially in a startup setting.
评论 #4721873 未加载
评论 #4721894 未加载
评论 #4723112 未加载
comexover 12 years ago
I don't even know Ruby, but it's clear that the idea that Ruby is an "amazingly primitive" language that people are using instead of Haskell because it has existing libraries and services or because "startups are not technical" is drastically wrong and almost insulting. To the contrary, Ruby, probably more than any other language, has a large community that's highly enthusiastic about its programming style and culture, which is the reason most of those libraries and ecosystems were created in the first place. I know this is just a few bullet points, but vaguely mentioning a few (good) reasons to evangelize Haskell (plus a motorcycle) along with three seemingly random relatively small issues as criticisms of Ruby (plus a horse and wagon) distorts reality almost to the point of unrecognizability.
评论 #4722133 未加载
评论 #4722718 未加载
评论 #4721708 未加载
评论 #4721878 未加载
shin_laoover 12 years ago
Although I'm mainly a C++ developer, I'm a big fan of functional programming languages.<p>Haskell is more difficult, it requires to really grasp some computer science principles whereas you can start hacking php/python/ruby right away. It requires to <i>actually think about what you're going</i> to do instead of integrating a couple of libraries: that's a double edged sword.<p>You need to understand that the added value of Haskell for most start ups is near zero. It will more difficult to hire, the final result will not be better and in the end code quality matters less than business relevance.<p>If your technical founder is a Haskell guru and knows a couple of engineers, then sure, why not, it may provide some competitive advantage, otherwise just forget about it.
评论 #4721675 未加载
评论 #4721948 未加载
评论 #4721641 未加载
hamidrover 12 years ago
Ask HN: Anyone using Haskell in production? <a href="http://news.ycombinator.com/item?id=1909093" rel="nofollow">http://news.ycombinator.com/item?id=1909093</a>
nnqover 12 years ago
...I know that HN people are mostly *NIX oriented or dislike Microsoft technologies ...but how about F#? ...wouldn't it provide most of the advantages of a ML family language but coupled with the "smoothness" of VS tooling and .Net integration that could take some of the deployment pains away and provide the "accelerated liftoff" needed by startups?<p>(It's a question, not suggestion... I must admit I've never had the balls to use ML of Lisp like languages in production so far...)
评论 #4721968 未加载
评论 #4721740 未加载
评论 #4722073 未加载
评论 #4721761 未加载
forgotusernameover 12 years ago
I've no doubt this presentation makes some interesting points, but I'm as inclined to finish reading it after noticing it's destroying my browser history as I would continue evaluating software after noticing it's randomly corrupting my home directory.<p>Please leave history alone or at least use window.history.replaceState().
评论 #4722141 未加载
klibertpover 12 years ago
"strong <i>static</i> types save time"<p>I would find the presentation without controversial points at all were it not for this one sentence :)<p>Edit: aaargh, I treated mention of Ruby primitivism as a joke and forgot about it; if taken seriously it can be controversial as well.
评论 #4721659 未加载
评论 #4721844 未加载
arocksover 12 years ago
Ah, powerpoint presentations where the truth is somewhere between the bullet points. I would have preferred a blog post which gives the author enough breathing space to justify his claims.<p>Haskell's single biggest problem is that it looks unfamiliar to programmers who are trained in traditional imperative languages. Due to its minimal syntax, its error messages can be confusing to a learner. New languages like Scala and Clojure are packaging many of Haskell's concepts in a more familiar syntax. They are gaining popularity since they actually solve hard problems like concurrency.<p>In my opinion, startups prefer Ruby because they prefer to start solving the problem right away without worrying too much about its correctness. A classic case of "Worse is better" works for most web applications. Whereas, Haskell requires some thinking into how to best model the solution before you start implementing it. This often leads to more 'correct' code.
评论 #4721867 未加载
评论 #4722249 未加载
cabalamatover 12 years ago
Does anyone really think that a slide presentation is a better way of saying what the author wanted to say than an essay?<p>And if so, do they also think that Norvig's Gettysburg Powerpoint Presentation is better than Lincoln's Gettysburg Address?
peterjsover 12 years ago
What does CoW mean? As in "GC breaks CoW &#38; caching". There are quite a few acronyms and supposedly even some animal with these three letters.
评论 #4722267 未加载
Bjoernover 12 years ago
Is this a slideshow? I can't do anything here in FF 16.0.1.
评论 #4722862 未加载
评论 #4722107 未加载
beeringover 12 years ago
What about virthualenv (virtualenv for Haskell)? Does that help alleviate some of the cabal issues?
评论 #4723260 未加载
Qerubover 12 years ago
I'll consider Haskell for serious programming when (and if) it gets a decent record system.<p><a href="http://bloggablea.wordpress.com/2007/04/24/haskell-records-considered-grungy/" rel="nofollow">http://bloggablea.wordpress.com/2007/04/24/haskell-records-c...</a>
评论 #4722368 未加载
ryanpersover 12 years ago
"startups arent technical"<p>I guess YOUR startup isnt technical... But there are in fact technical startups out there. It's just that they make more money than yours, do better and are generally cooler.
评论 #4725831 未加载
评论 #4721942 未加载
_pferreir_over 12 years ago
&#62; Ruby is amazingly primitive<p>What? In what sense in Ruby primitive?
评论 #4722163 未加载
评论 #4721730 未加载
评论 #4721803 未加载
thuover 12 years ago
I think it is very positive. I read it as "Things are being done, please be patient. B.t.w. what's done is insanely great".
finnwover 12 years ago
<p><pre><code> * $LANGUAGE is amazingly primitive * GC breaks CoW &#38; caching * dynamic -&#62; lexical scoping between $OLD_VERSION &#38; $NEW_VERSION * concurrent behaviour requires event-driven style </code></pre> Exactly the same could have been written about Lisp in the late 80s
the1over 12 years ago
eh? haskell program can be really slow, especially when it is written by non-experts who don't understand lazy evaluation well.
评论 #4722688 未加载
Supremeover 12 years ago
This is a terrible set of slides. The only new thing I gathered from it is "cabal sucks". Then the presentation came to a sudden end which left me thinking "what, that's it?" How does such a low quality link get so many upvotes? <i>takes notes for future marketing endeavours</i>
评论 #4722277 未加载
评论 #4724524 未加载