Ruby Mobile Ports
I'm now learning Ruby because I saw it's a very powerfull language, but now I want to know what mobile ports of Ruby we have and for what devices.
PS: I have a HTC S711, HP iPAQ Hx2, Nokia E61, Nokia 开发者_JS百科N95, Palm T|X, Palm Z22, HP Jornada 720..., it's better if I can use it on these platforms, but I'm open to buy other devices, as I'm a mobile addict.
There's a couple of possibilities:
- JRuby can run pretty much anywhere where there is a JVM, which means pretty much anywhere except iPhone. (Apparently, there's even JVM implementations for Windows Mobile.) Note that you need a special stripped-down version for JME-CDC (Java Platform Micro Edition - Connected Device Configuration), which hasn't been updated in a while. However, if you ask nicely, someone will probably at least help you build your own (it basically involves deleting stuff from the main version, recompile, test, delete more, recompile, test, ...).
- JRuby can also run on Android. In fact, there's three versions available: JRuby is part of the Android Scripting Environment (ASE), and then there's JRuby lead developer Charles Oliver "Headius" Nutter's Ruboto. The very latest addition is JRuby for Android by Pascal Chatterjee.
- MRI was once ported both to Symbian S60 (Nokia) and Windows CE, although I have no idea how hard that is to get working, how current these ports are, whether they are integrated into the official sourcetree or are maintained seperately (if at all) nor if it also applies to YARV. There is a Symbian subdirectory in the YARV sourcecode which was last updated just 5 days ago, and a Windows CE subdirectory in the MRI sourcecode which was updated 6 months ago, though.
- Apparently, MRI also runs on the iPhone.
- YARV was recently ported to Android.
- It looks pretty likely that MacRuby will, in the future, run on the iPhone. The MacRuby developers all either work for Apple or have signed NDAs and are therefore not allowed to say anything, but when one of the lead developers was asked what the new Ahead-of-Time compiler in MacRuby 0.5 would be useful for, he oracled something like "running Ruby on resource-constrained ARM-powered pocket-sized mobile internet devices with security restrictions regarding interpreted code" or something similarly cryptic.
- The same applies to IronRuby: since IronRuby runs on Silverlight and Silverlight is Microsoft's new phone platform (or everything-platform, really), I wouldn't be surprised to see IronRuby on at least the new Windows Phone 7. [EDIT: Actually, it already does, IronRuby on Windows Mobile 7 was demonstrated at MIX10.]
- In the meantime, the Rhodes mobile framework by Rhomobile allows you to develop cross-platform (iPhone, Windows Mobile, RIM (Blackberry), Symbian (Nokia) and Android) native mobile applications using HTML as the UI. The way it basically works, is that you write your UI in HTML which gets displayed by the native browser control that is built into the phone, and the Rhodes framework then supplies the necessary CSS and JavaScript to make it look and feel "native". However, it's not a web application: the webserver that serves the HTML also runs on the phone, as does the Ruby interpreter in which you run your models and controllers. (See this answer I gave to another question for more details.) Even if you don't want to use their framework, you can still steal their different Ruby interpreters for the different platforms. E.g., they actually use XRuby, not JRuby for their Blackberry port and YARV via the Android Native Development Kit for their Android port.
I have tried Ruby on Symbian about a year back, it was easy to get going but was a bit limited in how it integrated into the phone. I see the project have progressed a lot since then. I will definitely try it out again.
Coming soon: MobiRuby is an upcoming (Summer 2012) project using the mruby interpreter. It's iOS specific, but I wouldn't be surprised to see mruby use elsewhere in the coming months.
精彩评论