[maemo-developers] Write once, run on WinXP, Ubuntu, Maemo; which graphical toolkit?

From: Hugo Rabson eeyore at burp1.com
Date: Mon Dec 15 11:42:40 EET 2008
SUMMARY

I'm trying to establish the best set of tools to build an application 
that will run on Windows XP, Ubuntu (i386) and Maemo. Options include:-
* Eclipse+Java+SWTDesigner+H2+Hibernate+SWT (with Jalimo for Maemo)
* Komodo+ActivePython+buzhug+storm+WxWidgets (under Python), all of 
which should port well to Maemo, which 'loves' Python.
* NetBeans+Java+H2+Hibernate+WxWidgets (under Java), which should be 
fine on Maemo+Jalimo+WxEmbedded
* Eclipse+C+GTK+Hildonizer for Eclipse + some ORM&SQL for C (MysqLite?). 
This will look great on Maemo because of the Hildonizer stuff.

The last option might do, because I've been writing C for 20 years and 
SQL for 15. I just don't like using C for databases. It feels wrong. 
Java seems eminently right, yet Java's Swing toolkit is not available 
for Maemo. That's why I'm looking at Eclipse + SWTDesigner, but 
SWTDesigner costs almost $300 and I don't like Eclipse very much 
(perhaps I'm just not used to it yet). Netbeans+Java+WxWidgets would be 
great, except that it looks as if the Java port of WxWidgets is no 
longer actively supported.

Comments? :)

TIA,
Hugo



DETAILS

Task:
1. Create software app. It has a database back-end, a GUI, some simple 
graphics & WIMP stuff (windows, icons, menus, pointers). Mostly, it is a 
system for stock control, report generation, technical manual 
manipulation, etc.
2. Make sure it runs reliably on WinXP, Ubuntu (i386 Linux), Maemo 
(Linux on the ARMEL[?]).
3. The application and its data files must reside on a USB thumb drive. 
The app must not write to or read from the host computer's hard disks, 
nor may it rely on any software on the local drives (other than the 
standard IO libraries and device drivers that come with the stock 
WinXP/Ubuntu/Maemo distro).

Problems:
1. Program must run reliably on all three systems.
2. Program & database must reside on a thumb drive or SSD chip.
3. It is OK to have >1 executable (one per OS/platform) but they must 
share the same database (on-chip).
4. The user interface must appear consistent in its representation both 
the functional needs of the app and the look'n'feel of the each platform.
5. In an ideal world, the development platform would enable me to write 
the software on my "powerful" HP laptop, then field-test it on the Eee 
and the N810.
6. I don't want to spend half my time hand-coding getters, setters, etc. 
I would rather design the database and then do test-driven writing on 
the smaller subroutines, then work my way up to the bigger, GUI-related 
functions.
7. I want the database to be SQL, in case I have to switch languages, 
platforms, etc. at a later date.

Possible solutions:
1. For Windows & rapid development : Eclipse + Java + SWTDesigner 
(Instantiations.com) + H2 sql engine + Hibernate ORM + SWT. For the Eee: 
JRE+JVM. For the N810: Jalimo.
2. For Windows & rapid development : Komodo + ActivePython + buzhug/H2 
sql engine + storm ORM + WxWidgets under Python. For the Eee & N810: 
Much the same.
3. For Windows & rapid development : NetBeans + Java + H2 + Hibernate + 
WxWidgets under Java. For the Eee & 810: Much the same.
4. For Windows & rapid development : Eclipse + C + GTK + some ORM&SQL 
---> Windows executable. For Eee & N810: Each gets their own exe.

#2 would also probably generate one executable for Windows, one for Eee, 
one for N810.

If only Swing ran reliably on the N810, I would stick with NetBeans and 
Java. I'm currently trying to compile OpenJDK via IcedTea on the N810 
but it's taking a while. smile

Any comments?


More information about the maemo-developers mailing list