Pete Chown <1 at 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