<div dir="ltr"><div>Hello Everyone!</div><div><br></div><div>I'm happy to announce the official release of the Stanza programming</div><div>language! Stanza is a new optionally-typed general purpose programming</div><div>language from the University of California, Berkeley. It was designed</div><div>to help programmers tackle the complexity of architecting large</div><div>programs and significantly increase the productivity of application</div><div>programmers across the entire software development life cycle. You can</div><div>check out the website here: <a href="http://www.lbstanza.org">www.lbstanza.org</a>.</div><div><br></div><div>Gambit Scheme was instrumental in the design and development of</div><div>Stanza. The first prototype for Stanza was hacked together in a month</div><div>as a collection of Scheme macros. This enabled us to experiment with</div><div>many of the organizational techniques of multi's and methods within</div><div>Stanza's unique object system. Having a REPL at our fingertips meant</div><div>that we could evaluate multiple designs per day. Just change the macro</div><div>definition, and then try out the revised language in the REPL! </div><div><br></div><div>The second prototype for Stanza was written entirely using Gambit and</div><div>used Scheme as the target language. This enabled us to fine-tune all</div><div>of the semantics of Stanza without having to deal with the details of</div><div>code generation. Two features of Gambit/Scheme was critical. First, a</div><div>dynamically typed target language is much much nicer as a target</div><div>language than a statically typed one; *especially* if the language</div><div>you're compiling already has its own type system. Second, Gambit's</div><div>amazingly fast continuations implementation enabled us to design all</div><div>of Stanza's coroutine system by first expressing it through</div><div>continuations, and optimizing the implementation only after the</div><div>semantics were figured out. If you're doing any sort of experiment</div><div>with control flow, full continuations are a must!</div><div><br></div><div>Finally the bootstrap compiler for Stanza was written in Gambit and</div><div>generated x86 assembly code. And now, at version 0.9.0, Stanza is</div><div>entirely self-hosted. Though Gambit is no longer a part of the</div><div>implementation of Stanza, it had a great influence on its</div><div>design. Stanza is essentially a (highly-decorated) Scheme at heart,</div><div>with an optional type system layered on top, coupled with an object</div><div>system built on multimethods. Stanza's interface to C took a lot of</div><div>cues from Gambit's FFI system as well.</div><div><br></div><div>So thanks Gambit! And also thanks Mark for being so encouraging when I</div><div>ran into you at ICFP 2013 and for patiently explaining Gambit's</div><div>continuation implementation to me.</div><div><br></div><div>We've been using Stanza internally at Berkeley for about two years</div><div>now, and we've designed a hardware language called FIRRTL, a teaching</div><div>language called Feeny for teaching a graduate course on virtual</div><div>machines, and a tool for automatically generating circuit boards for</div><div>robotics. Now, Stanza is stable and mature enough for us to feel</div><div>confident to share it with everyone. We hope you'll check it out!</div><div><br></div><div>   -Patrick</div></div>