Software Engineering Radio: DSL Development in Ruby

Software Engineering Radio

Podcast (MP3): Download Hosts: Markus Guests: Obie Fernandez Recording venue: JAOO 2006 In this episode, we're talking to Obie Fernandez about agile DSL development in Ruby. We started our discussion by defining what a DSL is, the difference between internal and ext...

Running time
0h49m
File size
46.00MB

Download Original File | View original post

Episode synopsis

Podcast (MP3): Download

Hosts: Markus 

Guests:

Obie Fernandez

 

Recording venue:

JAOO 2006

In this episode, we're talking to Obie Fernandez about agile DSL development in Ruby. We started our discussion by defining what a DSL is, the difference between internal and external DSLs as well as the importance of the flexibly syntax of the host language in order to make DSLs worthwhile. We then looked at a couple of real world examples for DSLs, specifically, at Business Natural Languages. We then progressed to the main part of the discussions, which centered around the features of Ruby that are important for building DSLs. These include the flexible handling of parentheses, symbols, blocks as well as literal arrays and hashes. We then discussed Ruby's meta programming feautures and how they are important for building DSLs: instantiation, method_missing callback, class macros, top level
functions and sandboxing. Features like eval, class_eval, instance_eval and define_method are also important for DSLs in
Ruby, as well as using alias_method for simple AOP.

Links

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“There are only two kinds of languages: the ones people complain about and the ones nobody uses” - Bjarne Stroustrup