Library podcasts

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

Comments

Leave a comment

Sign in or Join us (it's free).

Events coming up

  • Nov 27

    Agile Specifications, Bdd And Testing Exchange

    London, United Kingdom

    Following the excellent response to our Agile Testing and BDD community events and courses during the last 10 months, Skills Matter is proud to organise the first, annual Agile Specification, BDD and Testing eXchange - an intensive and intimate event aimed at bringing together leading thinkers and passionate community members. The aim of this eXchange is to promote awareness and adoption of modern Agile Testing techniques and ideas.

Related discussion

Want to stay in touch with what's going on? Follow us on twitter!