<DIV>(Sorry about replying at the top. This web interface doesn't seem to want to let me do otherwise.)</DIV>
<DIV>&nbsp;</DIV>
<DIV>I was just reading Wadler's article "How enterprises use functional languages, and why they don't" when your message came through. A definite "must read" for anyone wanting to promote the use of Haskell, IMO.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Just a couple of thoughts: An easily installable integrated development environment is a must. I understand I was fortunate in getting GHC to compile on the first try (but I "cheated" and used DarwinPorts to download and compile it under OS X -- it worked beautifully, but took forever). Another issue is training. I can go to the bookstore and pick up books on Scheme or Common Lisp, but I had to send away for a Haskell text, and am still finding it a challenge. I think of myself as a pretty quick study when it comes to programming languages, but wrapping my head around the monad concept (to my satisfaction, anyway) is still proving quite a challenge. The mechanics aren't the problem: it's the intuition. I think Einstein once said that if you can't explain something to a school child, you don't really understand it. How do you explain monads to a school child? What about examples of real projects? Anyone that is interested can download source for open source projects and see C or
 Perl or Java in action. For people that learn best by example, where do they start with Haskell? Oh, and there's another big one: databases. I work in medical record systems, which means large highly transactional databases. One of the reasons I'm jumping so quickly into the monad concept is that I had been thinking about is a method of structuring database applications. The three big questions that come to mind when I think about Haskell (or any new language) are: How do I program TCP/IP? How do I program databases? and, How do I program graphical user interfaces? <BR><BR><B><I>John Lask &lt;jvlask@hotmail.com&gt;</I></B> wrote:</DIV>
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">I would like to sound out the Haskell community on what the feeling are most <BR>desirable to improve the "commerciality" (i.e. its general use) of ghc and <BR>Haskell in general (as distinct from feature set)<BR><BR>my pick would be to<BR><BR>1) GHC runtime to be dynamically loaded.<BR>Enable the ghc runtime system to be loaded as a shared object/dll <BR>rather than being statically compiled in.<BR>I think the reason this has yet to be done is because it is a rather <BR>tricky issue, perhaps<BR>those in the know can comment.<BR><BR>2) Improving Haskell support for records.<BR>There has been much discussion over the years, some experimentation, <BR>but which alas has<BR>amounted to no change or improvement in Haskell record support. Again <BR>in my opinion the area<BR>that Haskell compares least favourably with other languages is in the <BR>area of record support particularly<BR>a) no
 distinct namespace for record fields<BR>(forcing people to resort to the module system to resolve name <BR>space clashes)<BR>b) subclassing on records would be great.<BR><BR>All these things have been discussed before. The most important is (a) <BR>as it would obviate some of the<BR>tortured coding that currently appears in many Haskell modules. <BR>Additionally<BR><BR>c) first class labels would be nice<BR><BR>3) Macro / conditional compilation / compiler meta language / additional <BR>binding forms<BR>These are perhaps distinct issues but can be discussed together.<BR>The prevalent use of #ifdef and the cpp is indicative of the general <BR>need to have some standard means by<BR>which differences between compilers ghc/hugs/nhc can be accommodated for <BR>in the source code.<BR>To date this issue has not been tackled in any meaningful way, perhaps <BR>we can continue<BR>to use cpp but for the sake of portability<BR><BR>A means of defining additional binding forms would be nice as it
 would <BR>further facilitate embedded dsl<BR>for which Haskell is pre-eminent, and which use is a great motivator <BR>for venturing into<BR>Haskell in the first place.<BR><BR>4) Taking up the issue of portability and byte codes in a recent thread.<BR>The lvm used in the helium compiler perhaps offers the opportunity of <BR>defining a standard<BR>Haskell byte code platform which other compilers can target for <BR>instance ghc/hugs<BR>(hugs has in its code base the possibility of writing out a compiled <BR>form aka compiler)<BR>- thereby separating the compile time and run time platforms, providing <BR>a standard Haskell target platform.<BR><BR>_______________________________________________<BR>Haskell mailing list<BR>Haskell@haskell.org<BR>http://www.haskell.org/mailman/listinfo/haskell<BR></BLOCKQUOTE><BR><BR><DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV><FONT color=#000080 size=2>
<P><FONT color=#4040ff>===<BR>Gregory Woodhouse&nbsp; &lt;</FONT></FONT><U><FONT size=2><FONT color=#4040ff>gregory.woodhouse@sbcglobal.net&gt;</FONT></U></FONT><FONT color=#000080 size=2><BR><BR><FONT color=#008000 size=2></P><FONT color=#4040ff><FONT color=#008000 size=2>
<P><FONT color=#0000ff>"Einstein was a giant. He had his head in the clouds and his feet on the ground."</FONT></P>
<P><FONT color=#0000ff>-- Richard P. Feynman</FONT></P>
<P></FONT></FONT></FONT></FONT><BR></P></DIV></DIV></DIV></DIV></DIV></DIV>