Oh this looks awesome! I am so excited for the future of developing on Android, with hardware keyboards and devices like the Transformer Prime. I can't wait to try this out. The idea of carrying around just a tablet and being able to write Android applications on the fly is just too cool.
I wonder how far we are from a total replacement of old desktop operating systems in the mainstream, even for developers? I'm aware they're not going away since there will be millions and millions that cling to them. But they may become specialty cases, not sold on computers in stores, etc.
I honestly can't tell if this is sarcastic or not. The idea of developing on anything without a fullsize keyboard makes me nauseous just thinking about it.
Handy for tweaking something on the go, but developing projects (especially in such verbose languages) on a pocket-sized device would be incredibly painful.
I'd be interested to see how this works on a laptop-ish Android device though.
Not sarcastic at all. I'd never imagine developing anything on a pocket-sized device either! I'm referring exclusively to tablets with full size keyboards. I have a Xoom and the wireless keyboard, and it's pretty nice to use to write HTML/Javascript but it's a tad slow.
Also, note that I was referring specifically to the future. Android tablets have existed for about 11 months now. I'm thinking maybe 2-3 years down the road, what will they look like? Surely they'll be good enough for real software development! Especially the ones with keyboards, video out, etc. The new Transformer Prime is quad-core and all, so we're not lacking in horsepower here.
I'm not really concerned or even really thinking about the hardware - I'm excited to see what new paradigms or workflows may develop when coding on an OS like Android.
Edit: Already, user-perspective things like "saving a file" are long-gone. Will that happen in IDEs of the future, too? Will version control become even less intrusive? How will it happen? What about code completion? What does the touch interface offer in terms of giving context to code? Etc...
>Not sarcastic at all. I'd never imagine developing anything on a pocket-sized device either! I'm referring exclusively to tablets with full size keyboards. I have a Xoom and the wireless keyboard, and it's pretty nice to use to write HTML/Javascript but it's a tad slow.
So it's basically a small, underpowered, overpriced laptop. Still not too attractive for any real use, let alone coding.
The combo was way cheaper than any laptop I've ever purchased. But anyway, I seriously don't care much about the hardware specifications ("underpowered", "small"). I'm exclusively interested in the new software ideas, which are 100% unavailable on traditional desktops and laptops.
> Still not too attractive for any real use, let alone coding.
I disagree. I spend way more time on my Xoom than I do on any other device (discounting time when coding, since I agree with you on that one point). The software is very compelling, I love the new paradigms (no manual saving, simple UIs, etc) that pretty much don't exist elsewhere.
Also, please note, I've mentioned before that I'm talking exclusively about the future in attempts to extrapolate from my current setup. I'm aware that the current hardware/software combo isn't up to the task. But it's a combo that's existed for less than a year, and I think the upcoming years will bring exciting changes that make the use cases very attractive.
The future is a cell phone that can be plugged into a dock that has a monitor, keyboard, mouse, other sound, additional power, possibly additional cooling, etc. None of this is a particularly far-out projection, either, as USB pretty much does everything necessary to enable that, it just hasn't quite been done. (Close, though. There are existing Android cell phone/laptop hybrid thingies, and they will only develop further in this direction.) Specialists may use laptops or desktops for various high-powered computing needs, but it would no longer be the common case.
Unfortunately, the cell phone in the cell phone is really hobbling the whole process, because that attaches the future of computing to the whims of the cell phone companies. That dependency needs to go.
I've long thought this, but there may be a problem...
ARM processors probably can't get much faster without an unacceptable loss in battery life - for e.g., the iPhone/iPad are underclocked, and the Tegra 3 quad-core in the new Transformer Prime has three modes, each with lower clocking. Batteries might address this, but their rate of improvement is slow (no Moore's law there). The apparent solution is "multi-core", but we aren't able to parallelize in general, after decades of research. Note that desktops are stuck at quad-core - there's more cores on server chips, but they are usually doing many tasks already (e.g. webserving). The dramatic multi-core progress is in GPUs, which again is a naturally parallel domain.
You could switch to power-hungry performance when docked, like the Transformer Prime... but it seems a bit of an ugly chimera in general.
If performance is needed for development, then x86 desktops will win.
Eventually, ARM could catch up to what is needed (even if x86 keeps ahead) - but if this is to simultaneously satisfy mobile needs, it will be at a much slower pace than Moore's Law.
An ARM purely for desktop could catch up easily; but what benefit does it offer over x86, if its power-consumption advantage is irrelevant? And it lacks the massive ecosystem of x86 software. But that's not the idea discussed here, of a dockable mobile device.
Other factors: (1) ARM SoC is cheaper and smaller than x86; but Intel has made a SoC x86. (2) people like the convenience of the same data, apps and UI for mobile and desktop; but cloud provides the same data; webapps address the same apps and UI.
A prediction: the iPad 3 won't be quad-core. It's too hard to convert multi-core into user performance, so it's an efficient use of power and silicon. Instead it will have masses of GPU silicon (at least x4 the iPad 2, for the x4 pixels in the retina display - possibly x8, to give an sense of improvement in addition).
tl;dr battery life and multi-core prevent an ARM-based dockable desktop.
I never said ARM. ARM != mobile, a point you make yourself but apparently didn't follow through to its logical conclusion. I also did say the future. Only prototypes exist now (though they do exist), but I don't expect widespread adoption for at least another three years. In three years, a cell phone with at least as much power as a netbook of today will be perfectly feasible.
I don't much care what's in them. I'm much more interested in whether they are open computers with a cell phone attached, or closed cell phones with vaguely computery locked down capabilities.
These are just my thoughts, I wasn't attacking you. I was hoping for a refutation of my argument, if you can spare the time.
BTW: arguably, a cell phones are already comparable in performance to netbooks: my old eee PC has a 900MHz celeron (though less powerful than today's netbooks); the samsung galaxy 2 has a dual-core 1.2 GHz Cortex-A9, and the Transformer Prime has a quad-core 1.3 GHz Cortex-A9 (though that's a tablet, not a cell phone)
The decline and disappearance of PDAs (aside from the iPod Touch, which might as well have been superseded by the iPad) is quite tragic. Tablets lack the same extent of portability they possessed.
on a pocket-sized device The transformer prime mentioned by the OP is a 10 inch tablet with attachable keyboard, you must have some rather large pockets. Though I rather agree, the keyboard seems a bit small for primary use.
I tried using an Eee Transformer as my primary computer for two weeks. It was just about tolerable for casual usage, but had the amount of holes in basic functionality was pretty shocking. E.g. I never realized how many Google Docs spreadsheets I actually deal with weekly, and how totally crippled Docs is on Android. It doesn't help that Android apps are really not designed with keyboards in mind, or that the trackpad support is a joke. Using a touchscreen in a laptop configuration turns out not to be very comfortable.
It was intolerable for development even with an Ubuntu install to chroot into.
Basically the whole tablet + keyboard form factor looks cool but is useless in practice with Android. I hope the situation improves in the future, but don't really expect it given how tiny part of the whole Android ecosystem these devices are.
"Also vim has been setup by default in a humane way (arrow keys work, backspace..), so that starting on this long and glorious journey won't begin with a punch in the face."
I had been wondering about why there were no editors with Emacs keybindings around, and it turns out that the reason is that they just wouldn't work very well.
The Android keyboard event model has horrible handling of modifier keys. Basically it's a total crap-shoot whether a chord is passed through to the application or silently eaten. So you might e.g. get events for something very simple like Ctrl-A, but not Ctrl-Space or. Meta-Left.
And even rooting your device and editing the key mapping files to specify outputs for these chords doesn't necessarily make them available to the app. I haven't dug too much into why. If anyone knows, I'd love to know.
That's unfortunate, but as I'm seeing through my own development and exploration, android is a lot less 'hacker' and a lot more 'consumer' than I originally thought it would be.
iOS has the same problem; notably, the developer of iSSH has worked around most of it and posted details of how to do so. Ridiculous that it needs to be done in the first place, though.
At first I read this as 'Emacs would be better than Vim' but that's not what you're saying at all
Yes, the awesomeness would be through the roof, having Vim AND Emacs on a tablet (but only with a full size keyboard with a Caps-Lock that could be mapped to Ctrl :)
It's great application, last couple of days I was searching to change the hosts file to test localhost mobile web app. But it was difficult to root access and push the host file to the android system. Anyway this may help to all the things.
Is there any android hardware out that could make good use of this?
I'm thinking a phone with a mini-HDMI port, so whereever I go I can just connect it to any real monitor which is to hand. If the thing can act as a USB host, add in a micro-USB to full-USB dongle, and I can connect a real keyboard and mouse too.
What'd be even nicer would be a deck-of-cards sized "docking station", which could have 4 full USB ports (keyboard, mouse, thumb drive, spare), VGA out, and wired ethernet.
I'm not completely sure since I have no experience with almost nothing made by Apple, but I think the terms of service of the iOS App Store disallow compilers/interpreters. Also, you can't run unsigned binaries.
If I'm accurate, both of the aforementioned policies are sort of showstoppers for an IDE, except maybe for jailbroken devices.
Yeah, I was worried about that. Such a shame; Apple's the only one losing out on the opportunity. Codea rocks, but I'd like to see a more useful editor. Even without a real compiler or debugger.
This is awesome! What I'd like to see added next, I think, is gcc - I'd like to bootstrap from there to a package manager to installing all the other tools I'm used to having in a command line environment. Vim, bash and javac are nice, but I can't use it to work on my existing projects unless I can compile their dependencies.
The problem is the lack of an efficient input method. I personally haven't come across any good soft full keyboard. And special keys won't work on bluetooth keyboards on old Android versions. I personally do not have a ICS device yet, but I think it's definitely possible to develope on ICS if the input problem is solved.
I wonder how far we are from a total replacement of old desktop operating systems in the mainstream, even for developers? I'm aware they're not going away since there will be millions and millions that cling to them. But they may become specialty cases, not sold on computers in stores, etc.