I think maybe we need a new version of Godwin's law... "any discussion about scripting languages should stop as soon as someone mentions Lisp (or Smalltalk.)"

But seriously... speed probably shouldn't be THE deciding factor in a built-in scripting language. It's the ability to get things done simply. I think that's why javascript / livewire made it's way into Navigator and Spyglass. They were "just enough" to get done what needed doing. I've never been the worlds biggest fan of AppleScript, but I like that Apple says it's there to stitch apps together.

At PalmSource, some of the Ex-Be guys worked on a tool called the Binder (now known as OpenBinder (as in http://openbinder.org/)). I come from a CORBA background, so I was slightly less than impressed that the only language bindings it supported out of the box was C++. But, for a while there, PalmSource was pushing the idea of opening up all application objects to a regular interface and adding other language bindings.

So... whatever the default scripting language, let's just make sure it has a way to get at the objects exposed by applications.

That being said... I vote for Smalltalk.

-Cheers
-Matt H.

On Apr 18, 2007, at 6:47 AM, Jim Thompson wrote:


On Apr 18, 2007, at 2:41 AM, Michael 'Mickey' Lauer wrote:

PyGTK looks like the most likely contender to me -- not just because I
wrote a book about it and I'm the author of almost everything
Python-related in OE, but also because PyGTK is pretty mature and
easy to extend (you probably have seen Zecke's work in wrapping the Moko
classes did you?).

The thing that worries me is the performance. The Neo1973 has a really
slow CPU. I didn't test on a device yet, but I'm afraid running
'import gtk' alone will take roughly 30 seconds, if not more.

We will probably have to jump through hoops to make _any_ scripting
language to perform reasonably on the Neo1973 (first incarnation).

Well, python is known to be slow.

There is plenty of CPU on the OpenMoko for something like Lua.. or lisp, or scheme

might look into Chicken Scheme: <http://www.call-with-current- continuation.org/index.html>

It runs on the Nokia 770: <http://chicken.wiki.br/chicken%20on% 20handhelds>, and the Zaurus, both of which have less CPU
than the Neo1973.

Chicken Scheme compiles to 'C'. Its fast, way faster than Python. <http://curiousprogrammer.wordpress.com/2006/09/25/switching-scheme- implementations/>

One of the more recent additions to Chicken is the 'Easy Foreign Function Interface'. This enables you to embed C or C++ code inside your Scheme code and it gets converted to Scheme automatically. The example given in the manual <http://chicken.wiki.br/easyffi> or <http://www.call-with-current-continuation.org/chicken.pdf> uses Chicken Scheme to write a Qt application. The Qt classes get automatic wrappers generated using the object system (TinyClos). So the actual Scheme code looks like:

        (define a (apply make <QApplication> (receive (argc+argv))))
        (define hello (make <QPushButton> "hello world!" #f))
        (resize hello 100 30)
        (setMainWidget a hello)
        (show hello)
        (exec a)
        (destroy hello)
        (destroy a)

There is a GTK SWIG for Chicken: <http://wiki.freaks-unidos.net/ chicken-gtk>

Someone should also look into putting Einstein <http:// www.kallisys.com/newton/einstein/> the NewtonOS port on the Neo1973. It already runs on the
Nokia 770 and the Zaurus.


Jim

_______________________________________________
OpenMoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


_______________________________________________
OpenMoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to