<story><title>Rebuilding the Racket Compiler with Chez Scheme</title><url>https://notamonadtutorial.com/rebuilding-the-racket-compiler-with-chez-scheme-210e23a69484</url></story><parent_chain></parent_chain><comment><author>patterns</author><text>I wonder whether the migration to Chez Scheme will improve the performance of Dr. Racket which consumes a lot of memory and feels very sluggish.&lt;p&gt;I have been experimenting with Racket for quite a while and I appreciate the effort that went into making the language extensible. That being said, I wish that the community would have embraced &amp;quot;object-oriented&amp;quot; techniques for building the VM - Ian Piumarta&amp;#x27;s COLA (Combined Object-Lambda Architecture) comes to mind [1]. I think this would have saved them a lot of performance troubles (but this is mere speculation) and would make the system far more flexible and pleasant to use.&lt;p&gt;While it&amp;#x27;s comforting to have a very powerful macro system at your fingertips to change the semantics of the language when needed, many of the macros in the base language and libraries could be eliminated with a more convenient &lt;i&gt;default&lt;/i&gt; notation for closures and message-passing (to objects simulating control structures like in Smalltalk).&lt;p&gt;Racket has one of the best module systems I have worked with but modules cannot be (easily) parameterized. Research on systems such as Self and more recently Newspeak [2] gives ample of demonstration of the benefits (conceptual integrity, security) of having modules as objects.&lt;p&gt;What Racket also lacks is a good meta-object system with highly reflective capabilities (of say a CLOS or Smalltalk system). This makes it difficult to build tooling such as inspectors or browsers.&lt;p&gt;I hope that in the future these issues will be addressed.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.piumarta.com&amp;#x2F;papers&amp;#x2F;colas-whitepaper.pdf&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.piumarta.com&amp;#x2F;papers&amp;#x2F;colas-whitepaper.pdf&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;newspeaklanguage.org&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;newspeaklanguage.org&amp;#x2F;&lt;/a&gt;</text></comment>
<story><title>Rebuilding the Racket Compiler with Chez Scheme</title><url>https://notamonadtutorial.com/rebuilding-the-racket-compiler-with-chez-scheme-210e23a69484</url></story><parent_chain></parent_chain><comment><author>pmoriarty</author><text>&lt;i&gt;&amp;quot;Chez Scheme is one of the oldest Scheme implementations, and its evolution informed many parts of the Scheme standard through R6RS. (Racket&amp;#x27;s influence on the Scheme standard, in contrast, is limited to aspects of the R6RS library design.)...&amp;quot;&lt;/i&gt;&lt;p&gt;Why did Chez and Racket embrace R6RS, a standard widely rejected by the rest of the Scheme community?&lt;p&gt;Also, why did Racket choose Chez over some other high-performance Schemes, like Chicken?&lt;p&gt;Finally, how many Racket and Chez users are there compared to those of other Schemes?</text></comment>