I need a really good reason to use Python

Almost no problem requires a specific programming language, that's just not how things work.

The easiest way to get a new language into an environment like yours is to start a new work project in your own time in the new language. Make it do something you need doing, and write it on your own time. Use it yourself, and other people will probably notice it. They then say "Can you send me that program?" and boom, they're using your new language.

If you really want to something, I would probably write a site in Django, simply because its admin interface blows everyone away.

The main point to remember is that if you start using python, that's one more thing everyone else has to learn, and it's another bullet point that will need to be on every prospective employee's resume. That can get expensive, and management won't like it.


"Can you guys help me think of something to finally convince my boss to really learn Python and start using it on projects?"

Nope.

Nothing succeeds like success. Use Python. Be successful. Make people jealous.

When asked why you're successful, you can talk about Python. Not before.

Choose projects wisely: things where a dynamic language has significant advantages. Things where the requirements are not nailed down in detail. Things like data transformations, log-file scraping, and super-sophisticated replacements for BAT files.

Use Python to get started doing something useful while everyone else is standing around trying to get enough business and domain information to launch a project to develop a complicated MVC design.


Edit: Some Python to the Rescue stories.

  • Exploratory Programming
  • Tooling to build test cases
  • What's Central Here?
  • Control-Break Reporting
  • One More Cool Thing About Python Is...
  • In Praise of Serialization

And that's just me.


Edit: "boss prompted ME to investigate", "figure out how we can use it" changes everything.

The "finally convince my boss to really learn Python" is misleading. You aren't swimming upstream. See How Do I Make the Business Case for Python for the "convince my boss" problem. The edit says you're past this phase.

Dynamic languages offer flexibility. Exploit that. My two sets of examples above are two areas where flexibility matters.

  • Requirements aren't totally nailed down. With a dynamic language, you can get started. Rework won't be a deal-breaker. With Java (and C++ and C#) you are reluctant to tackle devastating design changes because it's hard to break everything and get it to compile and work again. In Python, devastating changes aren't as expensive.

  • Design is in flux because you can't pick components. You can write Wrappers and Facades very easily in Python. It's a scripting language. And, Python modules compose into larger aggregates very simply.

  • Coding is in flux because requirements and design keep changing. It's scripted -- not compiled. You just make a change to the code and you're off and running. Testing is easier because the work cycle is shorter. It isn't code-compile-build-test it's code-test.

  • Testing is in flux because the requirements keep changing. Same as above. The work cycle is shorter and faster.

Tags:

Python