Another continuation post? And on the same day as the iPhone continuation? Crazy talk.

Developing more on Android, and here are more thoughts:

(1) Java Generics Really do Suck
No static access? No access to zeroary constructors? No array creation? No value types? Give me all the excuses and work-arounds you like; C# and C++ both have no problems here.

(2) Emulator = Slow Slow Slow
Last time I mentioned how slow the emulator was to start; now I’m mentioning how slow it is to run. These can’t be the performance characteristics of an actual device, lest nobody would get anything done.

(3) Yet Another Slow Garbage Collector
Why are you going to give me garbage collection if you’re going to turn around and penalize me for it? If, in the course of avoiding garbage to prevent performance jerks, I have to manage all my memory, you might as well give me memory management control! I am constantly perplexed by platforms (Android, Xbox) that impose language constructs and tell me I shouldn’t utilize them. Memory pools = your friend, I guess.

(4) I’m a Bit Skeptical of the Canvas
Right now I’m going through all the Canvas 2D drawing methods. There are some constructs (like Paint) that leave me scratching my head and wondering why, and there are a few methods I’d like to see but don’t. I think I may be better served going through OpenGL ES (luckily I have modular rendering code in this project, so switching shouldn’t be hard).

(5) Too Many Control Variations
One of the big pluses of developing for Xbox and iPhone (and usually the PC) is that there’s exactly one control scheme you have to support, and everything else is optional. Well, Android runs on a ton of different handsets. Will they have a touch screen? A track ball? Convenient arrow buttons? It’s hard to say. I still need to do more research about the market and see what people expect, but no part of me wants to write a ton of control code.

I’m wondering internally how hard it would be to write a cross-compiler to take restricted code from Objective-C (as a baseline simply because it requires explicit memory management, and converting in the other direction sounds like no fun) and shift it to other mobile languages/platforms, with little ‘TODO’ stubs for places where it chokes. The answer, of course, is “pretty damn hard,” though Airplay seems to be pulling something similar off? I’d just use Airplay if I weren’t worried about its relationship with the new iPhone license.

Moving into Mobile Land is… ugh…

I wonder how much I can get done with a three day weekend.