On 2013-09-17, at 11:25 AM, Leif Bruder lbruder@leif-bruder.net wrote:
Hello all,
the company I'm working at is evaluating some technologies for multi-platform development for smart phones, tablets etc. So far, we've eliminated most of the choices, with only LambdaNative, PhoneGap/Cordova and Kivy remaining. No actual experiments have been done so far, no actual phones bought, only theoretical thinking-about-what-the-net-says. I'm the team's biggest Scheme proponent and know both JavaScript and Python, while all the other devs would have to learn another language, no matter which solution we choose.
Portability is certainly one of the main features of Gambit (and LambdaNative). Gambit Scheme can be used as an abstration of the underlying platform. Here are a few things you should also take into account:
1) With Gambit's Scheme infix extension ("six"), you can develop using a syntax that is very close to C, and you can mix this with code written in the standard prefix syntax. This is helpful to bring to Scheme people who are uncomfortable with S-expressions. Here's a quick example:
(define-macro (six.x^y x y) `(expt ,x ,y))
\ for (int i=0; i<10; i++) { println("i=",i," 2^i=",2^i); }
2) Gambit-C generates portable C, C++ and Objective-C code, so it is easy to move from one platform to another. In addition, there are backends being developped that generate JavaScript, ruby, python and php. This means that the Scheme code developped with Gambit can be integrated to other environments. These backends are not feature complete, but that will improve with time.
Marc