top | item 5096874

(no title)

amm | 13 years ago

For personal projects or for learning the principles of FP, there is nothing wrong with using Haskell.

From personal experience however, I will not be using Haskell again for a larger professional project, because our team ran into too many time consuming issues and problems that have been solved successfully in other languages/environments (especially the JVM) like dependency management or reasoning over runtime characteristics before deploying the application on production systems. Especially memory consumption is very hard to predict.

Of course, the language also has its benefits and even after some years it tickles your brain just the right way.

I like programming in Haskell very much, but in real world projects (you know - when you work in a team not only consisting of PhDs) I prefer Scala or Java, because getting a war file deployed or profiling an application is just so much easier.

YMMV, of course.

discuss

order

Peaker|13 years ago

When did you use Haskell?

The dependency hell situation has vastly improved (and there are plans to make it much better still).

I agree that a downside of Haskell's very high level nature is difficulty to predict some runtime characteristics. This is just an instance of the general trade-off between low-level and high-level languages. Everyone is already comfortable with the loss of easily predictable performance incurred by GC, but people are still not comfortable with the same w.r.t laziness.

I use Haskell for real world projects, and I find it more practical and more suitable than any other language I've ever used. Laziness rarely bites me, and has incredible real-world benefits such as easy refactoring and simpler code.

I think the silliness about PhD's is very very silly. Of the Haskell programmers I know, the majority don't have a first degree...

About profiling -- I have never profiled a Scala/Java application, but how much easier is it compared with: "cabal configure --enable-executable-profiling", and then running the program with "+RTS -p"? It may not be point-and-click, but it really is not hard at all.

amm|13 years ago

>When did you use Haskell?

Roughly two years ago.

>I think the silliness about PhD's is very very silly.

Of course it is. I just wanted to make a point that the "average programmer" has probably never seen a single line of ML-syntax before.

>About profiling -- I have never profiled a Scala/Java application, but how much easier is it compared with: "cabal configure --enable executable-profiling", and then running the program with "+RTS -p"? It may not be point-and-click, but it really is not hard at all.

I don't remember exactly what we tried, what worked and what didn't; we had no experts on the team, and just came to the conclusion that hooking up jconsole/yourkit/<insert jvm profiler here> to a running jvm process and see what's happening in real time on an app server was so much more comfortable.

Uchikoma|13 years ago

Could you elaborate what 'real-world' means to you in this context? Millions of users, hundreds of servers, a personal blog? 'Real-world' is often a very broad term with a huge likelihood of misunderstandings.

lumberjack|13 years ago

Interestingly, despite their respective reputations Haskell is by far more popular than Scala:

http://www.langpop.com/

vellamike|13 years ago

I think "respective reputations" can be quite subjective. In my circles Haskell is definitely more talked about/used.

dysoco|13 years ago

Sure: In the "hacker" world it seems that people prefer Haskell (Purely functional, native code) to Scala (OO Hybrid, JVM).

However I'd say that Scala is far more popular for building bussiness/real software than Haskell is (Twitter for example).

eru|13 years ago

What is a war file?

mahmoudhossam|13 years ago

It's short for (Web Application ARchive), it's a jar file used for deploying web applications written to work on the JVM.

martinced|13 years ago

It's a zip file following Java convention that can be dropped in any Java web application server (like Apache Tomcat).

Basically a lot of sites you go to have been deployed by dropping a .war file in a Java web application server. That technologically powers a gigantic part of the Internet (just look at SO or Quora or expert exchange or any TIOOBE index or any Java job offer: Java webapps are pretty much powering the Real-World [TM]).

papsosouid|13 years ago

I had the exact opposite experience. We switched from scala to haskell and it has been a huge relief. I spend no more time dealing with dependencies in haskell than I did in scala, and our team contains precisely zero people with any post-secondary education (I didn't even finish high school in fact). The myth that you need "a team of PhDs" is so bizarre and so far from reality that I don't understand how anyone who has taken any time to actually try haskell could repeat it.