Just like a real computer: Android gets Android IDE
What's developed on Android stays on Android
Android developers can now hack code on the move with the beta release of AIDE, the Android developer kit which runs on an Android device to create Android applications.
AIDE is at beta version 7, but already allows the editing and compiling of apps, as well as automatic error checking (and fixing) and LogCat visibility. The free application is even compatible with projects started on Eclipse, which is important as one might not want to create an entire commercial app on a mobile phone – but at least with AIDE one theoretically could.
This application was compiled on a handset, but a tablet and keyboard are recommended
Android, in common with most embedded systems, requires software to be written and compiled on a desktop computer. On-device application development has traditionally been limited to high-level languages if it was available at all – your correspondent developed commercial software on a Z88, and a Psion MC400, but both of those were using interpreted languages rather than compiled.
Compiled languages require a decent processor to chomp through the conversion of the entire application into suitable machine code, while interpreted languages convert one line at a time while they're running, so on-device compilation requires more processing power than has typically been available on mobile devices.
But that's not true any more; an Android tablet (which is what AIDE is really aimed at) has more then enough processing power to compile Java applications*. And if Android is going to provide a viable alternative to traditional operating systems, then it's ironic to demand every developer own a desktop system too.
But this model makes sense if the same company makes money from both, as Apple does. Apple's clear delineation between mobile and desktop systems is a strength. Palm made mobile computing popular by not trying to make a mobile computer – the Palm Pilot was just corner of one's Windows desktop, not the whole desktop – and Apple has replicated that experience with iOS.
Android wants to be all things to all men, and risks being driven by engineers who think that's a good thing. It's notable that the AIDE team, which created the on-Android development kit, is a small group of German Android fanatics with no business plan or concept of how (or if) AIDE might develop in the future. They're just keen to make Android the only platform that anyone, even software developers, needs. ®
* Java programs are compiled, generally at least twice just to be sure.
"no business plan"
There's the people that do the planning, then there's the people that do the doing.
Following in Microsoft's footsteps
This development only seems to conflate form factors that serve to completely different markets, an approach MS seems to have wholeheartedly embraced with Windows 8. I'm not convinced a hybrid is a sensible or practical idea, but time will tell.
Wearing my developer's hat, I want all the bells and whistles on a computer. I don't use tablets much (just for watching the occasional movie) because I'm rarely separated from my laptop. The different forms all have an appeal that applies in a specific context, and I want them to be optimised for that experience, e.g. I want my phone to be small, lightweight, and no hassle, i.e. optimised for being mobile and communicating. I want my development environment to be powerful, fast, maxed out with ports, RAM, and hard drive space, big screen, and optimised for keyboard. It uses ruinous amounts of power (compared to the phone), but I need it. And I want to be able to simultaneously use multiple operating systems and development tools and be able to control every detail of the installation. And I don't want 'cute' graphics to get in the way or slow anything down.
These requirements directly conflict in almost every way. An improvement for one is a drawback for the other. If you want Android as a development platform, just treat it as any other flavour of Linux and install it on a (full-blown) laptop. Hybridising forms just seems like a wasted effort.
This could be the tipping point...
...that means I have the argument for investing in a keyboard for my tablet.