The discussion about heap dumps, binary persistent objects, etc.
continues.

S. Alexander Jacobson:

> Java comes with a serialization mechanism that allows the user to save
> and load all objects ...


> Object databases, like PSE, provide caching and indirection facilities
  ...

> Relational databases forces the programmer to transalte data structures
> into a relational format and then use JDBC to store/retrieve them.
  ...

> I realize that implementing these options is easier in languages that are
> pointer or handle based rather than in languages that treat all objects as
> literals, but if Haskell does not provide a way to use facilities like
> these, it will not be able to compete in the space of professional
> production quality languages.
> 
> -Alex-


???
Compete in the space of professional production quality languages?

I am sorry, but if one day the Haskell, or any other language creators
decide to include *everything* into their language, it will be The End
of it.

Of course, Scheme which has an internal compiler is able to store on
the disk the bytecodes, Python gives the user the full access to the
data internal structures an permits to 'pickle' or to 'marshal' some
modules. 

But is this, which makes them "professional production quality languages?
You cannot do it - normally - in "C" without special add-on libraries,
and saving internal data has nothing to do with storing and dynamic 
loading of the compiled code.

I am afraid that storing under binary format the internal objects under
user control might be difficult in a pure lazy language. There is no
difference between closures and their reduced results, the referential
transparence should be maintained. Moreover functions in Haskell do
not belong to Eq.

So, it could be done - if at all - only on the implementation level, totally
transparent for the user, just a kind of virtual memory. Is it really
vital for a typical Haskell application? But I am not an expert...


Jerzy Karczmarczuk
University of Caen, France.


**************************

PS. Could somebody inform me what is the current status of
multi-parametric classes? Concretely (for example) I would
like to construct a generic Universal Parser

 type Uparser a c = [c] -> [(a,[c])]

which consumes any stream and produces any result. The classical
combinators do not care about [c] being character strings, but
with two parameters it is not possible to apply directly the magic 
word Monad. Of course, my problem is not veeery dramatic, but
those multiparametric classes bother me already some time. 


Reply via email to