Django is over 10 years old; but the web that it was built for - the world of "Web 2.0" - doesn't really exist any more. Yes, we still need to rapidly develop database-backed websites, AJAX-enabled, 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.
The purpose of this talk is to look at the way our 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 talk is a backed up by my experience developing a number of mobile data gathering applicaitons, including TradesCloud, a web site that has a significant mobile component in an environment with highly intermittent data connection availability. I'm also deeply involved in a number of projects bringing Python to mobile (Rubicon, VOC), and to 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
- Brython
- Skulpt
- 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