> At 03:55 AM 9/9/99 , Mark P Jones wrote:
> Some folks out there want to use Haskell to write real programs.  For
> them, there's Haskell 98.

To be clear, I am not an academic researcher.  I develop real world
web sites.  I would really like to use Haskell for this process, but the
tools and libraries are not yet there to get this done in an effective
manner.  

Much of the substance of our real world web development involves:
1. talking to databases
2. talking to other web servers (via http)
3. processing XML schema and data files
4. generating HTML/XML which mixes string constants with values
derived from databases and xml files

Haskell98 is good at none of these things, but Haskell so clearly could be!

Putting aside sexy type system innovations, even basic stuff like the File
and Directory Libraries clearly needs a major overhaul.  Absent a working
FFI standard, development of the File Directories is happening out in
space. Real world directory APIs, like LDAP, NDS, and Active Directory,
are emerging, compatibility with which would be really nice.
Javasoft has defined a reasonably sane JNDI spec which subsumes a lot of
file and directory functionality.  If Lambada goes up, then it would be
really sane for the standard File and Directory APIs to mirror JNDI more
closely (and an easy implementation would be a shallow wrapper around the
underlying JNDI functionality!).  I would make similar points about HTTP
and SQL libs but there is no standard haskell Net or Database module as
there is in e.g. Java.  (however doesn't lambada assume type system
extentions?)

Of course, it may be worth someone's time to construct collection classes
to abstract out database semantics, but the fact that MPTC appears
designed for the task would make any reasonable developer unwilling to
restrict themselves to H98.

On the sexy type system front, the reason why I have been campaigning so
hard for generic programming interfaces (either via Derive, PolyP, or a
Categorical Prelude), is that they substantially facilitate much of the
real work associated with talking to databases and XML files.  The actual
application logic encoded into most of these apps is really small.  The
hard part is building the plumbing to connect all the data sources and
sinks together.  Generic programming interfaces mean that you don't spend
enourmous amounts of time manually translating haskell datatypes into and
out of SQL and XML schema (a desired blue sky application is automatic
optimal compression of valid XML data files as an HTTP transfer encoding 
option).

Yes, you can use various extensions that people have around, but the
plumbing overhead of wrapping them into any individual project typically
exceeds the overhead of doing the actual work.  The economies of scale you
get from sharing work or just not there yet.

The value of the generic programming interfaces is so hight that it
certain that one of them will become standard.  The issue here is that the
cost of adopting the loser will result in a lot of orphaned code.

As a whole, Haskell, unlike procedural programming languages,
is a sufficiently new paradigm and appears to be advancing sufficiently
rapidly so as to make the large investment required in adopting and
building in the current version unrewarding.

I am well aware that Haskell-2 is not going to be a standard for quite
some time.  However people were building C++ libraries long before the
standard was defined.  

In asking about e.g. generic programming, arrows, etc, I am not suggesting
we converge on a standard right now.  I am trying to explore how much 
stock the language implementors currently put into these proposals.  So I
know which to bet on.  H98 as it stands does not add enough value over the
alternatives to be worth using for real projects.  Haskell's future does.

-Alex-

___________________________________________________________________
S. Alexander Jacobson                   Shop.Com
1-212-697-0184 voice                    The Easiest Way To Shop







On Thu, 9 Sep 1999, Michael T. Richter wrote:

> 
> I'd like to second this view of things.  I'm interested in learning
> functional programming to ultimately actually use functional programming in
> my professional life.  I'm entirely uninterested in bleeding-edge
> theoretical advances except as an interesting snapshot of the future to
> come.  I am very much interested in actually being able to use the skills
> I'm developing here for making, say, Yet Another Spreadsheet Program.  :-)
> 
> --
> Michael T. Richter    <[EMAIL PROTECTED]>    http://www.igs.net/~mtr/
>           PGP Key: http://www.igs.net/~mtr/pgp-key.html
> PGP Fingerprint: 40D1 33E0 F70B 6BB5 8353 4669 B4CC DD09 04ED 4FE8 
> 











Reply via email to