
Arnaud Bailly wrote:
I am on the verge of starting a new sofware development project for a customer and I wonder whether or not Haskell would be the right tool to do the job.
One snag is that I doubt you could ring up an agency and ask for half a dozen Haskell programmers. You could probably get people who did a bit of functional programming as part of a computer science degree, but that may not be enough for your needs. (Having said that, if you did manage to find contract Haskell programmers, you would probably get people who were highly skilled, and enthusiastic about the chance to use the language.) In other words, Haskell might be a good answer technically, but it could paint the client into a corner business-wise. I currently have a small amount of business logic that is implemented in Haskell, and I want to see it increase, but I'm always worried that this is going to happen. I don't want a job for life maintaining this stuff, I want to delegate it to others at an appropriate time.
All in all, this project is quite typical of a small to medium sized business information system which is commonplace in software services.
You might find that Java, for example, would have more support for this type of application, out of the box. Although Java is an unimaginative language, I find that productivity isn't too bad, mainly because there is plenty of library support for typical applications. With Haskell, writing the business logic is quicker, but some of the time saved gets spent implementing things that come as standard with Java.
Java and object-oriented 'paradigm' is nearly hardwired in my brain so I expect quite a painful learning process to shift towards thinking in functional terms: I know quite well the theory but never did I put it to use on a significant scale.
I'm finding this quite a struggle, to be honest. I can cope easily with the various homework assignments that get posted here, but I find it hard thinking about large applications in functional terms. I'm building up to larger applications, but I'd feel nervous tackling something the size you are talking about at the moment. Pete