
christopher diggins wrote:
----- Original Message ----- From: "Joel de Guzman"
At this point it seems we have nearly identical tools, with different syntax. Unimperative syntax is quite deliberate, since I wanted it to be recognizable to programmers from backgrounds like Haskell, Lisp, Scheme, etc. It sounds like you are pleased with the Rave syntax as well, and won't be changing it anytime soon neither. It seems silly that we would be working on two tools with so much similarity. Can you think of any way we can help each other out, and perhaps reach some common ground?
I'll try to resurrect Rave and polish it. It's been ehm, almost 2 years ago. It was a fun-only project, but I got too carried away (e.g. it even had big-nums and the whole numeric tower!), alas it never got finished. I'm quite sure that the common ground is the low level (dynamic) 'object' mechanism. There's fine detail going on here such as dealing with type promotion (e.g. int to real), multiple dispatch (e.g. how to deal with, say int+real, bignum+int), etc. I even went as far as providing XDR binary serialization of objects, so, you can send objects over the net or save as a file. The idea is that since a function is merely an object that you can save to file, the scheme can be an alternative to the usual bytecode. A function saved to a file can be loaded and executed. Pretty cool, IMO. Whether it's compiled by the c++ compiler, or compiled by a script parser (using Spirit of course), we don't really care. Cheers, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net