Can or will Rebol run on Windows Phone 7? - windows-phone-7

I have an iPhone, an Ipad, don't have yet windows phone 7, but will get it right now if rebol can run on windows phone 7 so does/will rebol support it :)
Note: rebol could run on windows mobile so my question : will it continue to run on next version ?
Well if they don't release NDK, I will buy a tablet with classic Windows 7, that for sure can run rebol and a bunch of softwares I already have :)

When the ARM core library will be compiled, it may be possible for someone to port the host-kit to many new hand-held devices including Windows Phone 7, Android and even the iPhone (since they relaxed their TOS).
The ARM library is already high on the wish list of many people who are willing and able to work on the host-kit part of REBOL 3.
With 5 host-kit platforms already maintained by different developers (some indie) already at different levels of completion, the answer is not IF but rather WHEN will R3 run on these new exciting devices.
IMHO R3 still needs a little more stability work for mass porting, but in the last 2 months, I think R3 has matured to levels that are starting to catch up to R2 in many areas.
One good thing is that the extension API is proving to be highly effective and fast. Its design is also stabilizing which is a good sign of the current maturity of the host-kit.
A caveat
One must understand that many mobile platforms have strict development licenses and some even have hard to integrate APIs into which executables must try and link in.
Many don't even want binaries to work directly and the road to integration isn't meant to be easy on purpose. AFAIK winphone7 is probably the easiest one of the bunch, so don't despair.

Not until Microsoft or a third party releases a "native development kit" (NDK). The same problem hampers others, such as Firefox, who cannot readily port their apps to Silverlight, XNA or the .NET CF (which are the only Microsoft-supported development platforms at the moment).

Related

How to run xcode or playground on Windows? [duplicate]

Want to improve this post? Provide detailed answers to this question, including citations and an explanation of why your answer is correct. Answers without enough detail may be edited or deleted.
Is there any way to tinker with the iPhone SDK on a Windows machine? Are there plans for an iPhone SDK version for Windows?
The only other way I can think of doing this is to run a Mac VM image on a VMWare server running on Windows, although I'm not too sure how legal this is.
It's certainly possible to develop on a Windows machine, in fact, my first application was exclusively developed on the old Dell Precision I had at the time :)
There are three routes;
Install OSx86 (aka iATKOS / Kalyway) on a second partition/disk and dual boot.
Run Mac OS X Server under VMWare (Mac OS X 10.7 (Lion) onwards, read the update below).
Use a framework and/or toolset, which allows developing on Windows, like Delphi XE4 with the mac-in-cloud service, which can build without MacOS device need. This is a commercial toolset, but the component and lib support is growing.
Other honorable mentions are Flutter, Xamarin and similar; which may at end need actual MacOS device for final build (but you can test on Android till then, as they're cross-platform).
The first route requires modifying (or using a pre-modified) image of Leopard that can be installed on a regular PC. This is not as hard as you would think, although your success/effort ratio will depend upon how closely the hardware in your PC matches that in Mac hardware - e.g. if you're running a Core 2 Duo on an Intel Motherboard, with an NVidia graphics card you are laughing. If you're running an AMD machine or something without SSE3 it gets a little more involved.
If you purchase (or already own) a version of Leopard then this is a gray area since the Leopard EULA states you may only run it on an "Apple Labeled" machine. As many point out if you stick an Apple sticker on your PC you're probably covered.
The second option is more costly. The EULA for the workstation version of Leopard prevents it from being run under emulation and as a result, there's no support in VMWare for this. Leopard server, however, CAN be run under emulation and can be used for desktop purposes. Leopard server and VMWare are expensive, however.
If you're interested in option 1) I would suggest starting at Insanelymac and reading the OSx86 sections.
I do think you should consider whether the time you will invest is going to be worth the money you will save though. It was for me because I enjoy tinkering with this type of stuff and I started during the early iPhone betas, months before their App Store became available.
Alternatively, you could pick up a low-spec Mac Mini from eBay. You don't need much horsepower to run the SDK and you can always sell it on later if you decide to stop development or buy a better Mac.
Update: You cannot create a Mac OS X Client virtual machine for OS X 10.6 and earlier. Apple does not allow these Client OSes to be virtualized. With Mac OS X 10.7 (Lion) onwards, Apple has changed its licensing agreement in regards to virtualization. Source: VMWare KnowledgeBase
Xamarin is a solid choice. It was purchased by Microsoft and is now built directly into Visual Studio. You code in C#. With all the updates and features they are adding, you can do everything but submit to the App Store from Windows, even compile, build and deploy to an iOS device.
For games, Unity 3D is a great option. The editor is free to use for development, and even for distribution (if you have less than 100K USD in annual revenue). Unity supports iOS, Android and most other platforms. It may be possible to use Unity's "Cloud Build" feature to avoid having to use a Mac for deployment, although by default Unity actually spits out an Xcode project when building for iOS.
Other options:
PhoneGap (html/javascript) also works. It isn't quite as nice for gaming, but it's pretty decent for regular GUI applications.
Flutter (dart) is a free cross platform mobile app development framework from Google. Write your code in Dart.
React Native (javascript) is another popular cross-platform framework created by Facebook.
Note that: for all of these options, all or most of the development can be done on Windows, but a MacOS device is still required to build a binary for submission to the App Store. One option is to get a cheap MAC Mini to do your final build.
If you have a jailbroken iPhone, you can install the iphone-gcc toolchain onto the iPhone through Cydia and that way you can just compilie the apps on the iPhone. Apps that are developed this way can still be submitted to the App Store.
And although Mr Valdez said it is a grey area (which it is), jailbreaking is incredibly easy and pretty much risk free. Yes, it voids your warrenty but you can just do a restore and they will never know.
Most of "so called Windows solutions for iOS development without Mac" require Mac at the end just to sign and send to app store. I checked a few, not all though (who has the time?)
At the end it's just too much trouble to learn "their super special easy way to program iOS without Objective-C", they have lots of bugs. Really the goal they are setting is unachievable in my view.
Also a lot of time they make you use Objective-C equivalent statements simply in another language. They kind of look the same but there are always subtle differences that you have to learn on top of obj-c. Which also makes even less sense, because now instead of learning less you have to learn more. So where is the gain?
Also they cost a lot, because they are very hard to develop.
Many lack any debugging abilities whatsoever.
In my honest opinion, if you are a hard-core iOS developer then for sure buy the best Mac and learn objective-c. It's expensive and takes time, but if it's your path, it's worth it.
For an occasional use, it's just easier to rent a remote Mac service, like XCodeClub.com
The SDK is only available on OS X, forcing you to use a mac. If you don't want to purchase a mac you can either run OS X on a virtual machine on your windows box, or you can install OS X on your PC.
In my experience the virtual machine solution is unusably slow (on a core2 duo laptop with 2G ram). If you feel like trying it search for the torrent. It's probably not worthwhile.
The other option is to install OS X on your PC, commonly referred to as a hackintosh. Hackintoshes work quite well - my friend just sold his mac because his Dell quad core hackintosh was actually much faster than the apple hardware (and cost about 1/3).
Of course both of these options are likely counter to some licensing scheme, so proceed at your own risk.
You can use WinChain
Quoting the project page:
It's the easiest way to build the iPhone toolchain on a Windows XP/Vista computer, which in turn, can take Objective-C source code that you write using their UIKit Headers (included with winChain) and compile it into an application that you can use on your iPhone.
You don't need to own a Mac nor do you need to learn Objective-C. You can develop in different environments and compile into Objective-C later on.
developing for the iphone and ipad by runing osx 10.6(snow leopard)
This article one of our developers wrote gives a pretty comprehensive walk through on installing OS X Snow Leopard on Windows using iBoot, then installing Vmware (with instructions), then getting your iPhone dev environment going... and a few extra juicy things. Super helpful for me.
Hope that helps. It uses Phonegap so you can develop on multiple smart phone platforms at once.
You can use Tersus (free, open source).
A devkit that allows one to develop iPhone apps in Objective-C, C++ or just plain C with Visual Studio:
Check it out at iOS build env
You can build iPhone apps directly within Visual Studio (2008, 2010, Express).
Pretty neat, it even builds IPA files for your app after a successful compilation. The code works as is on jailbroken devices, for the rest of the planet I believe the final compilation & submission to the App Store has to be done on a Mac. But still, it enables you to develop using a well-known IDE.
Of course, you can write Objective-C code in notepad or other programs and then move it to a Mac to compile.
But seriously, it depends on whether you are developing official applications to put in App Store or developing applications for jailbroken iPhone. To write official applications, Apple iPhone SDK which requires an Intel Mac seems to be the only practical way. However, there is an unofficial toolchain to write applications for jailbroken iPhones. You can run it on Linux and Windows (using Cygwin).
Try macincloud.com It allows you to rent a mac and access it through RDP remote control. You can then use your PC to access a mac and then develop your apps.
You will soon be able to use Adobe Flash CS 5 to create Apps for the iPhone on Windows:
flashcs 5
flashcs5 apps for iphone
Hooray! You can now more easily accomplish this with the latest Xamarin.iOS, using a network-linked mac providing the build and deployment capabilities.
See here for more details:
introduction to xamarin ios for visual studio
If you want it to be legitimate, you have two options, cloud based Mac solutions or cross-platform development tools.
You may consider the hackintosh approach or virtual machines if you don't care about legal stuff. If you have a decent PC, running a virtual machine would be the easiest way to go. You may never know which hardware will have driver issues on a hackintosh.
I've tried all these approaches and they all have pros and cons, but for the second group, I feel kind of guilty. I develop apps to make a living and I wouldn't want to rip off someone else for it.
If you are making a small project, cloud based Macs may prove useful. Rent it for a short time, develop your project and off you go. Don't bother learning anything new.
However, if your project is getting big, cross-platform frameworks seem to be the only alternative. The critical thing is that you need to choose wisely. There are so many hybrid frameworks, but what they do can be summarized in one sentence as "diplaying web pages in an app wrapper" and developers' negative experience with hybrid frameworks also affects native frameworks.
I tried three of these (Titanium, Smartface and Xamarin) and they all claim to produce "real native output" and in my opinion their claims are correct. You need to test and see it yoursrlf, it's not easy to describe the native feeling. In a previous comment, it was indicated that it takes some effort to learn these platforms, but once you get to know them, you can develop not just iOS applications but Android applications as well, all with the common code base. And of course, they are much cheaper than a cloud Mac. Some of them are even free. You would need a Mac only for store submission.
If you know JavaScript, try Titanium and Smartface and if you know C#, try Xamarin. Just note that for the device simuator, Titanium is dependent on a Mac, but Smartface has a simulator app for Windows development and it works better than I expected. On the other hand, Xamarin requires a Mac in your network.
If you want to create iPhone apps but no Mac, then you should try http://www.pmbaty.com/iosbuildenv/
It allows you to easily develop native iOS apps, like with XCode, deployable on any iPhone, iPod or iPad (jailbroken or not).
Use your favourite IDE to code in Objective-C, C++, C or ARM assembly, like in XCode. ARC and blocks are supported.
Compile your iPhone apps directly inside Visual Studio
It works on Windows all versions (XP, 7, 8), FreeBSD and Linux
Now with iOS8 support.
Check out this:
Over view
It is a project that attempts to be able to cross-compile programs written in a variety of source languages to a variety of target languages. One of the initial test cases was to write programs in Java and run them on an iPhone. Watching the video on the site is worthwhile.
With that said, I haven't tried it. The project seems quite beta, and there isn't a lot of activity on their SourceForge site.
You can use Intel XDK with that you can develop and publish app for iOS without mac.
Click here for detail.
Interesting that no one has mentioned the cross-platform wxWidgets option.
It's less than an optimal solution, though.
IMHO, the business-wisest way to go is to invest the money in Apple's endorsed framework. That way, if you find yourself stuck with some mind-boggling problem, you have a much larger community of developers to consult with.
YOU CAN DEVELOP IPHONE APPS ON WINDOWS PC. I've done it, with complex apps. And it works perfectly. You can develop iphone apps without ever seeing a mac or iphone.
You can develop on windows an HTML (or better: HTML5) app, using tools like Sencha or JQTouch, or mobi1. (They used to all be free for a while)
Then you use openSSL to sign the app. And Adobe PhoneGAP Build service to build IPhone App.
But you need the iphone developer licence to install it on an iphone. But you don't need a mac or iphone at any minute to compile, build or test it - all that is done ON THE PC.
I've done it, and it works perfectly. (But with Android type responsiveness - not as fast as a native IPhone app)
You could also use a program from the the Babylonian era (circa 300 bc) running C and C++ called dragonfly. If your app has one or two screens with limited interactivity, and many calculations, go for it. It includes an emulator. You compile to the iphone at the press of a button. (Not sure, but I think you do need a developers license in any case)
And then there is Xamarin. You develop in C# with special calls to native code. You'll have to learn the environment.
Oracle VirtualBox allows users to install Mac OS X in a virtual machine. If you are comfortable with it, you could just use that way to use Xcode. This is legal if you "dual boot" your mac into windows, then install the VirtualBox within windows (or linux).
Other possibilities are cross-compilers such as Appcelerator Titanium (HTML, CSS and JavaScript) or MonoTouch (.NET).
You can use Sentenza for make applications for iPhone, on Windows.
Tested with success.
It's not a solution but a good alternative !
Two other options
Titanium Developer - free community edition - write in HTML/JavaScript - compile with Xcode (requires a Mac or VM)
OpenPlus ELIPS Studio - write in Flex, compile on Xcode (requires a Mac or VM) - they just started charging for their product however.
I think there may be 'toolchain' options for these and some of the others mentioned, which allow you to compile to binary on Windows, and I have seen that you can upload a zip file and have a toolchain style compile done for you online, but this goes against the Apple licensing.
If I am not mistaken, a product such as Titanium that outputs/works with Xcode and does not use any 3rd party / alternative / restricted libraries should be in compliance, because you are ultimately compiling in xcode - normal Objective-C code and libraries.
As has been pointed you can attempt to use the WinChain but if you are a newbie coder it won't be easy.
The iPhone SDK will work on Hackintoshes (a normal PC with OS X installed on it). I know as I have one and it does.
So after you go buy an OSX license you could TRY to install it on your PC on a different drive using Boot-132 or one of the other installers like iDeneb. The issue you will have to do a lot of tinkering and things still won't work quite right.
Using Xamarin now we can develop iPhone applications in Windows machine itself with the help of Xamarin Live Player.
Using this Xamarin live player dev/deploy/debug cycle can now be done without an Apple system.
But to sign and release the app Apple system is required.
Find the reference here
I checked the reference nothing dodgy
Yes and you don't need to learn Objective-C and buying Apple software and hardware.
Adobe have created compilator from ActionScript 3 to program for iOS. And later Apple approved this method of application creation.
This is best way to create Apple applications under Windows or Linux/BSD (and another one for MacOS-X)
If you want to develop an application on Windows environment then there is an option, you can install MAC OS in your windows Platform name is : "Niresh'MAC OS" , you can search that text on Google
then you can download the whole MAC OS Source and easily installed MAC OS in your Windows PC, Niresh is able to Hack the whole OS.
Hope this will help you.
You can install OSX on PC but experience wont be great and it needs lot of work. Alternate is to use a framework/SDK Codename one: which is based on JAVA and can be used to code in WP8, Android, iOS on Windows (eclipse) with all extensive features
Features Overview:
Full Android environment with super fast android simulator
An iPhone/iPad simulator with easy to take iPhone apps to large screen iPad in minutes.
Full support for standard java debugging, profiling for apps on any platform.
Easy themeing / styling – Only a click away
More at Develop Android, iOS iPhone, WP8 apps using Java
Disclaimer: This is my review for the product
Develop iOS Apps on Windows With Cross-Platform Tools
Cross-platform tools are awesome: you code your app once, and export it to iOS and Android. That could potentially cut your app development time and cost in half. Several cross-platform tools allow you to develop iOS apps on a Windows PC, or allow you to compile the app if there’s a Mac in your local network.
Well, not so fast…
The cross-platform tool ecosystem is very large. On the one side you have complete Integrated Development Environments (IDEs) like Xamarin, that allow you to build cross-platform apps with C#.
The middle ground is covered by tools like PhoneGap, Cordova, Ionic and Appcelerator, that let you build native apps with HTML5 components. The far end includes smaller platforms like React Native that allow you to write native apps with a JavaScript wrapper.
The one thing that stands out for all cross-platform tools is this: they’re not beginner friendly! It’s much easier to get access to a Mac, learn Swift, and build a simple app, than it is to get started with Xamarin.
Most of the cross-platform tools require you to have a basic understanding of programming, compilation options, and the iOS and Android ecosystems. That’s something you don’t really have as a beginner developer!
Having said that, let’s look at a couple of options:
If you’re familiar with Windows-based development tools and IDEs, and if you already know how to code, it’s worthwhile to check out Xamarin. With Xamarin you code apps in C#, for multiple platforms, using the Mono and MonoTouch frameworks.
If you’re familiar with web-based development, check out PhoneGap or Ionic. You’ll feel right at home with HTML 5, CSS and JavaScript. Don’t forget: a native app works different than a website…
If you’re familiar with JavaScript, or if you’d rather learn to code JavaScript than Swift, check out React Native. With React Native you can code native apps for iOS and Android using a “wrapper”.
Always deliberately choose for cross-platform tools because it’s a smart option, not because you think a native platform language is bad. The fact that one option isn’t right, doesn’t immediately make another option smarter!
If you don’t want to join the proprietary closed Apple universe, don’t forget that many cross-platform tools are operated by equally evil companies like Google, Facebook, Microsoft, Adobe and Amazon.
An often heard argument against cross-platform tools is that they offer limited access to and support for smartphone hardware, and are less “snappy” than their native counterparts. Keep in mind that any cross-platform tool will require you to write platform-specific code at one point, especially if you want to code custom features.
If you have ssh access to a Mac, then you can use a VNC (like Vine VNC, which allows multiple uses at once - thin thin client) to control XCode.
This could be useful if you wanted to access a Mac Mini from a laptop, or your S.O. is hogging your MacBook.
You may try to develop web apps for iPhone using HTML, JavaScript, CSS. Check the getting started info at Apple's site.

How is an 'App' different from any regular (native?) application?

Is "app" just a term that refers to a family of tiny, light-weight mobile-device-centric applications -- a trend that started with the Apple i-generation of devices and later found its way to Android and Windows 8?
If the same program were available both as an app and as an application for the same platform, what difference does it make to the system running it? For instance, Angry Birds for Windows is available as :
Angry Birds app for Windows 8/RT and Angry Birds app for Windows 7 (runs on Pokki)
versus
Angry Birds for PC
From a developer's perspective, are the above two just the same code compiled differently to produce binaries suitable to the target?
Also, now that platforms like Mac(iOS/OSX) and Windows 8 are common to mobile computers as well as desktops, is the line distinguising apps from native applications being blurred?
UPDATE:
I'm not questioning the choice of the word usage as in Appropriate use of “app” vs “application”. This question has more to do with how apps differ from native applications in terms of memory footprint, resource utilization, dependence of execution subject to presence of runtime environments on the client machine etc.
UPDATE 2:
Microsoft is encouraging Windows developers to build apps for Windows 8. Apart from additionally having to adhere to Windows Store app guidelines, how is what they build different from what they've been building all along?
App is just short for application. On some platforms the abbreviated name seems to have stuck... There is no technical meaning other than "application for this platform".
On windows 8 the new style programs are built differently from "desktop" applications. (They really have to sort out the names, metro apps at least gave you a name for it...). It's not just the same program rebuild for a different platform as the methods of interfacing with the system is a bit different. There is a new runtime library and a much more restricted runtime environment.
Windows 8 is different than Windows 7 and previous OSs because it has some additional features that developers can use to make their apps more alluring for the users, features like:
1. charms - settings, search, share
2. snap view
3. concept of store apps
4. new design language for store apps
5. Live tiles etc.
Windows 8.1 is different than Windows 8 because it essentially provides an update to the W8 features, for example:
1. roaming settings
2. Hero search
3. snap view - split the screen into any size
4. concept of universal app development
Windows 10 is different than windows 8.1 in a more stronger sense so to speak because a lot has changed, such as:
1. Concept of app targeting to single UAP
2. new XAML controls
3. cortana
4. action center
5. inking
Hope this helps.

Windows Phone 7 and native C++/CLI

Microsoft recently released tools and documentation for its new Phone 7 platform, which to the dismay of those who have a big C++ codebase (like me) doesn't support native development anymore. Although I've found speculation about this decision being reversed, I doubt it. So I was thinking how viable would be to make this codebase available to Phone 7 by adapting it to compile under C++/CLI. Of course the user interface parts couldn't be ported, but I'm not sure about the rest. Anyone had a similar experience? I'm not talking about code that does heavy low-level stuff - but there's a quite frequent use of templates and smart pointers.
c++/cli can theoretically be used with WPF/Silverlight using the trick of replacing the C# generated from the XAML with a macro definition that can be used inside the main class in a code behind file. I worked out this technique but haven't had the motivation to take it beyond theory - I'm quite happy mixing languages.
As far as using c++/cli in a pure safe mode for your logic code, this may still not be possible but I'd love to hear how someone goes trying it now. Whilst researching it for Silverlight back in 2008 I found this daunting silverlight forum comment:
I just gave Silverlight&C++ it a try by compiling the MSIL from my C++ project into a Silverlight-compatible DLL. The good news: it works, and you can call this code from a Silverlight project. The bad news: The C++ compiler apparently uses MSIL instructions that Silverlight disallows.
So, if you try this, even with the simplest of programs, you'll almost immediately get the exception "Operation could destabilize the runtime." To me, this makes it seem less likely that we'll see Silverlight for C++ soon, as the compiler will need to behave quite a bit differently.
You can generate verifiable managed code in C++/CLI using the /clr:safe option. The problem is that most of your normal c++ code will not compile with that option.
C# is currently the only supported language for WinPhone7.
I fully expect that MS will add support for VB and C++/CLI in the future too, but don't expect to open up the native-code kimono anytime soon.
Native code just has too many issues to overcome, specifically around security, reliability, etc. Managed code is FAR easier to statically verify and FAR easier to control while running.
If you're upset about porting C++ code to C#, just be glad MS didn't force you to have to move to Objective-C ;)
From our own experience, the proces of porting well-written C++ to C# actually takes a lot less effort than one might at first expect. Sure, there's a learning curve, but you have that with any port. We actually got so much benefit from porting our core app and data engines to C# that we re-tooled our entire team to code in C# and port our C# back to C++ where necessary rather than the other way around! So far, we've only ported two modules back to C++ and call our C# code from our native code via interop instead.
Again, remember, WinPhone is a brand new platform using best of breed, highly-productive, next-generation development tools and platforms. It is not your father's WinMo.
If support for C++ is something you find to be crucially important, then make sure MS know - (respectfully and professionally) state your position in the MSDN forums and at developer events near you.
Update1: 2012-12-17:
While native C++ still isn't officially supported for Windows Phone 7, Windows Phone 8 now supports native C++ code so you can more easily port your existing C++ codebase(s) to Windows Phone 8 (as well as Windows 8 and Windows desktop apps).
While there isn't 100% compatibility between the Windows8/Phone8 platforms and API's right now, I expect the two platforms to become increasingly integrated over the next couple of releases.
This is especially true now that one of the key barriers to closer cooperation between Windows and other groups at Microsoft recently left the company ;)
Update2: 4/15/2014:
As per the recent announcements at //BUILD/ 2014, you can now start building "universal" apps in C++ & XAML, C#/VB & XAML or JavaScript & HTML that will run on Windows 8.1, Windows Phone 8.1 and Xbox One! For more details on building Windows Phone 8.1 Universal Apps, read this article.
The whole development idea is built on Silverlight. I think you can add your managed dll written in C++ without any problem to this Silverlight project, but it could not use native code.
I am planning to install the tools on my machine tonight and will try this out.
It is fine if MS decides to leave the path and create something new, that is MS' decision. So let's face the facts. Silverlight is no success yet. MS lost significant share due to Apple, Android and RIM. Application developers simply have to evaluate the business case for their own applications and decide if they trust in a share gain of Windows 7 phone or not. For the company that I run, we decided not to support any more MS Windows phone 7, not because of this or the other technical reason, but just because that we don't believe in the return of our investment for the port.
We start supporting Apple, Symbian, Andoid and MeeGo in the future if we see a market success of this new platform. All support C/C++ and enable us to reuse our proven application cores. So why worry at all. Personal technology preferences should not be gating. If personal preferences worry, then I would kick MS out for their to me ugly looking UI.
Thomas
It is on the horizon finally!
So a survey sent to windows phone developers about their future
development preferences and XNA isn't mentioned once in the Survey (A
survey sent to windows phone developers - did I mention that)
They do however ask:
How would you prefer to use C++ in your mobile apps/games?
Develop apps/games that are C++ from top to bottom (UI, business logic, and platform
APIs)
Use C++ for business logic and then write platform abstraction layer
Use C++ for business logic use 3rd party runtime engines
I don’t want to use C++

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

Windows XP, Vista and now Windows 7, is this a maintenance nightmare for software companies?

For software applications like games, does this mean software companies have a lot of extra coding to maintain 3 branches of certain libraries?
I know this is hard to say, but for game development in general, are there specific areas in the software where they will have to write 3 times in order to work in all 3 flavors of windows?
I'm guessing the core software will be untouched, but maybe some drivers will need to be version specific?
It depends how close to the OS you are. If you're just using the .NET framework or DirectX, probably not much changes between operating systems. If you're writing drivers or relying on the Win32 API then there definitely could be subtle or not so subtle changes.
If your code is written correctly in the first place, there should not be a huge investment into supporting an OS upgrade. Using something like the .NET framework helps guarantee this even more.
Also, why would games have 'drivers'?
Not really. If you use DirectX 9, you are fine on all 3 Windows Versions. The extra maintenance evolves around stuff like the Installer/Uninstaller, about the Games-Tab that was new in Vista (if you want to use it) etc., but as said, DirectX 9 is a stable API on all 3.
You will get into some fun with DirectX 10 (not on WinXP) and with OpenGL (Support in Vista is weird).
Even if you use "portable" interfaces like DirectX or .Net or whatever that are supposed to provide the same functionality, a responsible software developer will have to do QA and testing on each supported platform.
(Note that I don't claim to be a responsible software developer. :-))
Many game develoeprs, including the studio I work for, use engines that manage cross platform issues. We are using Unreal for our game and it ports to the PS3, Xbox, and PC with no issues other than performance differences between them. The engine typically handles the differences in platforms.
As a .Net developer, most of the issues I saw when running applications built with XP as the original target were things we were doing incorrectly that just happened to work in XP (most were using the system colors that looked ok on XP but were wrong for Vista -- e.g., the default Vista theme caused a black font on black background).
It was coding by coincidence at its finest (we were naive enough to not know it was wrong). However, once we started testing on both Vista and XP, we started to produce a better Windows product.

Resources