Recently, Google has stepped up its presence in the cloud computing arena. Google's new App Engine (aka "AppSpot") lets you design and run web applications using Google's existing infrastructure. Their (free) basic account offers up to half a gigabyte of storage plus the computing power to push approximately 5 million page views per month. That's a nice starting point for anyone who might be looking into a web-based application environment.

App Engine applications run in secure sandboxes that distribute application load across multiple servers. They offer distributed data storage with standard query, concurrency, and transaction features. So the App Engine lends itself particularly well to structured knowledge repositories like the Open Radar community-sourced bug reports for Apple developers.

Python only



At this time, App Engine uses Python as its primary programming language. Although Google is investigating other languages for future releases, if you want to get started with App Engine, you'll need to first master the Python scripting language. If you're already conversant with Python, congratulations. If not, Ars has put together the following site roundup to help you find resources for learning the language.







Image courtesy of Moving to Python can come as a shock to C Programmers used to bracesImage courtesy of Zarquon.biz

Programming language tutorials either appeal or do not appeal based on any number of personal factors. Some developers prefer simple lessons that move learning forward in stages. Others like the facts to be laid out in familiar terms with a minimum of hand-holding. Each of the following sites presents its own approach to mastering Python, which you may or may not find useful for your learning path. These represent just a fraction of the available online Python tutorial resources.

Online Python tutorials

Official Python Tutorial It's hard to go wrong when Python.org provides the tutorial for you. The official tutorial offers an excellent language overview with all the details you could hope for. That being said, the tutorial reads like a language manual, which it is. This may be exactly what you're looking for or something you'd prefer to avoid.

People with passive-voice allergies are advised to grab some Claritin before reading. Here's an actual quote from the write-up "Perhaps the most well-known statement type is the if statement. For example: There can be zero or more elif parts, and the else part is optional. The keyword ‘elif‘ is short for ‘else if’, and is useful to avoid excessive indentation. An if ... elif ... elif ... sequence is a substitute for the switch or case statements found in other languages."

Strengths: Complete and correct coverage.

Weaknesses: Not especially user friendly introduction.

Python Rocks! Kent S. Johnson provides a terrific overview of the Python language—and why you should be excited by it—in his "Python Rocks!" rant on his personal website. His brief language tour covers a lot of the language highlights for anyone who wants to understand the big Python picture before settling down to a core Python tutorial. It's a great place to start to get you in the mood for learning the language.

Strengths: Helps you understand why Python rocks.

Weaknesses: Short, not a full language overview.

Dive Into Python Mark Pilgrim's online book offers a highly regarded survey of the language. First published in 2004, Dive Into Python is considered one of the best comprehensive overviews by some of our Ars staffers. Presented in outline format, the book covers language basics including statements, data types, objects, regular expressions and more. If you have the time to spare, this book offers exhaustive detail. The last chapter, which covers performance tuning, looks like a real gem for advanced programmers.

Strengths: Really detailed

Weaknesses: Slightly dated, with noticeable typos.

A Byte of Python Swaroop C H's online book offers many, many little knowledge chunks. Each page offers a tiny bit of Python knowledge, with clean formatting and good examples. It is not, however, a book that you'll want to sit and read through as there's little narrative flow from this Yahoo! employee. Instead, it works well as a reference. Click through to the if statement, for example, to find out how to put this one statement together or to the tuple page to see examples of grouped data elements.

Strengths: Just the facts.

Weaknesses: Just the facts.

Learning With Python (2nd Edition) For the experienced programmer who's looking to get up and going with a language as quickly, Jeffrey Elkner, Allen B. Downey and Chris Meyers' Learning with Python site (aka, "How to Think Like a Computer Scientist") provides a simple data dump. Expressions, functions, conditionals, iteration, strings and more are covered in short, pointed chapters.

Each of the 11 chapters is presented on a single webpage with lots of well-focused sample code. It's a great resource for anyone who knows object oriented programming and scripting already but needs to quickly produce results in the new language.

Strengths: Direct and to the point; my favorite site

Weaknesses: Misses advanced best practices.

Learning to Program Alan Gauld's "Learning to Program" offers a series of tutorials that assume little or no programming background. Using Python examples, it start with a surey of language basics and then moves on to more advanced topics including event-driven programming and file manipulation, touching on some basic CS introductions to functional programming and recursion.

You'll probably find his "Python in Practice" and "Working with Databases" sections to be valuable, regardless of your background as it covers very practical applied Python. Sadly, his "Writing Web Clients" and "Writing Web Applications" topics are referenced but not available online at this time.

Strengths: Suitable for new programmers

Weaknesses: Some topics are missing in action.

Other Books The official Python.org wiki offers an excellent list of introductory Python books that are not necessarily available online but should be readily available from Amazon and other retailers. Online tutorials aren't everybody's thing, and the wiki's book list provides a good starting point for tracking down dead tree resources for learning.

Strengths: Excellent survey

Weaknesses: Resources must be tracked down and read in dead-tree format.