Which Programming Language/Development Tool?

palewar

Member
I am interested to know which programming language is used to code palm and ppc versions of this Dictionary software? Its a good software and I was hoping to have a discussion on which language is better for programming a palm application and a ppc application on the lines of a comparision between palm and ppc devices.

Waiting for answer and thoughts from all of you.

Regards,

Sachin
 

mikelove

皇帝
Staff member
At present, all of our software is written in C (with a few helpful C++ extensions like inline variable declarations and // comments). That's mainly a reflection of its Palm OS roots, Palm still doesn't have an official class library and consequently it's a less-than-ideal environment for object-oriented programming, but it's also partly my own preference since I cut my teeth on programming in straight C and still find it more logical to program that way than in object-oriented systems like Java. (this is also a small contributor to my negative feelings about a Symbian version - Symbian pretty much forces object-orientedness on you, even in the parts of your program that have little or nothing to do with the OS)

As far as tools, we use Metrowerks CodeWarrior for Palm development; the new Palm OS Developer Suite doesn't really seem to offer any enhancements that would justify spending the time/money to switch, and we like Metrowerks' ARMlet development tools better than Palm's. We use Microsoft Visual Studio 2005 for the Pocket PC end, it's pretty much the only way to write WM5 software.
 

chao-ren

进士
For software programs which are intended to run on Windows Mobile devices it is probably still better to program within the Microsoft Visual Studio development framework.

The downside to this is of course costs - distribution of runtime database copies etc. The upside is that you are selling to the "immense" Microsoft market.

For Palm devices, in view of the proposed Linux based OS for the future, it is probably most economical to switch to using Java as a main programming language. Java IDE is also free. And because after you have a "PlecoDict" or whatever program in Java which runs efficiently on the new Palm-Cobalt linux based OS, you don't need to change or adjust too many programming codes to get the same program to run on the other important mobile OS device platform, which is of course Symbian OS from Nokia.
:idea:
 

mikelove

皇帝
Staff member
Actually Microsoft lets you distribute most of their runtime databases for free, and in fact we've gotten a couple of free Visual Studio licenses from them as well (they pretty much give them away at trade shows, conferences, etc), so if anything we've spent less on that than on CodeWarrior.

Regarding Java, unfortunately we've had to stay away from that because of the fact that we generally have to rewrite large portions of the OS in order to get things working the way we need them to (and work around any OS bugs). Virtually everything you see in the main screen of PlecoDict on Palm is being drawn by Pleco- rather than Palm-created code; everything that happens in between the pen tap and the screen redraw, including the font rendering, is done entirely in our code. We have a lot of custom UI elements on Pocket PC as well, and we've moving towards adding more in the next release to work around a couple of lingering bugs.

Because of this, it would be nearly impossible to duplicate our software's functionality in Java, at least not with a dramatic performance hit - even if we could get the low-level access to the OS that we need, manually rendering a bitmap font or reading binary data from a database in a Java VM would be almost painfully slow. Palm OS for Linux is supposedly going to be largely API-compatible with the current Palm OS, and actually adds several new features that might help (such as built-in support for SQLite), so I don't think it'll be too difficult to keep our current Palm version working on that. And we're not currently planning a Symbian version at all, but if we do I suspect we'll need to do a similar amount of mucking around with the OS to get things running smoothly, so the same concerns about Java will appply and we'll likely still want to do everything in native code.
 
Top