InfoQ Homepage Metaprogramming Content on InfoQ

  • MountainWest RubyConf 2008 Videos

    The videos from MountainWest RubyConf 2008 are all available for downloading from the Confreaks website. We selected a few videos and provide an overview and some entry points into the talks.

  • Article: Building Domain Specific Languages on the CLR

    Ayende Rahien describes how to build internal DSLs on the CLR. He compares different .NET languages as suitable host languages for DSLs and presents Boo as an ideal candidate due to its meta programming facilities, flexibility, and performance.

  • Using JRuby to generate Code for the JVM

    While JRuby's performance keeps increasing, there are still algorithms that are faster if implemented in Java. We look at different approaches to solve this: RubyInline for JRuby, generating bytecode with a JRuby DSL and a new subset of Ruby called Duby.

  • Using ParseTree for LINQ-style queries and extracting metadata

    Whether it's LISP macros or LINQ's expression trees - access to the AST of code is a powerful tool. We look at how ParseTree allows this in Ruby - and how it's being used in libraries like Ambition, Sequel and the web framework Merb.

  • Ruby 1.9 - When Will It be Production Ready

    Ruby 1.9 is out - but it's not yet intended to be used in production systems. The release tag had one effect: more developers are actually giving it a spin and try to run their applications and libraries and update them for the new version. We looked at how well Ruby 1.9 fares in this aspect.

  • InfoQ Presentation: MetaProgramming Ruby

    InfoQ presents a video of Dave Thomas' QCon London presentation "MetaProgramming Ruby". Dave presents the basic Ruby language features for implementing Ruby on Rails features such as has_many. Class methods, open classes, Mixins, and more tools for metaprogramming are demonstrated and explained.

  • Article: Using Singleton Classes for Object Metadata

    We have another feature article to publish by InfoQ's own Werner Schuster where he elegantly explains a way to annotate object graph with metadata to solve complex problems.

  • Ruby Shoes for lightweight GUIs, graphics and animation

    Ruby GUI toolkits are a dime dozen - but Why The Lucky Stiff managed to create one with a novel approach. Ruby Shoes facilitates animation, 2D graphics, and simple interaction. We take a look at its distinguishing features.

  • Three approaches to JRuby GUI APIs

    Ruby already has a host of bindings for various GUI toolkits. JRuby now allows the use of Java's Swing and there are already a few libraries trying to make Swing less tedious to work with. We look at the approaches taken in Profligacy, Cheri, and the JavaFX Script clone Swiby.

  • JMX the Ruby way with jmx4r

    Monitoring JVMs just became easier with jmx4r, a library that allows to easily access JMX MBeans with JRuby. If used from jirb, the interactive Ruby shell, this even allows to automate bulk changes or queries.

  • Aaron Erickson on LINQ and i4o

    In an interview with InfoQ, Aaron Erickson introduces his new LINQ extension Indexes for Objects (i4o). Indexes for Objects allows for fast lookup against in-memory collections while retaining the LINQ syntax and semantics. He also discusses how expression trees interact with LINQ and how they can be leveraged in other scenarios.

  • What's a Ruby DSL and what isn't?

    "Domain Specific Language" (DSL) is a popular buzzword in the Ruby community. Recently, however, doubts about the use of the term arose, particularly because it tends to be used even for ordinary APIs, simply because Ruby allows to omit parentheses. We look at some of the style debates.

  • Edit Expression Trees with MetaLinq

    In the current implementation of .NET 3.5, expression trees are immutable. Developers wishing to edit one have to manually build new expressions by copying existing ones. Aaron Erickson's MetaLinq allows developers to side-step this by providing a way to convert expression trees into mutable representations and back again.

  • Article: Adding Properties to Ruby Metaprogramatically

    Werner Schuster walks us through a simple example of adding Java-style properties support (declarative getters, setters and change listeners) to Ruby classes via a Mixin by using elements of Ruby meta-programming. Introduces ideas for enhancement using principles of design-by-contract and pluggable type systems.

  • Ruby Metaprogramming Techniques

    Ola Bini looks at several common metaprogramming techniques in Ruby.


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.