> On Mar 14, 2019, at 1:26 AM, Alex Harsanyi <alexharsa...@gmail.com> wrote:
> 
>  Would it be possible to join forces
> and merge these projects so that we end up with one library that servers
> multiple purposes equally well? 


1. I have been at this point many times. 

A big example is the testing libraries that we use for teaching (test-engine/) 
vs production programming (rackunit/). Initially I wanted the former to compile 
to the latter, but because we need John’s stepper to work and we focus on 
DrRacket and we have pedagogic constraints, that just didn't work out. 

Another example would be drawing and event handling, see pict and images and 
big-bang vs the GUI tool box. They are even further apart than the testing 
libraries. 

2. So Matt’s injection of two perspectives is a really good one. 

Still it might make sense to think of the one for devs as a scaled-up version 
of those for pedagogic setting and vice versa. This can happen at 

— the conceptual level: let me introduce concepts in CS1 or my high school 
course that are useful later when you use Real Racket
— the implementation level: the pedagogic one several restricts the dev-focused 
one and improves the error messages severely. 

3. Which brings me to to the biggest obstacle. 

The key difference between the teaching languages and Racket is that the former 
assume that 

— beginners make mistakes 
— languages must explain mistakes 
— beginners better understand these explanations 

This is hard to get right because implementations bake in assumptions about who 
the users are w/o (usually) paying attention to this idea. Whoever works on the 
pedagogic version, consider linking in the rewriter library so you benefit from 
Guillaume Marceau’s research: 

 (require lang/private/rewrite-error-message) 
 (get-rewriten-error-message x)


— Matthias

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to