
Pete Chown <1@234.cx> writes:
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.
Good point. I did not talk about that, but I feel I will have a hard time selling Haskell as implementation language if I cannot back this approach with something consistent. Skill shortage may definitely be an issue as well as technical dead end.
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.
I have actually done most of my programming work (~300kloc) with Java for the past 8 years, and I although I have become acquainted with the intricacies of the language, the platform, the numerous libraries and even the bytecode, I have never loved that language ! I found it really unexpressive, the type system is neither useful nor safe, it is really verbose and does not lend itself to idiomatic programmming style... It's greatest advantage lies in the power that reflection and introspection has to offer for tool and libraries builder, but it is tricky. As said by Bulat Ziganshin, Java's as well as other mainstream languages superiority when it comes to software systems development lies in the numerous libraries, tools and IDEs that alleviate some of the pain of implementing a system. But my experiences lead me to thing that they are in the end inadequate and expensive. I am dreaming awake that Haskell's versatility, safety and expresiveness could allow me to quickly build tools that could generate system components instead of coding them. I am thinking about an approach based on a sort of DSL design with Haskell then code/bytecode generation to Java/whatever platform. Does anybody have experiences with that, particularly for GUI parts ? regards, -- Arnaud Bailly, Dr. - Ingénieur de Recherche NORSYS 1, rue de la Cense des Raines ZAC du Moulin 59710 ENNEVELIN Tel : (33) 3 28 76 56 76 Mob : (33) 6 17 12 19 78 Fax : (33) 3 28 76 57 00 Web : http://www.norsys.fr