My traditional career ended a decade ago when I started studying web frameworks, guided by framing the problems they're aimed at from a different perspective. During the same time I lead the development of Reahl (http://www.reahl.org) which was released at the end of 2013 - one of very few such ambitious open source projects originating from South Africa. In the corporate world I coach agile teams and teach the forgotten craft of Object Oriented design. This combination equipped me to be a specialist facilitator of the process of taming systems whose design has grown convoluted and debilitating over time.

Accepted Talks:

Introduction to building web applications with Reahl

Reahl is a full-featured web framework with a twist: with Reahl you write a web application purely in Python. HTML, JavaScript, and all those cumbersome web technologies are hidden away from you.

The first application developed in the online Reahl tutorial includes just enough functionality to give someone a feel for how Reahl is different and interesting. Some topics there fall slightly outside of the scope of Reahl itself because several other Python tools are used, such as virtualenv, Python eggs and SqlAlchemy.

This tutorial is for those who are interested to get that first very basic taste of Reahl with help nearby, and do not feel like following the online tutorial alone at home. We will develop the first example of the online tutorial to give you a solid feel for the approach taken by Reahl, while introducing a number of other development tools that should probably be used by any Python developer. Topics covered are:

  • Using virtualenv
  • Developing Python eggs
  • Persistence using sqlalchemy / elixir
  • Using basic widgets in Reahl
  • Input and validation using Reahl
  • Reacting to user-initiated events using Reahl

The elephant in the web application

In this talk, I'd like to convince you that developing a web application today is an unnecessarily cumbersome and error prone task. It is time for web frameworks to evolve and become more like graphical user interface (GUI) frameworks: these provide abstractions called "windows" or "widgets" that let a programmer write an application using terms that describe what is being built, with less (if any) focus on the underlying technologies needed to accomplish drawing these items on a screen.

A web application programmer (in contrast to a GUI programmer) needs to know quite a few different technologies and a fair bit of effort is required to orchestrate these tools into achieving an end result: a template language, HTML, HTTP, CSS, JavaScript, etc. Reusing something substantial is especially difficult, which means in a sizeable web application the same dragons need to be fought several times over. If a programmer has to constantly deal with all this subject matter, it takes focus away from what actually needs to be built: the application itself.

Why are we putting up with having to know HTML and similar low-level technologies? Is it an elephant in the room? Something we pretend not to see, yet we accept the burden of having to work around it?

I will show you what it takes to build a web application; what repetitive tasks there are and what a programmer needs to be aware of. I hope to convince you that there's a better way, and that what was perhaps an idealistic dream a decade ago can now be done - not only by our own fully-featured Python web framework (Reahl), but also by a small number of others beyond the realm of Python.



PyConZA brought to you by Praekelt Foundation