This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: DHARMI project


Miroslav Silovic <silovic@zesoi.fer.hr> writes:

> Eric Wolf <panda@erols.com> writes:
> 
> >   The aim of this project is to create a language that is well suited to
> > writing scientific models,  and hooking them up like tinker-toys.  The
> > hooking up can done via command line (included in every programs'
> > interface) or  visually via drag and drop.  I do not intend for this
> > project to rely on the GUI,  but  I still want it to have a rather nifty
> > one.

This is an interesting idea.  Existing programs (MATLAB, Octave,
Yorick) seem to be very command-line oriented.  

Using Guile for this task means that you have access to a pile of
libraries people have written wrappers for.  In particular, you might
want to look at the GTk wrappers and at CHRLIB, a matrix math
library.  Oh, and Jacal.  Manipulating expressions is handy.

An added benefit of using guile is that you have a good selection of
language construction tools.  There are lex and yacc equivalents at
the scheme level.  I would recommend writing your application in
scheme, but making another language binding (perhaps even the existing
CTAX) for those who want (eg) infix expressions. 

> > I want your advice on whether or not this can be a viable and
> > worth-while project.

Definitely.  A project to take all the good free tools for
science/math and put them together in a handy form for people who
don't code much?  Definitely useful.  Filling the same niche as
MATLAB, but doing it better. 

> This sounds like a GREAT idea. IMHO, Guile is very suited to the task,
> for the following reason:
> 
> 	1 - most scientifically relevant datatypes are already in place
> 	    (including arrays of arbitrary dimension, with real or
> 	     complex elements)

With the inclusion of JACAL, expressions are also available.  A very
scientifically useful data type. 

> 	2 - if you look around a bit, you're very likely to find major
> 	    parts of your project already done or in a fairly advanced
> 	    state of development by other groups
> 
> 	3 - Guile treats its data as 'chunks' - no fuss about
> 	    type mismatches, but everything checks the input types
> 	    where it's supposed to be checked.

I agree.  Dynamic languages are much more suitable for interactive
use.

> Finally, I /think/ I read about somebody porting SciLab to Guile.
> SciLab or Octave, if ported on top of Guile, would give you a major
> part of the functionality needed for scientific modelling (and it
> shouldn't be too hard for you to do yourself).

Octave could be made to run on guile, with some effort.  I don't
think the MATLAB language is worth preserving.  The Yorick language is
better, but rolling your own is also a good option.  And a visual
language is interesting in and of itself (by visual I mean writing
programs by drawing dataflow diagrams, or some such).

Andrew
aarchiba@csclub.uwaterloo.ca