Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the main benefits of using Haskell for web developing? [closed]

Tags:

haskell

I'm learning Haskell for great good.

I'm pretty into OOP and the various type systems. I used Java to develop webapps (Java EE, spring, Hibernate, struts 1.x), now I'm using regularly Python (pylons, django, sqlalchemy, pymongo) and Javascript. I had a huge improvement in my personal productivity: the lightweight approach, duck typing, awesome iterators, functions as first class citizens, simple syntax and configuration, fast tools like pip and distribute (and much more) helped me a lot.

But the first reason of my productivity boost is the Python language itself.

What are the main benefits of using Haskell for web developing? For example, how its type inference can really improve my web app? So far, I noticed that when you decorate your function with its type-signature you are adding a lot of semantics to your program. I expect all this effort to come back in some way, to save many lines of code and to make them sound. I really like the sharp distinction between types and data, I'm starting to understand how they works, but I want something back :P

Don't get me wrong, I've just started studying Haskell so Maybe I'm missing some awesomness but I really want to understand its paradigm and when it's worth using it.

like image 515
vrde Avatar asked Apr 09 '12 13:04

vrde


People also ask

Is Haskell good for web development?

With Haskell's type-system, you're very confident in making major changes at any point in the project lifecycle. So Haskell is a great fit for the kind of fast-changing web applications we're building.

What is the main use of Haskell?

Haskell is the main technology that helps us deliver high quality software. There are various criteria to judge software quality, but the most important ones are correctness, performance, and maintainability. Haskell facilitates writing code that scores high on all of these accounts: Correctness.


1 Answers

Most web applications aim to be stateless and handle concurrency well. Its also rather important to scale (Google SEO reasons, and user experience).

Haskell handles these problems rather well (although IMHO in more academic and perhaps less "human" intuitive way).

That being said due to the sheer lack of people doing web app dev (compared to say node.js) and that traditional web app dev has been more focused in a OOP mind frame it might be rather difficult.

I had some issues trying to use it as you can see in my questions below:

How do I do automatic data serialization of data objects?

Handling incremental Data Modeling Changes in Functional Programming

like image 173
Adam Gent Avatar answered Sep 29 '22 14:09

Adam Gent