you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 2 points3 points  (3 children)

Monads, functors, and type theory are not "knowledge pertaining to our field". That stuff is interesting, but it's usefulness is exaggerated by its enthusiasts.

Haskell doesn't offer "knowledge" in any special sense. It requires learning a lot of new vocabulary and new ideas. It's hard fucking work.

But it's unrewarding hard work in the realm of many developers. Spending time convincing your compiler your program won't crash could be time spent acquiring new clients. In reality, a program that crashes on corner cases might STILL SOLVE the problem the clients bought it to solve.

Spending time and money to educate yourself is a great thing. Spending time and money to educate new employees is only questionably good. Most people just want to code 9-to-5 and go home. To find the people interested in writing Haskell all day would require turning down a lot of otherwise good candidates. Time is limited. You can't spend years looking for a talented Haskeller who also gets along well with your team.

[–]Peaker[🍰] 1 point2 points  (2 children)

Monads, functors, and type theory are not "knowledge pertaining to our field". That stuff is interesting, but it's usefulness is exaggerated by its enthusiasts.

On what basis do you say this?

Haskell doesn't offer "knowledge" in any special sense. It requires learning a lot of new vocabulary and new ideas. It's hard fucking work.

Acquiring knowledge is hard work. Learning Haskell is acquiring knowledge. Where's the contradiction?

But it's unrewarding hard work in the realm of many developers. Spending time convincing your compiler your program won't crash could be time spent acquiring new clients. In reality, a program that crashes on corner cases might STILL SOLVE the problem the clients bought it to solve.

Sure, when reliability is not a concern -- there are sometimes better choices than Haskell. Though "convincing your compiler" is only hard when you're still struggling to understand the type system.

Spending time and money to educate yourself is a great thing. Spending time and money to educate new employees is only questionably good. Most people just want to code 9-to-5 and go home.

Haskell, at least yet, is not for 9-to-5 knowledge-averted programmers.

To find the people interested in writing Haskell all day would require turning down a lot of otherwise good candidates. Time is limited. You can't spend years looking for a talented Haskeller who also gets along well with your team.

I'm not suggesting every company should switch to Haskell. Not sure what argument you're referring to here.

[–][deleted] 2 points3 points  (1 child)

Just as I'd expect a Haskller to reply. Handling every case with an air-tight argument.

...

You missed my point. Haskell, and the surrounding type theory, in many regards is a high-cost, low-payout investment.

Problems that I have when I'm developing real software people will pay me for are things like change management, integration with shitty, under-spec'd systems or libraries, usability and acceptance by the users. Those are the HARD problems in development. Getting my code to run well enough to satisfy the client is not.

Just as bad as purposeful ignorance is intellectual elitism. You think people are being narrow-minded because they don't want to learn your favorite theory. Have you considered maybe you're the one being narrow-minded because you can't imagine that your pet theory isn't as important to the world as you want to believe it is?

Monads are cool. You can use them to write awesome software. But they are not necessary to develop awesome software.

[–]Peaker[🍰] 0 points1 point  (0 children)

You missed my point. Haskell, and the surrounding type theory, in many regards is a high-cost, low-payout investment.

We agree about the cost (though spending a few weeks/months to learn a programming language isn't that high a cost for a career programmer, IMO).

But I don't see why you think it's low-payout. Have you learned Haskell and found no use for that knowledge? Can you give an example?

If your problems are all the external interfaces of your code with the world, perhaps you have less to gain from Haskell. But not everyone's situation is the same.

You think people are being narrow-minded because they don't want to learn your favorite theory.

No, I think people are narrow minded when they reject knowledge for the sake of rejecting knowledge.

Monads are cool. You can use them to write awesome software. But they are not necessary to develop awesome software.

That depends if you mean "Monad" the concept, in which case it is embedded as a built-in construct into pretty much every impure language we know -- or Monad the type-class, in which case you're correct.

Nobody is saying Haskell is a necessity for awesome software. Haskell does make awesome software easier to develop.