Skip to content

Instantly share code, notes, and snippets.

@blarghmatey
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save blarghmatey/bc6e3eb758fc2239003c to your computer and use it in GitHub Desktop.
Save blarghmatey/bc6e3eb758fc2239003c to your computer and use it in GitHub Desktop.
PyCon 2015 Talk Proposal - Python for Polyglots

Title - Python for Polyglots

Category - Other

Duration - 30 minutes

Description

Sometimes we find ourselves needing to write a program in a language that gasp! isn't Python. Laying the groundwork to debug your mental model using a toy Python implementation can make it easier to determine the best path forward.

Audience

Polyglot programmers with a preference for Python

Python Level - Novice

Objectives

What will attendees get out of your talk? When they leave the room, what will they know that they didn't know before?

This talk will introduce attendees to the idea of using Python as a fast and easy way of exploring and validating their understanding of a particular problem. In addition they will learn some ideas about when they should use this technique and how to apply it.

Detailed Abstract

Sometimes, when we are building an application or writing a script there are considerations or constraints that necessitate the use of a language other than Python. Sometimes that language is poorly understood or complex to use. This extra cognitive load can make it difficult to build an effective mental model about the problem space that is being worked on.

Python to the rescue! By implementing a minimal example that covers the desired functionality or just doing some exploratory coding in the Python REPL you can form greater clarity around how things will work. In addition to being useful for figuring out the application design of a new project, it can be useful for debugging problems encountered in the target language. Python is an ideal language for performing these experiments because it is descriptive, supports multiple programming paradigms, provides fast feedback cycles and has a large, supportive community.

Some things to consider when using this approach are; what are the capabilities of the target language vs what you are using from Python?, how involved should you get with the prototype?, how long will it take to port the prototype to the target language?

Outline

  1. Intro (3 min)
  • Who am I?
  • Introduce the topic
  1. Why would you use another language? (5 min)
  • Concurrency requirements
  • Memory, hardware or platform constraints (e.g. running in a browser)
  • Hard real-time systems
  1. How can you use Python when writing in another language? (10 min)
  • Multi-paradigm language, supports procedural, OO, functional
  • Exploratory development in the REPL
  • Prototype implementation
  • Writing integration tests (e.g. outside-in tests of an HTTP API)
  1. Things to watch out for in your prototypes (8 min)
  • Using advanced Python language features that don't have a comparable implementation in the target language (e.g. multiple inheritance)
  • Constrain the amount of time spent on the prototype so that it doesn't negatively affect the timeline of the overall project
  1. Questions (4 min)

Additional Notes

I have not presented at a professional conference such as PyCon before. I have presented a number of times at local user groups and company tech talks. Slide decks of the presentations I have given can be found here. I will have the opportunity to test the presentation in front of my local user group and coworkers. I have worked in and contributed patches to open source projects using a variety of languages (my GitHub).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment