Mahmoud Hashemi

Mahmoud Hashemi is a backend engineer and architect, open-source library maintainer, and Wikipedian, with ten years of experience building enterprise software. He authored O'Reilly's Enterprise Software with Python, host of the Pyninsula Python meetup group in the San Francisco Bay Area, and presenter of talks on Python and architecture, delivered all around the world.

Speaker home page

Ask the Ecosystem: Lessons from 200+ FOSS Applications

DevOps, Testing, & Automation, Python & Libraries, Scale & Performance, Intermediate
8/18/2019 | 4:00 PM-4:45 PM | Robertson 2

Description

If you had to build a software application right now, how would you do it? First step, Python. But then what?

This talk looks at over 200 of the most-successful open-source Python applications to provide advice on building effective software to reach the masses. Architecture, testing, licensing, packaging and distribution, these projects hold lifetimes of work and wisdom, waiting to be learned!

Abstract

If you had to build a software application right now, how would you do it? First step, Python. But then what?

This talk looks at over 200 of the most-successful open-source Python applications to provide empirical advice for building effective software to reach the masses. We'll look at architecture, testing, licensing, and even packaging and distribution. Each of these applications contains answers to every question raised during application development.

Why spend days and weeks piecing together the basics from first principles (blog posts and Stack Overflow), when Python's rich ecosystem readily provides? Go farther by following in the footsteps of such giants as Deluge, Reddit, Pi-Hole, FreeCAD, Unknown Horizons, Calibre, Magic Wormhole, Synapse, Zulip, Anki, Sage Math, Sentry, and more.

In this presentation, we'll explore many questions, just a few of which include:

  • What userbases do Python-based applications reach?
  • Where in software is Python leading, and what domains represent its biggest gaps?
  • What library dependencies appear in the application zeitgeist?
  • What copyright licenses are used by applications, and how do these practices differ from libraries?
  • How many projects rely only on donations, as opposed to having foundation or corporation support?
  • What can Python developers do to support and get involved in Python's rich application space?

A production application is worth a hundred blog posts and a thousand Stack Overflow answers. You've already heard all the talk about best practices, now come hear about the practical practices from real Python applications.

Outline:

  1. 3m - Defining the "application"
  2. 3m - Distinguishing between open-source application and library development
  3. The top 200 open-source Python applications (methodology and taxonomy)
    1. 3m - Exemplars (e.g., Deluge, Anki, Synapse, yum/dnf, etc.)
    2. 3m - Methodology and prior art
    3. 2m - Taxonomy and organization
  4. Common patterns and antipatterns in Python application design
    1. 3m - Architecture
    2. 4m - Dependencies
    3. 5m - Packaging and distribution
    4. 2m - Documentation
    5. 3m - Licensing
  5. 3m - The role of open-source in future Python usage
  6. 3m - Getting involved in open-source

Total: 37 minutes