[racket] Tools for new languages

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Jul 12 13:05:25 EDT 2011

As much as I welcome the idea of another experimental language in DrRacket, 
I need to warn you of the potential dangers in your particular case. What I 
mean specifically with 'your' case is the choice of 'ugly' syntax for Grace. 
You seem to be determined to use a non-S-expression language (which I call
'ugly' -- excuse my prejudices) and this harbors many hidden dangers. 


1. Racket would be an excellent vehicle for experimenting with the language. 
To do that, I would design an S-expression syntax, create a language that 
expands your chosen restriction into Racket plus class.ss and restricts it 
appropriately, too. At that point you have a bunch of things for free: 

 -- libraries (as many and as few as you wish)
 -- teachpacks (see universe and its adaptation to OO)
 -- an IDE with a repl 
 -- a growth path 

2. Once you're happy with the language,  I would equip it with an ugly syntax. 
You can create a standalone executable and run it in Emacs for experimentation
with syntax. 

3. When you like the whole package, you have a complete and executable spec 
of Grace. And you got that with a relatively small amount of effort. You can 
use this implementation as a standard for running tests on the next implementation. 

;; --- 

4. Putting the Grace language with ugly syntax into DrRacket will pose the following

-- you need a really good indenter for ugly syntax 
-- you need autocomplete for a presumably typed language that competes with Eclipse 
-- you need a class/method viewer to compete with the Java-Eclipse monoculture 
	because Grace is exclusively OO and wishes to bring across OO stuff 

You need to know as you embark on this path that ProfessorJ lacked all of this. 
While these missing pieces aren't the only reason we abandoned ProfessorJ, they 
contributed a lot to our overall problem with ProfessorJ. 

;; --- 

No matter what you decide, good luck and you're welcome to ask for help on this list. 

-- Matthias

Posted on the users mailing list.