Victus Spiritus

home

Practical Web Programming with the friendfeed API & Google App Engine

24 Jul 2009

Long Day Coding

Had a helluva weird 17 hour coding spree yesterday. By setting up and slightly modifying the friendfeed application example, I nearly drove one of the super helpful friendfeed developers bonkers (yeah I'm that bad with questions). The plus side, I have a basic handle on the Google App Engine (GAE), Python, Django html scripting and jury rigging eclipse projects to run php (why oh why doesn't GAE support PHP).

Friendfeed Developers Rock

First off a big thanks to Benjamin Golub of friendfeed for his patience yesterday. I owe you a debt of gratitude for supporting non-friendfeed related code. A tip of the hat to all the friendfeed development staff who went out of their way (Bret Taylor, Gary Burd) the last couple of days to get eager developers using their new API.

The GAE is definitely worth learning, if Google is going to continue to support it. It's basically free scalable hosting for your project (with some limitations) and you only pay for bandwidth plus storage needs over the free threshold (~5million pageviews a month). It was rolled out last year with Python support. Just recently they released java support, which enabled Quercus/PHP to work. Incidentally Quercus is much faster than normal php, but I do have an issue (hopefully something I can fix on my end).

The command line has become my friend, as I can't seem to get a project in either Eclipse or Netbeans to play nice with all the web programming languages I'm using. I guess that's good news for when I delve back into scala /lift using maven's command build.

As powerful as some of these technologies are, I can't help but feel that there's no one trying to unify all these web languages into an easy to start/build/deploy package. Beyond the Integrated Development Environment I wrote about previously, there is a need for language developers to see outside of their own "walled garden" of development. It's in our collective best interest to seamlessly bring these languages together into high level packages. The java virtual machine has been leveraged to produce byte code for several languages and is a good example of the direction we can head down. The cost to using the JVM is that specifically optimized local hardware compiled code can still outperform java for processing heavy apps.

It's fascinating looking back at the evolution of programming, from assembly to high level web application environments. We are continually inventing new ways to organize our ideas into formats that computers and the Internet can understand. There's still something to be desired in the experience of first learning new programming syntax. Without stretching my imagination too far, I envision a virtual programming assistant (VPA) tool that aids beginners and masters alike. The huge inefficiency in the design and learning of interfaces will be surprisingly expedient, as the VPA will handle most of the low level work. For star wars fans think of a C3PO (minus the body) focused on programming languages and you'll have a good concept of the functionality of a VPA.

I look forward to the day we can finally say farewell to QWERTY, an inefficient vestigial throwback. The interface to the web and it's windows will shift from mouse and keyboard to voice, optical and neural controls. Simulators and designers will have vast resources at their beck and call to create all manner of inventions.