Interesting post...having little knowledge of accounting, I found this
background informative and useful for understanding the less trivial
implementations of the Money Transfer example.
As to creating an
iOS app, the idea of using Ruby on Rails to compile down to native
Objective-C seems a little strange to me. Rails is designed to have most
of the application logic on the server side whereas in a mobile app
almost all the code should be on the client side; I would think of Rails
more of a tool for creating web services that the app could use, if
there's a need to retrieve data from a server (or persist it to the
server).
Depending on how many native phone features he plans to
use (like geolocation or interaction with the camera), I would recommend
that he look into
PhoneGap and
Titanium.
Both tools allow mobile apps to be written using web technology (HTML5, CSS, JavaScript). With PhoneGap, if you want a native look and feel, you have to emulate it using CSS, whereas with Titanium you can actually use native UI controls and menus, but still interact with them using Javascript and in the end it will all be compiled down to native code. A major advantage of using these tools is that your app will work not only on iOS, but also on Android, Blackberry, etc.
In my opinion Javascript is an underrated language, but it's also true that it's not nearly as mature as Ruby for application development. However, there's CoffeeScript, which has a good bit of Ruby-like syntax, which compiles down to Javascript, and there's also TypeScript from Microsoft which allows you to write strongly-typed Javascript (or not; it's always up to the programmer) that also includes some of the newer ECMAScript features that aren't yet available in browsers.
Obviously method injection is very easy in Javascript, and it's also relatively simple to do basic source transformation for injectionless DCI, as Egon demonstrated in
this thread. I personally have an interest in further pursuing source transformation in Javascript and TypeScript, but it will probably be a little while before I have time to work on it.