From: Brad Ediger Date: 2008-04-02T07:00:48+09:00 Subject: [ANN] New Ruby Implementation - RBXML Ruby is a wonderful language, but its syntax has some shortcomings. Inspired by Perl, the syntax of Ruby requires many special cases and is difficult to parse by anything but a full Ruby interpreter. We seek to fix this issue with a new, unambiguous syntax for Ruby: RBXML. "Business Reporting and XML go hand in hand. I plan to convert Ruport to RBXML as soon as I can!" -- Gregory Brown, Ruby Reports maintainer =========== Consider the following Ruby code. While it is certainly concise, it achieves this goal through use of obscure symbols such as . and |. This makes it difficult to read, and more importantly, difficult to parse by machine. class Integer def factorial (1..self).inject(1) {|p, x| p*x} end end Rubyists talk a lot about metaprogramming, but how are you supposed to introspect on a language like that? Some projects try to work around these limitations by letting Ruby code introspect on itself; however, the result can be unwieldy. Why reinvent the wheel when XML has been around for years? Consider the much more regular and understandable syntax in RBXML: inject 1 self 1 * p x Just as languages in the Lisp family represent their parse trees with s-expressions, this regular syntax represents the parse tree directly, with only a small bit of XML parsing. Rubyists now have the advantage of not having an extra layer of syntax between them and their concepts. =========== To read more, visit: =========== Brad Ediger brad@bradediger.com