Live data from Hacker News

Ask HN: Why would anyone choose Haskell to develop applications?

news.ycombinator.com

41–50 of 128 posts

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#41
post #38

Earlier quoted context omitted.

I prefer Javascript/Go/Python because most of my code is actually doing something instead of just conforming to a Gang Of Four pattern designed to paper over the shortcomings of my tool. I too want my programmers to be thinking about and solving my business problems, not writing boilerplate.

Can you give an example of what kind of boilerplate you mean? Because I feel like modern Java and Kotlin have improved a lot in this area.

"Code to interfaces instead of implementations" type boilerplate

Code that doesn't do anything except support a design pattern you're following is boilerplate.

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#42
post #15

Earlier quoted context omitted.

Maybe the same applies to building a RESTful API and choosing Go instead of js :)

You will get slightly better people but still the wrong people. JS is almost never the right tool for the job, Go is occasionally the right tool for the job, mainly if you need to write something that moves bytes from one fd to another without much in the way of business logic. TBH if you are building something boring you should just use Spring w/Java or Kotlin. This will attract pragmatists that ship code that works…

>Go attracts mediocrity and not in a good way, it also actively repels the "right " people if you want to hire for highest intellectual horsepower for a given budget.

This is painting with a pretty broad brush. I like Haskell (and first learned it before it was cool, in the early 2000s), but I also enjoy coding in Go. Not everyone is strongly driven by choice of programming language in their job search. If you do hire someone who desperately wants to write Haskell code, you might find that they spend more time tinkering with advanced Haskell features than they do adding business value.

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#43

Earlier quoted context omitted.

Go doesn’t attract mediocrity it attracts pragmatism. I worked on a Scala team for a couple years, had a lot of devs that were “smart”, problem was they wrote really fancy code no one could understand. I then switched to a Go team and it was night and day. I was wildly more productive and the people in the community were not lacking intelligence. Go prioritizes community, it believes that “us” is more impactful than…

I feel like this is something that people who use a certain language repeat to themselves until they believe it. Go is big enough that this certainly doesn't hold for tens of thousands of developers.

In my experience Go's relatively constrained language and standard library coupled with gofmt mean Go code written by entirely different people tends to read fairly consistently.

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#44

When I asked my current employer why they chose it, they simply responded that it attracts the "right" people. From a business perspective, any language is arbitrary. What matters is having clever people around to solve problems.

This is generally true.

> From a business perspective, any language is arbitrary.

Counterpoint: And then when the company starts growing quickly and has to hire 10 Haskell devs in 12 months, they realize its pretty much impossible to do without shelling out $200k/person.

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#45
post #18
post #16

Earlier quoted context omitted.

This can cut both ways. Yes, if you choose Haskell, a Lisp, or something like Erlang, you can get smarter/better devs. But the flip side of that is that the types of people who tend to gravitate toward those languages are often more interested in programming for it's own sake and not the domain they're working in. So you get things like people burning hours writing their own libraries and endless tinkering with progr…

This is where I differ. I think the Python/JS/Go crew gets you stuff that is built poorly and becomes expensive to maintain. I much prefer the JVM and ASP.NET crew because they are 9-5 programmers, their tools aren't constantly changing so for the most part they only need to spend time actually doing work. No fighting with package managers, no updating the latest framework and solving backwards incompatibilities for…

> I much prefer the JVM and ASP.NET crew because they are 9-5 programmers,

I don't think thats what the parent meant. They meant esoteric functional programming languages vs mainstream OOP ones. You're saying the same thing.

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#46
post #44

When I asked my current employer why they chose it, they simply responded that it attracts the "right" people. From a business perspective, any language is arbitrary. What matters is having clever people around to solve problems.

This is generally true. > From a business perspective, any language is arbitrary. Counterpoint: And then when the company starts growing quickly and has to hire 10 Haskell devs in 12 months, they realize its pretty much impossible to do without shelling out $200k/person.

...which is likely saving money long run anyway - good developers usually pay for themselves, if not, they're in the wrong place.

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#47
post #15

Earlier quoted context omitted.

You will get slightly better people but still the wrong people. JS is almost never the right tool for the job, Go is occasionally the right tool for the job, mainly if you need to write something that moves bytes from one fd to another without much in the way of business logic. TBH if you are building something boring you should just use Spring w/Java or Kotlin. This will attract pragmatists that ship code that works…

And yet there are hardly any software written in Haskell or Ocaml that are widely used or have any notable positive impact on the modern digital world, compared to those written in languages like Go, C++ or Python. edit: ps: Big fan of OCaml, but have since moved on to Go and Python for getting things done in the real world.

OCaml is mostly used in speciality applications. I have a few friends that work on flight control software for satellites and their stuff is all OCaml which is apparently not that uncommon in their field.

That said none of them knew OCaml before joining said company and thus none were hired because of it... so that does somewhat invalidate the "right" people argument but I guess if you are doing literal rocket science I think that is pretty self-selecting for smart folk lol.

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#49
post #43

Earlier quoted context omitted.

I feel like this is something that people who use a certain language repeat to themselves until they believe it. Go is big enough that this certainly doesn't hold for tens of thousands of developers.

In my experience Go's relatively constrained language and standard library coupled with gofmt mean Go code written by entirely different people tends to read fairly consistently.

Style wise for sure. Structure? Choices of libraries etc? Definitely not. Not enough consensus for even the simple "I want make MVC style webapp".

Re: Ask HN: Why would anyone choose Haskell to develop applications?

#50
post #18

Earlier quoted context omitted.

This is where I differ. I think the Python/JS/Go crew gets you stuff that is built poorly and becomes expensive to maintain. I much prefer the JVM and ASP.NET crew because they are 9-5 programmers, their tools aren't constantly changing so for the most part they only need to spend time actually doing work. No fighting with package managers, no updating the latest framework and solving backwards incompatibilities for…

I prefer Javascript/Go/Python because most of my code is actually doing something instead of just conforming to a Gang Of Four pattern designed to paper over the shortcomings of my tool. I too want my programmers to be thinking about and solving my business problems, not writing boilerplate.

> I prefer Javascript/Go/Python because most of my code is actually doing something instead of just conforming to a Gang Of Four pattern designed to paper over the shortcomings of my tool.

Which shortcomings of Java/Kotlin are you referring to? What features are both present in all of JavaScript/Go/Python and absent from Java/Kotlin that have any relevance to the Gang of Four patterns?

Post reply on HN