# New Ruby Implementation - RBXML

**URL:** <https://www.ruby-forum.com/t/new-ruby-implementation-rbxml/133600>\
**Category:** Ruby\
**Created:** [April 2, 2008, 12:02am UTC](https://www.ruby-forum.com/t/new-ruby-implementation-rbxml/133600 "2008-04-02T00:02:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![bradeck](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/7cd45c/32.png) [@bradeck](https://www.ruby-forum.com/u/bradeck)\
**Post date:** [April 2, 2008, 12:02am UTC](https://www.ruby-forum.com/t/new-ruby-implementation-rbxml/133600/1 "2008-04-02T00:02:38Z")

</div>

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 B., Ruby Reports maintainer

\<[http://www.bradediger.com/blog/2008/04/a\_modest\_syntax\_proposal\_rbxml.html](http://www.bradediger.com/blog/2008/04/a_modest_syntax_proposal_rbxml.html)

> 

[http://tinyurl.com/23elz5](http://tinyurl.com/23elz5)

===========

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:

\<[http://www.bradediger.com/blog/2008/04/a\_modest\_syntax\_proposal\_rbxml.html](http://www.bradediger.com/blog/2008/04/a_modest_syntax_proposal_rbxml.html)

> 

[http://tinyurl.com/23elz5](http://tinyurl.com/23elz5)

===========

Brad E.  
removed\_email\_address@domain.invalid
