So I’m kinda pissed
I bought a new Android HTC Desire HD which I’m fairly happy with.
I bought it with the intent of developing an application over the next year as part of my FYP for college.
During my dabbling in the first few hours, I began to realize why I hate Java and its every growing obscure complexity.
Lets look at 3 separate blunders from a fundamental level, in learning this new technology.
First of all, lets leave Java aside a moment and focus on the Android.
intent, view, remoteview, activity, context, ApplicationContext, ActionBar, Fragment, IntentService, ListActivity …
If your a programmer and never looked at the Android API your probably wondering what these mean exactly?
EXACTLY – epic fail number one, this is the type of stuff you would expect from the Java community,
bizarre names to describe b****y windows and controls!
Coming from the Linux world i have no problem with odd programs with odd names, you get quiet used to it.
But to be fair in a programming world, the concepts, techniques etc are all the same regardless of the language.
That said, why change the name of Window / Frame / whatever to Activity, an activity could mean 200 bloody things!
From the Android API
” An activity is a single, focused thing that the user can do. Almost all activities interact with the user,
so the Activity class takes care of creating a window for you in which you can place your UI with setContentView(View). “
It’s a f******g window, why oh why did you have to go with these bizarre names,
as you get further into the API the names just get weired and weirder, its like learning French, who cares about French!
This reminds me of SOAP in Java, JAX-WS, POJO, SEI, WSDL, GlassFish
and the list goes on with every increasing obscurity to define very simple web concepts.
One more thing on Android API that i really wish they would get rid of
‘@‘ what about @?
As you start too look through the Java XML files, you start seeing all these @’s’
Soon enough, after some files, you realize that the @ symbol is some whatever overloaded depending on the context.
One moment its referencing a string element and in another an actual XML file.
As your code is ever growing, you start to see @‘s all over the place.
Your following @‘s along and by the time to find what exactly you’ve been trying to figure out,
You can’t remember were you were @.
Modifiability, extensibility and dependency management.
Many of the controls which i have describe are implemented from almost concrete implementations.
Which means its very difficult to overload anything or change the behavior of a widget to do what you want.
Not only this, but when the API changes it breaks all previous code, and suddenly your left with code samples
on the android site, that simply don’t work, and you spend half your time figuring out what has changed in order to fix it!
These guys could actually learn something from Microsoft.
Yes these guys took Java and made something usable out of it C#.
Take a look at Windows Presentation Foundation Applications. The XAML makes sense
and the attributes of the elements make sense..