mikelove said:
There's quite a lot of low-level code in Pleco that would be hard to replicate in Java.
I'm not sure why you would want to, assuming :wink: an acceptable level of performance could be had with the provided libraries and your own well-written Java code.
I'm not a performance expert, though I have read a number of Java performance books and done some optimization. Some things to consider when writing Java:
- Leverage existing libraries which are probably implemented in optimized native code.
- Code which isn't there runs infinitely fast. This is the old saw about avoiding operations which are unnecessary, such as loading all elements of a list when only the first 10 will be shown to the user. It has some collaries:
-- Avoid creating unnecessary objects.
-- Reuse objects. Don't create 1000 complex objects if only 10 at a time are shown to the user; instead, have an object pool from which an object can be pulled, populated it with values, and used.
-- Avoid making code thread safe if it doesn't need to be.
But my anti-Java bias isn't even the main problem here, it's my hatred of ports and the iffy economics of Pleco's doing them.
Your hatred of ports is certainly understandable. You might dislike Java less if you compared it to the complexity of C++ (where I've seen coders spend half their time arguing about what their program is supposed to do, and half their time arguing about how C++ works). Object orientation is just a useful paradigm which among other things lets one map the real world problem domain onto objects in code. Having worked in C and C++, I find Java a good middle ground between the two, and much more productive to work in than either.
The latter could be turned around if the iPhone version proves to be a breakout for us sales-wise, since that would show that there are a lot of people out there who haven't bought Pleco but would if it supported a platform they like (not the case with Windows Mobile, which has gradually devoured most of our former Palm sales but hasn't actually caused much growth) [....]
My guess is that the iPhone version won't radically increase your overall customer numbers (nor would an Android version, for that matter) so you should charge a premium for the iPhone version to make it worth your while. Maybe take the Wenlin approach and charge $200 for most users, with a discounted academic version.