to understand and extend • Consistent (no “magic”) • Well documented • Noob friendly • Without ambiguities (syntax & semantics) 3 Friday, September 30, 11
libraries, possibly fancy-fied if used a lot • Explicit syntax for calling out to Ruby methods • Namespacing of Fancy methods 16 Friday, September 30, 11
• Testcases for all of Standard Library and expected runtime behaviour of the language • Helped a lot during migration from old C++ implementation to Rubinius 26 Friday, September 30, 11
API • Subclassing and extending • C-extension based parser (bison) • Coming soon: kpeg based parser • Most syntax gets compiled into dynamic message sends that are executed at runtime 35 Friday, September 30, 11
OO Pattern Matching that preserves encapsulation (patterns branch) • Keyword patterns • Pattern literals • Dynamic bindings See: Felix Geller, Robert Hirschfeld and Gilad Bracha: Pattern Matching for an Object-Oriented Dynamically Typed Programming Language 45 Friday, September 30, 11
(dynamic) language implementations • Innovations & interesting ideas within the Ruby ecosystem • Composability by simplicity and homogeneity • Explore, fail, retry - win! 48 Friday, September 30, 11
Piumarta: Building Your Own Dynamic Language* • http://createyourproglang.com/ * http://www.youtube.com/watch?v=cn7kTPbW6QQ 49 Friday, September 30, 11