Python Evangelism 101 - SciPy

32
Python Evangelism 101 or “Python Meets The Enterprise” Peter Wang

Transcript of Python Evangelism 101 - SciPy

Page 1: Python Evangelism 101 - SciPy

Python Evangelism 101or

“Python Meets The Enterprise”

Peter Wang

Page 2: Python Evangelism 101 - SciPy

Teaching Languages

• Readability

• Ease of use

• “Fits in your head”

• Incremental sense of accomplishment

• aka “gets things done”

• Deployment

• aka “Lookie what I did!”

Page 3: Python Evangelism 101 - SciPy

Professional Languages

• Readability

• Ease of use

• “Fits in your head”

• Gets things done

• Legacy integration

• Good libraries

• “Lookie what I did!”

Page 4: Python Evangelism 101 - SciPy

Don’t care about...

• Technical purity

• e-peen factor

• (beyond “Lookie what I did”)

Page 5: Python Evangelism 101 - SciPy

Truths about Programmers

Page 6: Python Evangelism 101 - SciPy

Truths about Good Programmers

• Lazy

• (in a good way!)

• just want things to work

• Temperamental tinkerers

• Obsessed with details

• (Sometimes)

• Spoiled kids who just want to have fun

• And sometimes create Fortune 100 companies

Page 7: Python Evangelism 101 - SciPy

Fun & Passion

• Americans are obsessed with “fun”

• Alias for Passionate Creativity

• Early adopters tend to be passionate

• Passion

• leads to Motivation

• leads to Productivity

• (leads to suf-fering?)

Page 8: Python Evangelism 101 - SciPy

Truths about Software

Page 9: Python Evangelism 101 - SciPy

Arguable Truths about Software

Software Development is a Craft

Page 10: Python Evangelism 101 - SciPy

Arguable Truths about Software

Software Development is a Craft

Page 11: Python Evangelism 101 - SciPy

Observations About Languages

Page 12: Python Evangelism 101 - SciPy

Completely Controversial Observations about Languages

Page 13: Python Evangelism 101 - SciPy

Completely Controversial Observations about Languages

Page 14: Python Evangelism 101 - SciPy

Exercises

1. Draw lines corresponding to expected effort for each language

• Difference to reality is the Moxie Gap

• Directly modulates Motivation

2. Add Lisp to that graph

Page 15: Python Evangelism 101 - SciPy

One Truth About Python

• Power scales with the ability of the programmer

• Novices can do simple things

• Really bright people build tools

• Novices leverage these tools

• Lone sysadmins <3 perl

• Mavericks in small workgroups <3 Python

Page 16: Python Evangelism 101 - SciPy

Python meets the enterprise

Page 17: Python Evangelism 101 - SciPy

Python meets The Enterprise

Page 18: Python Evangelism 101 - SciPy

Python meets The Enterprise

Page 19: Python Evangelism 101 - SciPy

Python meets The Enterprise

• “Original Sin of Enterprise Software Development”

• Programmers are fungible

• In low-productivity regions, almost true.

• Not true to really effectively leverage Python

Page 20: Python Evangelism 101 - SciPy

Good News

More businesses are using Python.

Page 21: Python Evangelism 101 - SciPy

Bad News

More businesses are using Python.

Page 22: Python Evangelism 101 - SciPy

Bad News

More managers are managing Python programmers.

Page 23: Python Evangelism 101 - SciPy

Bad News

More managers are managing ex-Java programmerswriting Python code.

Page 24: Python Evangelism 101 - SciPy

The Java Question

There exist Java people.

Page 25: Python Evangelism 101 - SciPy

The Java Question

There exist Java_People.

Page 26: Python Evangelism 101 - SciPy

The Java Question

There exist com.sun.stereotypes.offensive.JavaPeople

Page 27: Python Evangelism 101 - SciPy

The Java Question

How do we foster a Pythonic mindset in people from Bondage

& Discipline languages?

Page 28: Python Evangelism 101 - SciPy

Suggestions

• Fun

• Passion

• Motivation

Page 29: Python Evangelism 101 - SciPy

Why this talk at SciPy?

• Scientists program to get things done

• Early adopters

• Likely to be Python evangelists within your groups & organizations

Page 30: Python Evangelism 101 - SciPy

Things To Do

• Introduce Python to your friends

• Make useful tools

• Be friendly

• not snarky

• (like me)

• Be open

Page 31: Python Evangelism 101 - SciPy

Things Not To Do

• Introduce Python to your frenemies

• Foist Python on the unwilling

• Vaccinate your group against dynamic languages

Page 32: Python Evangelism 101 - SciPy

TL;DR

• We all enjoy coding in Python.

• We want to continue coding in Python.

• We don’t want a wasteland of failed deployments.

• Leave that to Java.

• Make useful tools; let those change minds.