QUOTE(GoLinux @ Dec 1 2004, 12:11 PM)
While I consider myself an advanced PC user and I have past experience in programming with Turbo Pascal first and Delphi later, I'm by no mean a monster programmer.
I think you're gonna like Python. I ignored it for a long time (Python? Isn't that just another Perl wannabe?) and now I regret that I didn't get into it sooner. The language takes a little getting used to, but once you get the hang of it, it's utterly amazing how much you can do with just a little code. Not to mention that there's a high degree of built-in readability and maintainability in the code.
1. Do you know of any possible incompatibility with the SL-6000L?
No ... but then I don't know if it's ever been tried on a 6000. Theoretically it should work. It's unlikely to do any software damage ... it doesn't delete any files or create a big symlink jungle. If there's a problem it should simply not work. Of course a backup before installing is always a good idea for any
new software package
2. Given same speed CF and SD, is there any advantage in using one rather than the other to install "your" Python?
From a performance standpoint you aren't likely to notice any difference. CF may be a little faster but I use SD and it works great. I've heard that the Sharp ROMs can have problems with loop mounted filesystems (that's how my Python image works) on CF cards when the Zaurus suspends. I haven't experienced that but it could be a point in favor of running from SD. My system also doesn't have an easy way to "unmount" the Python image without entering a command from a shell prompt (and you can't eject the CF card with a mounted image until you unmount). Not a huge deal but if you freqently swap out your CF memory card for WiFi or Bluetooth, it will be a little bit of a pain (another plus for SD).
3. Is there and Integrated Development Environment coming with your distribution? As I mentioned I'm used to Delphi, is it a dream to hope for something like that on a Zaurus? I don't mind the command line coding, but it would be nice to be able to put together an application GUI "visually".
Nope, my Python image doesn't come with an IDE. The closest thing I've seen to a Python IDE for the Zaurus is VisiScript. It's really just a decent editor that will let you execute your script from a menu (and capture the text ouput into an output "pane" in the editor). It doesn't provide any GUI tools for UI construction. I'm really not sure how practical such a tool would even be given the Zaurus' small screen.
If you really want a visual GUI builder you may want to look into something like Blackaddr
(though I really hate recommending theKompany's products). You could use it to build your UI framework on a PC and then do the back end coding on the Zaurus. You can similarly use Trolltech's Qt Designer (a free version is available with most Linux distros) and a tool called "pyuic" to build the source code framework. Not as easy or automatic as Delphi or VB, but not as bad as it sounds.
Personally, I've found that PyQt makes things simple enough that just coding the UI from scratch really isn't that difficult. And if you do a Qt GUI correctly, you never
use absolute positioning for the widgets (which is what you get from some GUI builders). Instead you construct a window by programatically adding widgets to layout managers. The layout managers compute the correct widget placement at run-time based on the size of the window/display. That way your GUI works on a 320x240 SL-5500, a 640x480 SL-6000, or your an even bigger window on your desktop without changing a single line of code. I know some folks don't like layout manager based GUI design (perhaps due to post-traumatic stress induced by past experiences with Java's AWT
) but I think it's the only sane way to do a portable GUI. I've found that my perfect Zaurus Python IDE is vim, but then I'm a little "old school"
4. How fast (or slow....) is to test on a Zaurus an application being developed?
Surprisingly fast. Start-up time for Python apps on the Zaurus is a little long (10 - 20 sec ... especially if your app imports big modules like PyQt), but once it's running the code runs much faster than I expected. I run a Python based webserver/wiki (MoinMoin) on my Zaurus for note taking and though it's a pretty hefty Python app with a lot of filesystem access, page load times are on the order of only 3 seconds. I'm also working on an mplayer front end that keeps all my music and videos in a SQLite database and it can populate the full song list (about 400 tracks) from the database and display it in under two seconds and do it sorted by album in three seconds. Of course SQLite is doing most of the work, but that's the hallmark of a good Python app - provide an easy to write, easy to use front-end and let highly optimized back-end libraries/apps that do the heavy lifting.
One last bit of advice ... check out the book GUI Programming with Python: QT Edition
by Boudewijn Rempt. You can read the whole book online at http://www.opendocs.org/pyqt
or snag a hardcopy from your favorite bookstore (ISBN: 0-97003300-4-4).