SlideShare uma empresa Scribd logo
1 de 31
My App Engine has
more horsepower than
     your Pony
        @alper
Different strengths
Django is good for
  content heavy
App Engine is made for
scalability and realtime
Django on App Engine
Programming
     ≠
Configuration
The Good
Database
noSQL
no migrations
appcfg.py update
More batteries included
• Memcache
• Receiving (!) e-mail
• XMPP
• Task Queues + Cron
Scalability + Availability
The Bad
No serious queries
denormalize
Deadline exceeded
Django templates
django.forms
The Ugly
Retro
class MainPage(webapp.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, webapp World!')

application = webapp.WSGIApplication(
                                     [('/', MainPage)],
                                     debug=True)

def main():
    run_wsgi_app(application)
Domain linking
Admin interface
Enterprise
Programming
     ≠
Configuration
Best practices
• Work within the bounds
• Use indexes
• Use memcache
• Create JSON endpoints
• Compose complexity at the client side

Mais conteúdo relacionado

Mais procurados

SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
Sébastien Levert
 
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure FunctionsSharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
Sébastien Levert
 

Mais procurados (20)

Active Admin
Active AdminActive Admin
Active Admin
 
Marrying angular rails
Marrying angular railsMarrying angular rails
Marrying angular rails
 
Website building exercise
Website building exerciseWebsite building exercise
Website building exercise
 
Client Side Performance @ Xero
Client Side Performance @ XeroClient Side Performance @ Xero
Client Side Performance @ Xero
 
Save time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloudSave time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloud
 
Creating A Vba Function Library For Use In QTP/VBSCRIPT
Creating A Vba Function Library For Use In QTP/VBSCRIPTCreating A Vba Function Library For Use In QTP/VBSCRIPT
Creating A Vba Function Library For Use In QTP/VBSCRIPT
 
Active Admin: Create Your Admin Interface the Easy Way
Active Admin: Create Your Admin Interface the Easy WayActive Admin: Create Your Admin Interface the Easy Way
Active Admin: Create Your Admin Interface the Easy Way
 
SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
 
Rails Concept
Rails ConceptRails Concept
Rails Concept
 
Angular JS and Magento
Angular JS and MagentoAngular JS and Magento
Angular JS and Magento
 
Client side performance analysis
Client side performance analysisClient side performance analysis
Client side performance analysis
 
CUCUMBER - Making BDD Fun
CUCUMBER - Making BDD FunCUCUMBER - Making BDD Fun
CUCUMBER - Making BDD Fun
 
Next.js in production by Jasdeep Lalli
Next.js in production by Jasdeep Lalli Next.js in production by Jasdeep Lalli
Next.js in production by Jasdeep Lalli
 
Communication tool & Environment for Remote Worker
Communication tool & Environment for Remote WorkerCommunication tool & Environment for Remote Worker
Communication tool & Environment for Remote Worker
 
Be Happy With Ruby on Rails - Ecosystem
Be Happy With Ruby on Rails - EcosystemBe Happy With Ruby on Rails - Ecosystem
Be Happy With Ruby on Rails - Ecosystem
 
Building Browser Extensions with Ember
Building Browser Extensions with EmberBuilding Browser Extensions with Ember
Building Browser Extensions with Ember
 
Introduction to Web Worker
Introduction to Web WorkerIntroduction to Web Worker
Introduction to Web Worker
 
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure FunctionsSharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
 
Putting the 'ctions' in Azure Fun-ctions
Putting the 'ctions' in Azure Fun-ctionsPutting the 'ctions' in Azure Fun-ctions
Putting the 'ctions' in Azure Fun-ctions
 
Ruby on Rails - An overview
Ruby on Rails -  An overviewRuby on Rails -  An overview
Ruby on Rails - An overview
 

Destaque

Unit 3 - General Topic Overview
Unit 3 - General Topic OverviewUnit 3 - General Topic Overview
Unit 3 - General Topic Overview
outsidethecave
 
Unit 3 - Narowing a Topic & Evaluating Sources
Unit 3 - Narowing a Topic & Evaluating SourcesUnit 3 - Narowing a Topic & Evaluating Sources
Unit 3 - Narowing a Topic & Evaluating Sources
outsidethecave
 
Open data obstakels - Hogeschool Rotterdam.key
Open data obstakels - Hogeschool Rotterdam.keyOpen data obstakels - Hogeschool Rotterdam.key
Open data obstakels - Hogeschool Rotterdam.key
Alper Çugun
 
Scrape de Overheid
Scrape de OverheidScrape de Overheid
Scrape de Overheid
Alper Çugun
 
Unit 2 - Enlightenment
Unit 2 - EnlightenmentUnit 2 - Enlightenment
Unit 2 - Enlightenment
outsidethecave
 
Willem de Kooning - dataviz - week 2
Willem de Kooning - dataviz -  week 2Willem de Kooning - dataviz -  week 2
Willem de Kooning - dataviz - week 2
Alper Çugun
 
Unit 2 - French Revolution
Unit 2 - French RevolutionUnit 2 - French Revolution
Unit 2 - French Revolution
outsidethecave
 
Da una poesia di Francois Villon
Da una poesia di Francois VillonDa una poesia di Francois Villon
Da una poesia di Francois Villon
profff
 
Unit 2 - Scientific Revoltuion
Unit 2 - Scientific RevoltuionUnit 2 - Scientific Revoltuion
Unit 2 - Scientific Revoltuion
outsidethecave
 

Destaque (17)

Unit 3 - General Topic Overview
Unit 3 - General Topic OverviewUnit 3 - General Topic Overview
Unit 3 - General Topic Overview
 
Tools for Changemakers
Tools for ChangemakersTools for Changemakers
Tools for Changemakers
 
Unit 3 - Narowing a Topic & Evaluating Sources
Unit 3 - Narowing a Topic & Evaluating SourcesUnit 3 - Narowing a Topic & Evaluating Sources
Unit 3 - Narowing a Topic & Evaluating Sources
 
Unit 2 - Middle Ages
Unit 2 - Middle AgesUnit 2 - Middle Ages
Unit 2 - Middle Ages
 
Open data obstakels - Hogeschool Rotterdam.key
Open data obstakels - Hogeschool Rotterdam.keyOpen data obstakels - Hogeschool Rotterdam.key
Open data obstakels - Hogeschool Rotterdam.key
 
Unit 3 - Introduction
Unit 3 - IntroductionUnit 3 - Introduction
Unit 3 - Introduction
 
Why Library 2.0
Why Library 2.0Why Library 2.0
Why Library 2.0
 
Scrape de Overheid
Scrape de OverheidScrape de Overheid
Scrape de Overheid
 
Unit 2 - Enlightenment
Unit 2 - EnlightenmentUnit 2 - Enlightenment
Unit 2 - Enlightenment
 
Willem de Kooning - dataviz - week 2
Willem de Kooning - dataviz -  week 2Willem de Kooning - dataviz -  week 2
Willem de Kooning - dataviz - week 2
 
Grantwriting and Government Contracts for Small Business
Grantwriting and Government Contracts for Small BusinessGrantwriting and Government Contracts for Small Business
Grantwriting and Government Contracts for Small Business
 
Unit 2 - French Revolution
Unit 2 - French RevolutionUnit 2 - French Revolution
Unit 2 - French Revolution
 
Da una poesia di Francois Villon
Da una poesia di Francois VillonDa una poesia di Francois Villon
Da una poesia di Francois Villon
 
Unit 2 - Reformation
Unit 2 - ReformationUnit 2 - Reformation
Unit 2 - Reformation
 
Unit 2 - Scientific Revoltuion
Unit 2 - Scientific RevoltuionUnit 2 - Scientific Revoltuion
Unit 2 - Scientific Revoltuion
 
Unit 2 - Renaissance
Unit 2 - RenaissanceUnit 2 - Renaissance
Unit 2 - Renaissance
 
Unit 2 - Introduction
Unit 2 - IntroductionUnit 2 - Introduction
Unit 2 - Introduction
 

Semelhante a App engine beats pony.key

ASP.NET AJAX - 20090916
ASP.NET AJAX - 20090916ASP.NET AJAX - 20090916
ASP.NET AJAX - 20090916
Viral Patel
 
Python Ireland Nov 2009 Talk - Appengine
Python Ireland Nov 2009 Talk - AppenginePython Ireland Nov 2009 Talk - Appengine
Python Ireland Nov 2009 Talk - Appengine
Python Ireland
 
App engine devfest_mexico_10
App engine devfest_mexico_10App engine devfest_mexico_10
App engine devfest_mexico_10
Chris Schalk
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master Class
Spike Brehm
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 

Semelhante a App engine beats pony.key (20)

App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Advanced Web Technology.pptx
Advanced Web Technology.pptxAdvanced Web Technology.pptx
Advanced Web Technology.pptx
 
ASP.NET AJAX - 20090916
ASP.NET AJAX - 20090916ASP.NET AJAX - 20090916
ASP.NET AJAX - 20090916
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
 
Python Ireland Nov 2009 Talk - Appengine
Python Ireland Nov 2009 Talk - AppenginePython Ireland Nov 2009 Talk - Appengine
Python Ireland Nov 2009 Talk - Appengine
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
App engine devfest_mexico_10
App engine devfest_mexico_10App engine devfest_mexico_10
App engine devfest_mexico_10
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
Cross-Platform Mobile Chemistry Apps
Cross-Platform Mobile Chemistry AppsCross-Platform Mobile Chemistry Apps
Cross-Platform Mobile Chemistry Apps
 
Developing High Performance Web Apps
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web Apps
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master Class
 
Isomorphic JavaScript – future of the web
Isomorphic JavaScript – future of the webIsomorphic JavaScript – future of the web
Isomorphic JavaScript – future of the web
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
 
Beautifying the Beautiful: Theming WSO2 API Manager
Beautifying the Beautiful: Theming WSO2 API ManagerBeautifying the Beautiful: Theming WSO2 API Manager
Beautifying the Beautiful: Theming WSO2 API Manager
 
React loadable
React loadableReact loadable
React loadable
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
 
Quick start with AngularJS
Quick start with AngularJSQuick start with AngularJS
Quick start with AngularJS
 

Mais de Alper Çugun (14)

Code camping amsterdam day proceedings
Code camping amsterdam   day proceedingsCode camping amsterdam   day proceedings
Code camping amsterdam day proceedings
 
Willem de kooning - week 3 - visualisatie
Willem de kooning  - week 3 - visualisatieWillem de kooning  - week 3 - visualisatie
Willem de kooning - week 3 - visualisatie
 
Willem de Kooning - week 1.key
Willem de Kooning - week 1.keyWillem de Kooning - week 1.key
Willem de Kooning - week 1.key
 
Dutchstats keynote short
Dutchstats keynote   shortDutchstats keynote   short
Dutchstats keynote short
 
Foursquare and Location Based Services
Foursquare and Location Based ServicesFoursquare and Location Based Services
Foursquare and Location Based Services
 
What Makes You Horny? Big Data!
What Makes You Horny? Big Data!What Makes You Horny? Big Data!
What Makes You Horny? Big Data!
 
What Makes You Horny? Big Data!
What Makes You Horny? Big Data!What Makes You Horny? Big Data!
What Makes You Horny? Big Data!
 
Content Syndicatie
Content SyndicatieContent Syndicatie
Content Syndicatie
 
De Geest van de Webrichtlijnen
De Geest van de WebrichtlijnenDe Geest van de Webrichtlijnen
De Geest van de Webrichtlijnen
 
Widgets Belastingdienst
Widgets BelastingdienstWidgets Belastingdienst
Widgets Belastingdienst
 
Free Economies Reboot
Free Economies   RebootFree Economies   Reboot
Free Economies Reboot
 
Kado Experience
Kado ExperienceKado Experience
Kado Experience
 
Free Economies
Free Economies Free Economies
Free Economies
 
Portable Social Networks
Portable Social NetworksPortable Social Networks
Portable Social Networks
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

App engine beats pony.key

Notas do Editor

  1. My extremely biased take on why App Engine is more suitable for a variety of needs than django is currently.
  2. I have programmed Django for ages somewhere after launch in 2005. Before that I was using CherryPy (more on that later). This is going to be my extremely biased talk. http://www.cherrypy.org/
  3. Recently I have been doing some stuff in Google App Engine and I’m quite enamoured by it. It was mostly unusable on first launch but it too has come a long way in short time.
  4. different strokes for different folks
  5. Fun if you want to write another blog (!) or other content heavy editorial site. Or huge complex websites that compose multiple apps. Coming from a newspaper background, this is rather duh!
  6. Scalability is not the same thing as performance. It means that as your application gets bigger, it does not degenerate (like Twitter does). And for complex small, data heavy sites. App Engine has some distinct characteristics which are cool (and some which aren’t).
  7. You can, I’m not sure why you would. Without most of the features that make django worthwhile this seems like a pretty silly proposition. While app engine itself is perfectly usable for a variety of applications.
  8. Experience trumps programming, programming trumps configuration. We want to program, not configure. If we wanted to configure stuff, we would program Java.
  9. traditional relational databases suck if you don’t agree, you probably have not been using them enough
  10. high performance and loose integrity (sides of the same coin) django non-rel ORM exists also seems like a silly idea, http://www.allbuttonspressed.com/projects/django-nonrel I haven’t looked into the current django-couchdb and other libraries yet, but it would be nice if these were ready for mainline use.
  11. best approach to data migration: don’t ‘expando Models rule’ Never having to migrate another database table again is a Good Thing.
  12. Free hosting Standardized project layout (a Good Idea) Makes it 100x more likely that I’ll build a throwaway webservice on GAE than I will with django. django-fabric: http://theironlion.net/archive/django-fabric-deploy-your-django-apps-easily/ looks too complex, lots of configuration
  13. Yeah, most of this stuff is not very hard to setup in one way or other. But having this stuff built-in matters. Programmers that don’t understand that simple fact, ruin it for the rest. It removes the necessity to think about it. You can just use the API.
  14. free account will work for your toy website (which are super easy to get started) as soon as it gets serious you can just convert $ into scale, you never have to hire (or become!) a sysop to configure EC2 instances yourself also you don’t need to backup because it’s a gridded setup, it will generally never go down (except when it does), at least it won’t go down for the more mundane of reasons
  15. no JOINs no aggregates no DISTINCT
  16. http://en.wikipedia.org/wiki/Denormalization adding redundant data or by grouping data (remember, we don’t have JOINs) for instance cannot query SELECT DISTINCT city FROM entries so either walk through all your records (bad idea!) or make a new table called Cities and only put city stuff in there
  17. A bad idea if it happens, but because everything in App Engine is in the request/response paradigm, this can be difficult if you want to do some complicated stuff that is hard to decompose/incrementalize. But webservers aren’t really the place (yet!) for that kinda stuff.
  18. A Good Thing (you can use any templating language you want), but we’re stuck on the old 0.96 version (which is frankly silly given the number of updates App Engine gets).
  19. Would be nice to have.
  20. It feels very oldschool if you remember CherryPy (that’s what I used before Django came out). Not that hard and pretty easy to write a website in.
  21. can’t really remove www. Domain linking in Google Applications is a fucking ghetto (even for domains you completely control). It’s doable but it’s very much harder than it should be.
  22. It could be way prettier and nicer to use than it is. Common workflows could also be made easier.
  23. This is pretty nice from an ops point of view.
  24. Google is branding App Engine as an Enterprise product. All good software engineers know that the Enterprise is where programming goes to die. This may yield: - better availability (SLAs and that kinda crap) - more conservatism in development - a bigger focus on Java because of paying customers Which is a mixed bag.
  25. Any system that removes configuration options and let’s you focus on the programming part (on getting work done) is a good system.