Tim O’Reilly tells the story of how Vic Gundotra, my manager at Google, came to the conclusion that the future of software lies somewhere in the intersection of mobile and cloud. Indeed it does, but I jokingly twittered back that we still need PCs — how else are we going to write our mobile and cloud apps?
But in truth we hardly need the heavyweight hardware under our desks to develop software even today. If anything, with a ubiquitous network connection (wifi where available, 3G where it is not), most of the heavy lifting can and should be run on compiler farms, not the desktop. My own development workflow typically involves ssh’ing into a virtual instance from whatever client I’m on (a desktop, a laptop, etc) and running on a distributed compute cluster. Depending on the task at hand even a full graphical IDE can be run remotely over technologies like NX. Or if you’re like me, ssh, screen, and emacs are all you need. And I believe we may even be headed for an era when the IDEs themselves are hosted applications, following the pattern established by email, text editors, and other traditional desktop applications.
So will this mean you can forgo the PC even for software development? Perhaps it does. Looking back, here were the specs on my first personal Linux box, as pieced together in 1994:
Dell Dimension Intel Pentium @ 133 MHz 256MB RAM 1GB HDD 28.8 kbps modem Slackware 2.0 Linux kernel 1.1.18 17″ Dell Trinitron CRT Monitor @ 1024×768
I used this machine throughout my time as a CS undergrad, including the time off I took to write software for one of the first web companies (tripod.com).
By way of comparison, I now carry a HTC G1 device running Android:
HTC G1 Qualcomm MSM7201A @ 528 MHz 192 MB RAM / 256 MB ROM 1GB SSD 3G HSPA/WCDMA, GSM/GPRS/EDGE 802.11b/g, Bluetooth 2.0, USB 2.0 Android RC30 Linux kernel 2.6.25 3.2″ screen @ 320 x 480
These stats are telling: The mobile devices in our pockets are more powerful and more connected in every way than the desktop machines we used to build the first generation of the web. If we can just bridge the peripheral gap and get high resolution external displays, then there is truly nothing stopping us from forgoing the desktop completely in favor of a completely distributed development environment.
Along those lines, I recently purchased an Asus EEE PC 1000 and installed Ubuntu on it. With a 1.6 GHz Intel Atom processor, 2GB RAM, and a 40GB SSD, that little netbook is already faster and more powerful than the desktop PCs we ran just several years ago. As we can expect to see that caliber of hardware in cellphone-sized mobile devices before long, I suspect it is only a short matter of time before we stop thinking in terms of “developer workstations” at all, and instead start thinking in terms of mobile devices as access points to a limitless development environment.


November 17th, 2008 at 1:04 pm
I think you are right. I have often wondered what it would be like if could enable mobile programming. I thought about a lightweight C# IDE for Windows Mobile – it could even be remotely compiled and the exe returned and installed.
But in reality i see a component driven approach being possible on mobile devices, driven by a more complex code running on servers. Why not have a mobile IDE that allows you to drag a timer component onto a form, drag in an RSS component and then set some output styles & set some properties – all on your mobile.
November 17th, 2008 at 1:05 pm
Great thoughts; I agree the peripheral gap is the key issue. The major difference between your 1994 Dell & 2008 G1 are the humancomputer interface… keyboard (much more human-scale on the 1994 machine) and monitor (approx 4x the computer->eye bandwidth on the 1994 machine.)
November 17th, 2008 at 1:24 pm
Any cost differential in how much you pay to access the internets, between the Dell and G1?
November 17th, 2008 at 1:50 pm
I’ve been using ssh from Windows Mobile (blasphemy!) phones since mid-2005, and I’m sure it’s been possible longer than that. Because of the interface limitations, I develop and perform sysadmin tasks using my phone only in time-sensitive situations when I can’t get to a real computer. Maybe someone will solve the ‘typing on mobile’ problem in a way that will blow our minds soon.
A little piece of flame for you: vim is WAY better than emacs from a mobile device ;-)
November 17th, 2008 at 1:57 pm
Agreed with Greg and everyone regarding the HCI challenges. I suspect they won’t be overcome by the hardware in the device, but rather by better use of USB and Bluetooth to interact with external keyboards, mice, and monitors. IIRC, the G1 doesn’t yet ship with the bluetooth protocols necessary for keyboard/mouse, but eventually I have to believe all phones will.
It’ll be like docking your laptop today, except without wires, and no need for a backpack to tote the machine around.
November 17th, 2008 at 2:01 pm
@Patrick, I don’t remember — what was unlimited dialup access back in the mid 90’s? $25/mo or something?
November 17th, 2008 at 2:25 pm
YOu want ultra-lightweight that uses the power of your phone and remoting?
REDFLY http://www.celiocorp.com
NO hard drive, no RAM, just the resources of your phone.
OK admittedly developing is not great fun on the REDFLY but you can achieve amazing things, just with the phone in your pocket and the dumb terminal in your hand :-)
November 17th, 2008 at 2:29 pm
@Steve – that comment reads like an ad, but I suppose it is a relevant one. I read the homepage and couldn’t understand at a glance what redfly is supposed to do. Care to explain how it works? (And for context, are you related to the company?)
November 17th, 2008 at 2:29 pm
“If we can just bridge the peripheral gap and get high resolution external displays…”
Well yeah. Raw power in terms of CPU and RAM hasn’t been the issue for a while now. But if I’m going to attach a high res display and a keyboard to a phone… why not just use my laptop? It’s far easier and more compact to carry that than a phone, a screen and a keyboard.
Vic’s anecdote is cute and cool… but it really does ignore that some tasks don’t work well on phones not for performance reasons but for HCI reasons.
November 17th, 2008 at 2:35 pm
Re: internet access in mid-90s, I recall paying $20/month for “unlimited” dialup Internet access from NetAxs, the local ISP in Philadelphia, in 1993. Back then they counted by hours, of course, not MB downloaded. Today, you can get a 3G card for any laptop for “unlimited” internet access (really capped at 5GB) for $60/month: http://www.wireless.att.com/businesscenter/popup/dataconnect-comp-table.jsp?wtLinkName=AvailableDataRatePlans&wtLinkLoc=BDY That’s way past the rate of inflation, but then again you can use it anywhere, so it’s not really a fair comparison.
Re: EEE PC 1000, I’ve been eyeing this one as well. Please post a followup to let me know how you like it. I assume you’re using Ubuntu-EEE (or whatever it’s called this week) with the EEE-optimized kernel from Array.org?
November 17th, 2008 at 2:51 pm
@Mark – The EEE PC is great, but the keyboard is shite. I already remapped and pried off and physically moved the arrow keys just to make it a little more sane. (WTF were they thinking with the right shift key?)
I’m running stock Ubuntu Intrepid Ibex on it with the array.org kernel. I gave up and used a USB CDROM for the install after trying for an hour or two with a USB flash drive.
But other than that it is a perfectly functional little Ubuntu box. Wireless and power management work perfectly after a little tweaking. Maybe a little more expensive than it needed to be because I upgraded to 2GB RAM and the SSD, but other than the keyboard I have no complaints at all. (I could live with more pixels, but the screen itself looks great.)
November 17th, 2008 at 4:01 pm
I’m not related to the company, but I do own a REDFLY. Sorry – I was in a hury. Didn’t mean to sound like a commercial.
REDFLY has no moving parts, no hard drive, no RAM. All it is is an extension to your SmartPhone – currenly Windows Mobile only, but with drivers on the drawing board for S60, Blackberry and iPhone.
Picture yourself as a mobile worker who wants access to email, browsing etc, but you don’t want a full PC or laptop – slow boot, security issues if you lose the device, heavy etc etc. So instead of a laptop you can use the REDFLY to add usability to your SmartPhone.
Yikes – I’m sounding like an advert again. What I was responding to, really, was the notion of the phone as a development tool, and the NetBook as a way to do remote work with RDP or whatever.
November 18th, 2008 at 10:04 am
I think you’re on to something here. Enterprise IT developers are already building mashup apps using browser based tools. Some use a WYSIWYG wiring paradigm to connect up web services using a feed concept similar to Unix pipes. Admittedly, its a totally different level of development than you are talking about.
You’ve spotted a trend away from the large footprint PC. A generation of cloud-connected, task specific devices is emerging, e.g. ipod, kindle, ee pc, tivo, netflix/rocku, etc. Notice too that consumers are now buying solutions, not hardware. How many people know the processor, clock rate, memory size of their mobile phone or ipod or any of these devices? Perhaps a “software development device” will emerge, displacing the Mac laptops that arguably already fill this niche. A key differentiator of the ipod is its connection to a cloud-based service. Beyond remote access to a compute cluster, I wonder what cloud-based services would make a killer development solution?
Finally, you didn’t mention that your ee pc cost about 1/10th of a development-grade pc. Since these new devices have a much smaller footprint than a pc, they cost less to produce. This enables better solutions through innovative hardware while still offering a better value prop than a PC (think: ipod clickwheel, multi-touch screens, inertial controls, etc.) Maybe some of the user-input and HCI issues will be solved through mind blowing hardware innovations.
November 18th, 2008 at 10:08 am
Very insightful comment, Claeton. I’m especially intrigued by the concept of specialized low-cost development devices, and love the iPod analogy. Thanks for dropping by!
November 19th, 2008 at 6:03 pm
My name is Stephen and I am a high school student from Michigan. I am doing a research paper about choosing programmer as a career. I was wondering if you would be interested in doing an interview with me via email, chat, or whatever you prefer? Please reply asap. Thank you.