From: Bruce Hoult
Subject: Re: Protoype in one language, then code in another?
Date: 
Message-ID: <bruce-77777B.21031427012003@copper.ipg.tsnz.net>
In article <······················@news.esedona.net>,
 Mark Watson <·····@markwatson.com> wrote:

> This may sound odd, but I found myself recently
> using VisualWorks Smalltalk to get something tricky
> working that had to be written ultimately in another
> language (Java).
> 
> I used to also do this occasionally in Lisp (e.g.,
> in the 1980s, I prototyped all 12 of the SAIC ANSim
> neural network paradigms in Lisp, then rewrote
> everything in C for Windows 1.0).
> 
> Perhaps I just have odd work habits, but I was
> wondering if other people do the same sort of thing?

I used to a lot, until I started using Dylan [1].  Now I can prototype 
quickly *and* get fast code in the same language.  Even better, you 
don't have to make the stages distinct, so as a given thing starts to 
get slow enough to be annoying as you prototype you can right away do 
whatever is necessary to get it fast, without impacting the rest of the 
code.

Often this will be just adding a few sealing and type declarations, but 
you can also transparently change things such as data representations 
completely, thanks to uniform syntax for all collection types (including 
user-defined ones) and slot/field access having the same syntax as a 
method call.  It's (so far, in my experience) *always* much simpler and 
faster to tweak within the language than to reimplement it in C.

-- Bruce

[1] http://www.gwydiondylan.org
    http://www.functional-objects.com