This is a cross-post from my other for-own-use developer blog. I’m posting it here because people often ask me what I’m so busy with.
It’s been a while since my last post; I have been real busy. Anyway, just to quickly say this, I’ve made a change in direction in my development efforts.
I’ve said earlier that I am determined learn a new programming language this year because my brain is starting to rot, but have since decided a few months ago that it will not be Cocoa Touch, for various reasons: too niche (the emerging global mobile apps market is highly fragmented by Nokia, iPhone, Android, Crackberry and possibly Palm as a viable contender), and skills here only attacks a small piece of my larger effort, which my gut tells me it’s a task that could probably be farmed out and done cheaper/faster by outsourcing to a iPhone dev shop where Cocoa Touch is their core competency.
A mobile app that does not utilize any connectivity, nay, “intelligent” connectivity, is not much different from calc.exe on your WinXP desktop. It’s fine for a narrow and specific, uninteresting task. An interesting mobile app would tap the cloud for some form of intelligence. Why not leverage that mandatory data plan from AT&T for your iPhone?
When the time comes, if necessary (such as if the iPhone app will be an important part of my competitive advantage), then I’ll pick up Cocoa Touch myself. For now, I do not think that will be the case, thus I’m going to spend more time on laying the groundwork for the more important piece: the back-end, web 2.0 / cloud computing / SaaS piece. And as Microsoft knows, as Tim O’Reilly says – nobody with their right mind would bet against the Web! (Have you seen HTML5?)
The past month or two, I’ve tried real hard to squeeze time in to learn Python, Django and Google App Engine – all at the same time in parallel, not sequentially. Yes, I’m trying to rush – because I am impatient.
Python is not as popular as other Web languages such as PHP, or popular as a language in general, but it would appear that many smart people I know are proficient in it. I need to learn a new language anyway, so Python is my new shiny toy.
I chose Django because as everybody knows now, if you’re building a web site, Model-View-Controller (MVC) is in. Hand-stitching HTML plus backend code, with layout and business logic intermangled is out. And oh, Django is built using Python.
Google App Engine is a hybrid that you would lump in the category of PaaS and IaaS. That’s Platform-as-a-Service and Infrastructure-as-a-Service. See Appirio’s chart here. The value proposition here is clear: You focus on building your web app, let Google scale it for you. One of Google’s core competency *is* in scaling software AND hardware. Have you seen the hardware from one of their data centers? This reminds me of the headless (or blind) chicken rumor that KFC is breeding — solely for the purpose of meat, everything else is unimportant. Now that’s a real lean and mean searching machine that Google has got, which makes sense – kill the VGA card, reduce I/O on the bus.
I’ll let the experts work their magic there, and I will focus on my web application’s value proposition. I think people forget, you can spin up a *nix server on AWS, but you still have to fire up the MySQL daemon yourself, and scale up yourself .. identifying app bottlenecks and what not. I don’t want to spend time debugging latency problems.
And oh, Google App Engine supports Python, and Django
There is method to my seemingly incoherent madness.
At any rate, I’m bullish on cloud computing + SaaS, so even though there aren’t any marketing success poster-childs for App Engine yet, I am willing to be an early adopter and risk it.
So there’s my not-so-short announcement .. that I’m putting Cocoa Touch on hold indefinitely, and focusing on Python + Django + Google App Engine.
Shameless self-promotion: If you’re local to San Diego, I’ve started a user group for Google App Engine on Facebook. There’s also a Django user group in San Diego.
Tags: django, execution, google app engine, python, technology











