Ubuntu running on one computer is really no different from Ubuntu running on another computer, whether one of the computers is called a "phone" or not :P
Things to consider for your applications:
- Does this application rely on specific video libraries? No existing Android phone has an ATI video chip, for example, as far as I'm aware.
- Does this application rely on specific input methods or other hardware? Not all Android devices support peripherals. Of course, most have Bluetooth so Ubuntu should be able to manage a Bluetooth keyboard, for example, but I'm not sure whether a phone's Bluetooth stack could be so different as to not work in Ubuntu.
- Does this application rely on the x86 architecture? Most (all?) Android devices use the ARM architecture.
I would suspect that Emacs would be fine if you compiled it for the chipset of whatever device you used. Ruby might be more complicated -- maybe it relies on specific x86 instructions, I haven't really studied how interpreted languages work in that regard -- but maybe not.
You're making me want to try Ubuntu on my phone so I can better answer these questions :P