Week 5 — 32 / 38

Python and Flask

[Editorial] We're now more than halfway through the course, and going to start to depart from pure standards or tools chosen for their historical importance. There are any number of perfectly fine server-side languages you could use, each with fierce partisans. And because HTTP is a well-defined spec, all of them can do a totally capable job of running web servers. We've already used PHP, and talked about how early web servers were mostly written in C and Java. There are popular web frameworks written in Ruby (Rails, Sinatra), Python (Django, Flask), and even Javascript itself (Node). There are web frameworks for newer languages like Go (Gorilla, Gin) or Rust (Actix, Iron), and a friend even made a popular web framework for Fortran.

Arguments about what's the "best" language and framework are contentious because of the same kinds of positive feedback loops we've discussed around browsers and the HTML spec. How valuable my skills and experience with a given language or framework are is partly a function of how popular those choices are with other developers. That makes discussions frequently generate more light than heat. The truth is there are lots of perfectly good ways to write a web application, and we should hold our choices somewhat lightly.