[Haskell-cafe] Haskell for Physicists

Roman Salmin roman.salmin at gmail.com
Fri Dec 4 11:49:39 EST 2009

On Fri, Dec 04, 2009 at 01:43:42PM +0000, Matthias Görgens wrote:
> >  _So my strong opinion that solution is only DSL not EDSL_
> Why do you think they will learn your DSL, if they don't learn any
> other language?
 I didn't said that they didn't learn any language. They learn languages,
 only part that is necessary to do particular task.
  f.e. ROOT CINT(C++ interpreter) didn't distinguish object from pointer to
object, i.e.
  statement h.ls(); works as well as h->ls(); independently of either h has
type TH1F or TH1F*,
  so beginning ROOT user didn't need know what is pointer, memory management
helps him.
 But early or latter one need to write more complicated code,
 then one need to spend months to reading big C++ books, and struggling with
compilers errors, segfaults etc..^(1) (instead of doing assigned task!) or,
what is more usually, trying Ad hoc methods for writing software.
 So people will learn DSL because:
  1. DSL is simpler than general purpose language
  2. DSL describe already known domain for user, (one probably don't need
monads, continuations, virtual methods, template instantiation etc...etc...)
        so learning is easy, and didn't consume much time.

>  And if your DSL includes general purpose stuff, like
> functions, control structures, data structures, you'll re-invent the
> wheel.  Probably porly.
 You didn't need to reinvent the wheel, because you DSL compiler can
produce Haskell code:
   DSL -> General Purpose Language -> Executable
 And ever if you do, it saves allot of time of experts.


(1) In Haskell this probably will sound like: reading allot of small
tutorials and articles, grokking monads,
   struggling with type-check errors, infinite loops, laziness, etc...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091204/07be1bb0/attachment.html

More information about the Haskell-Cafe mailing list