What does your Python development workbench look like?
Posted
by
Fabian Fagerholm
on Programmers
See other posts from Programmers
or by Fabian Fagerholm
Published on 2010-12-29T17:23:08Z
Indexed on
2010/12/29
20:59 UTC
Read the original article
Hit count: 507
First, a scene-setter to this question:
Several questions on this site have to do with selection and comparison of Python IDEs. (The top one currently is What IDE to use for Python). In the answers you can see that many Python programmers use simple text editors, many use sophisticated text editors, and many use a variety of what I would call "actual" integrated development environments – a single program in which all development is done: managing project files, interfacing with a version control system, writing code, refactoring code, making build configurations, writing and executing tests, "drawing" GUIs, and so on. Through its GUI, an IDE supports different kinds of workflows to accomplish different tasks during the journey of writing a program or making changes to an existing one. The exact features vary, but a good IDE has sensible workflows and automates things to let the programmer concentrate on the creative parts of writing software.
The non-IDE way of writing large programs relies on a collection of tools that are typically single-purpose; they do "one thing well" as per the Unix philosophy. This "non-integrated development environment" can be thought of as a workbench, supported by the OS and generic interaction through a text or graphical shell. The programmer creates workflows in their mind (or in a wiki?), automates parts and builds a personal workbench, often gradually and as experience accumulates. The learning curve is often steeper than with an IDE, but those who have taken the time to do this can often claim deeper understanding of their tools. (Whether they are better programmers is not part of this question.) With advanced editor-platforms like Emacs, the pieces can be integrated into a whole, while with simpler editors like gedit or TextMate, the shell/terminal is typically the "command center" to drive the workbench. Sometimes people extend an existing IDE to suit their needs.
What does your Python development workbench look like? What workflows have you developed and how do they work?
For the first question, please give
- the main "driving" program – the one that you use to control the rest (Emacs, shell, etc.)
- the "small tools" -- the programs you reach for when doing different tasks
For the second question, please describe
- what the goal of the workflow is (eg. "set up a new project" or "doing initial code design" or "adding a feature" or "executing tests")
- what steps are in the workflow and what commands you run for each step (eg. in the shell or in Emacs)
Also, please describe the context of your work: do you write small one-off scripts, do you do web development (with what framework?), do you write data-munching applications (what kind of data and for what purpose), do you do scientific computing, desktop apps, or something else?
Note: A good answer addresses the perspectives above – it doesn't just list a bunch of tools. It will typically be a long answer, not a short one, and will take some thinking to produce; maybe even observing yourself working.
© Programmers or respective owner