BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Metaprogramming Content on InfoQ

  • Metaprogramming Roundup: Speed, Ruby Macros, Screencasts

    A look at what to watch out for in metaprogramming when it comes to speed, and: how ParseTree can be used to implement LISP/Scheme-style Macros in Ruby and avoid some of the issues of Open Classes.

  • Are Business Analysts Ready to Become Programmers?

    Microsoft seems to think so as they prepare to deliver on the Oslo vision. Back in November 2007 Doug Purdy made a veiled reference to a new project in development calling it "Emacs.NET". This fueled rampant speculation far from the intended mark.

  • Presentation: Business Natural Languages Development in Ruby

    In this presentation, Jay Fields introduces his concept of Business Natural Languages (BNL). BNLs are a type of Domain Specific Language, designed to be readable by any subject matter expert, which allows to create maintainable specifications and documentation. The example languages are implemented using Ruby.

  • Should you really learn another language?

    Blogger Gustavo Duarte cursed in church when he said that learning new programming languages is often a waste of time. He said that "In reality learning a new language is a gritty business in which most of the effort is spent on low-value tasks with poor return on time invested.". But not everyone agreed.

  • 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.

BT