Hacker News new | ask | show | jobs
by balloot 4189 days ago
I am increasingly convinced that Haskell only exists so that people who know it can pat themselves on the back for being wonderful.
8 comments

With the exception of pandoc, I don't recall seeing anything particularly impressive from the Haskell camp.

(Btw, this, actual stuff people use, is how I measure programming languages -- this metric takes into account communities, libraries, practical issues, etc all together, and ties them with practical results. It's my version of "let the market decide").

Darcs used to be the poster child for Haskell but then somebody came along and wrote a much better DVCS in C, of all languages. Draw your own conclusions...
Still use darcs to this day. Darcs is magical AND productive. I use a script to play back my darcs commits into a git repo so i can put my projects on github. I love you darcs, I love you.
A much worse DVCS, but written by a famous person.
I think you're forgetting QuickCheck, which has been ported to many other languages.
xmonad also comes to mind.

But you're talking more about products than programming languages. Haskell contributed a LOT to programming theory.

Your every day coding is most likely using things coming directly from Haskell without you knowing it.

jQuery and Javascript Promises comes to mind, I know they started in C++ put they are practically Monads.
Since when did monads become a synonym for Haskell?
You really need to learn monads to use Haskell, and it's one of the major barriers for newcomers. It's no different from pointers in C.
Since 2000 tutorials emphasizing them as the gist of Haskell programming...
I think you mean one specific kind of a Monad.
You may want to check out Warp [1]. Another quite popular haskell project you may have heard about is this compiler some people use... is called ghc :) [2]

1: http://aosabook.org/en/posa/warp.html

2: https://github.com/ghc/ghc

What are you talking about? Haskell has done a wonderful job at teaching people how to use Haskell.

This is a feat in and of itself.

There are a few startups out there who use it as their core tech. It's a sweet spot because you don't have any legacy code to support and it allows you to slap together fairly stable code fairly fast, at least once you get to know the basic tools. E.g. picking up Yesod (which, to be fair, isn't something you'll do in a couple hours) gives you all of the niceties and rapid prototyping of a tool like Rails, plus the obsession with type safety that gives you that handy line of technical credit.
I can't imagine ever using Haskell for a startup. Unlike pg's python paradox, the only programmers I could imagine applying would be programming language theorists, toy programmers, and people who think they are productive (because arrows!), without ever having built anything ever. I would only do it if it meant I could hire John Macfarlane.
We've actually had a pretty good time hiring for both Haskell and Clojure, it attracts a certain type of developer that a team like mine likes to work with.

There are certainly applicants from the groups you mentioned, and we do our best to filter them out.

It's interesting to hire people for stacks that most programmers have no production experience with (and have pretty much no way of getting), but it's certainly been done before.

In my view the tech in a startup pretty much doesn't matter. You either make something someone will pay for, or you don't, and then you die whether you use Fortran or Coq. Thus you might as well make yourself comfortable for the ride and use whatever you'll enjoy building stuff in, something you won't be easily bored of using and teaching others.

If you get to the stage where you need to quickly bring up to speed hundreds of developers, you pretty much already made it and you're experiencing growing pains, that's a good problem to have. Most of your code won't survive that scale without a serious rewrite anyway. You'll deal with that when you get there. The vast majority of people will never get that far.

We use Haskell heavily at my startup and it's definitely a competitive edge and well suited to the many general programming problems we solve with it (amqp processing client, rest api, javascript heavy webapp w/ haskell web framework backing, db orm modelling, scrubbing and feeding data into influxdb, the list is long).

I know quite a few professional programmers who credit Haskell with making programming fun for them again (this holds true for me too and my production skill set includes php, c, c++, python, ruby, erlang, scheme, javascript, scala).

You should kill that misinformation with some Haskell experience ;)
Yeah, I've got a similar impression. The only 2 things I care about are 1) productivity (time to finish a task) 2) how pleasurable is it to use a language.

And I just don't find Haskell (or Lisp) to be as productive as many would suggest, even if you adjust for matureness of the ecosystem. (Note: I have a moderate experience with Lisp, very little experience with Haskell and these days mostly program in Java, Julia and Python.)

I wrote the core of our system in Clojure a couple of years ago, which is pretty high in productivity and actually quite pleasant to work with. Unfortunately as the scale goes up (hundreds of web application routes, sharing code among multiple projects etc) it doesn't feel nearly as nice anymore, and having static typing turns out to be pretty handy.

Haskell to me felt exactly like what you described: I could get stuff done fast because of how few head-scratchers I'd experience. This is mostly due to type mismatches, and how much more well thought our my design needed to be upfront. I also really enjoyed the language because I could express fairly complex thoughts in a very succinct, and yet very readable fashion, mostly thanks to types being explicit and enforced at compile time. Code reuse and sharing across multiple applications is also a breeze, which is absolutely key once you get past the "single Rails app" stage and you start getting into two digits worth of tools, services and applications.

Oh ok, I can be wrong about Haskell. BTW, I really like Ceylon, it's very statically safe (more than Haskell I'd say) and very pragmatic (unlike Haskell IMHO, it doesn't seem to focus on maximizing productivity).
Ceylon looks interesting. Mind pointing me to some features you think make it more statically safe than haskell?
I don't know if these are considered static safety features but:

* Statically safe metaprogramming.

* Well designed access rights (private, public).

I also really like the type system, very well designed.

I think the only languages that are "statically safer" than Haskell are the theorem provers... (agda and coq come to mind)

Disclaimer: I do not have enough PL type theory under my belt to confidently make this argument.

"I have a moderate experience with Lisp, very little experience with Haskell and these days mostly program in Java, Julia and Python"

I despise that people give their 2 cents for something they haven't experienced much.

You mean like everyone in this thread who has never written PHP but feels the need to bash it?
Why? You assume that little experience with Haskell is not enough to make conclusions about its productivity. I disagree with this assumption, I think you can sometimes make a moderately confident conclusions from little experience. And I understand I can be wrong of course.
Can you list a few reasons you think Haskell isn't pragmatic?
She can't, given how little experience she have with the language.
It's "he".
>I just don't find Haskell ... to be as productive as many would suggest

>I have ... very little experience with Haskell

So, how would you know?

I don't know with 100% certainity, but it's a moderately confident conclusion from my little experience.
The point of graphs like these (aside from making a joke) is to describe the learning curve. These graphs admit that the beginning of haskell is a nightmare, but claim that eventually you have "unbounded" productivity.

It seems rather hard to evaluate the tail end from "little experience".

It's an incorrect conclusion that requires further education and experience before you can be sure your subjective experience of productivity truly is that poor.
please, this is getting old. Haskell is one of those languages for people who want to show off how clever they are instead of just getting on with developing applications that actually do useful things efficiently.
I hope you are trolling. Most Haskeller's value getting things done over being clever and actually actively avoid being clever. In your other comment you point out that many of PHP detractors have not used it or have very little experience.

Do you have experience using haskell? If not, you are being hypocritical. Please stop.

>Haskell is one of those languages for people who want to show off how clever they are

Yes, that's what banks are most known for. Showing off how clever they are and not doing anything useful. Facebook and google certainly fit that profile as well right?

I am suggesting that your confidence is misplaced. Having little experience in something means you should have little confidence in your knowledge of that thing.
> Having little experience in something means you should have little confidence in your knowledge of that thing.

Not always true, sometimes you can have a fairly good picture of something after a short time.

I've affectionately dubbed them "Haskholes"
Well, Haskell is number 49 of 50 on the current Tiobe Index.
Haskell exists to write CS papers about it. It being the new LISP is just a side effect (pun intended).