Skip to content

Instantly share code, notes, and snippets.

@freakboy3742
Last active January 1, 2016 05:51
Show Gist options
  • Save freakboy3742/cb4476bc25ff49d4553a to your computer and use it in GitHub Desktop.
Save freakboy3742/cb4476bc25ff49d4553a to your computer and use it in GitHub Desktop.
Beyond Web 2.0 - Django and Python in the modern web ecosystem

Beyond Web 2.0 - Django and Python in the modern web ecosystem

Django is over 10 years old; but the web that it was built for doesn't really exist any more. Yes, we still need to rapidly develop database-backed websites, and we still need those sites to use AJAX, but the modern web is faced with new problems, and new challenges. Many of those challenges involve interacting with devices that aren't desktop machines, and platforms that aren't a traditional browser - places where Python isn't a first-class citizen.

Does this mean we have to abandon Django and Python for other frameworks and languages? Can we keep using Python and Django on the server side and interact with independent client side frameworks? Or can we push Python and Django into these new environments?

In this talk, Dr Russell Keith-Magee will explore the problems, and some potential solutions, to these problems.

Objectives

To look at the way having a mobile and "rich web" requirements alters the way you use Django, and look at some ways that Django (and Python) may need to evolve in order to adapt to these requirements. This will be backed up by experience developing a rich web app with a strong mobile component.

Detailed abstract

This talk will look at the way the web development industry is evolving, and provide some practical answers to the question of how Django (and Python) can adapt to these changing requirements. Some of the projects mentioned are early alpha and prototype projects, some are more mature; but they all point in the direction of a major shift in our industry that, as web developers, we would be foolish to ignore.

This isn't just a theoretical talk, though - it will provide a case study of a real-world Django project that is in the process of migrating from being an "old style", web-first Django app, to a "rich web plus mobile" app. This case study will also look at some common requirements that are often overlooked by developers who live and work in large urban centers.

In addition to practical tips that can be used right now, the talk will look at some emerging technologies that might provide a way to expand the use of Django and Python in the mobile space (Rubicon, VOC), and in the browser (Batavia).

Talk summary:

  • Introduction - 1 minute
    • Who am I?
  • The problem - 5 minutes
    • The traditional website model
    • Requirements for a modern web project
      • Realtime
      • Mobile
    • Rethinking the structure of a web app
  • Writing isomorphic web apps - 10 minutes
    • What the isomorphic approach provides
    • The place of Python in Isomorphic web apps
    • Django support libraries for React, Ember, etc
    • Dual implementation of validation logic
    • Browser scripting in Python
    • Pushing pure logic to the server
      • Using Batavia to ship form validation
  • Dealing with intermittent data connections - 5 minutes
    • Tradeoffs that are available
    • Solution in practice: TradesCloud
  • Python on Mobile platforms - 5 minutes
    • Running Django servers on mobile
    • Native apps
      • Reusing web server logic
    • Options for cross-platform development
      • Kivy
      • Toga
  • The future? - 2 minutes
    • How can Django adapt to this change?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment