I've been self-teching how to work with the Android SDK, and am having a pleasant mix of frustration and pleasure. I do agree with Wired's post about Android's rapid growth and multiple versions/hardwar causing problems with their marketplace, but overall I find creating a simple application easy enough to get running.
The problem I'm having is working with Java, or at least Android's implementation of Java. I'll be honest I have never really liked Java, before I started to program with it. Java applets in the bowsers always seem to lock up or take forever to load. They usually look like something stuck in 1996 too. Java is always wanting to update my computer, seemingly more than windows wants to. Java was meant to be a programming language that could run on any machine simply by having Java installed on said machine. It is similar to .NET except .NET is only really found on windows machines, although Mono is available.
I looked into Java to create a little program not long ago. I was hopping to include something to play media with, but it would have required installing a bunch of different java programs and libraries to get started, and anyone who wanted to use the program would have had to do the same. That doesn't really create a pleasant user experience in my opinion.
So obviously I've come into this with a chip on my shoulder. So you can take what I write with a grain of salt. I didn't really like Python when I started to use it either, but I've turned around on that one.
As I develop with Android I find examples of tasks in other languages that I want to accomplish. Porting can be a little difficult as every programming language has some things that are done that other languages do not implement. For example, operator overloading. This basically means that you can create a class and in some of the methods override things like the plus (+) sign. Normally plus means either addition or concatenate several strings. You could override this for your class, say a class for a vector, and have it add two vectors simply by using the expression vector = vector + vector. C++ and C# do this, and so you'll see examples using operator overloading. Out of curiousity I wanted to know if Java did this. Luckily somebody already posed the question to the Java community. I was shocked and appalled by the responses this person received from the community. Firstly, I never understood why jerks seem to troll forums and post responses. Perhaps it has something to do with an egotism that sets in with some people when they become experts. These people seem to berate people when they post questions, as if it is burden to them to answer your question. Why even bother participating in a forum if you are going to do that? I see that time and time again, and perhaps the only forum I've seen where experts are supportive and helpful is Cartotalk. I posted a photo for comment on a photography forum and one so-called expert's only response was that the topic was interesting but not photographed well. Yeah, I get that, that's why I'm asking for advice. So that is not something unique to the Java community. But the reactions to the question about operator overloading seemed pretty extreme. One respondent said (paraphrasing) that if you want operator overloading like C++ go program in C++. The tone seemed to be the equivalent of a "Go f*ck yourself." It was unhelpful and presumptive that the task didn't require Java such as with Mobile phone development. I think when a community reacts this way to a suggestion, or potential improvement and their reaction is to shut it out, then that is a bad sign. It is sort of like the open source community's vehement denial of being called sexist. I think when you deny something so strongly, then part of you must think it is true.
I'm not saying Java needs to implement operator overloading, I just find it to be a handy feature in other languages. I just think, as a community, if you want to find participants to join that community you shouldn't have a negative reaction to the ideas the newcomers bring with them. Of course I'm new to Java, and the reaction to Operator Overloading might be just the reaction to the question being asked a thousand times before. Still though, that's not the way to approach it.
Anyway, this is a GIS blog isn't it? What am I doing ranting about Java?
EDIT:
Here is a good example, and particularly relevant to GIS. The tragiacally funny part is that no one actually answered the poster's question and it boiled down to silver and gold star "experts" arguing with each other. It's also funny that the user was actually using cartesian coordinates and they recommended he/she convert them into spherical coordinates. Using the original coordinates with the 3rd post the poster would have gotten the answer, assuming the poster new which was x and y.
Update:
Ask a question and see what you get (I'm not the OP on this).