Python, it is extremely useful for streamlining workflows and SOP for a multitude of tasks. This is particularly true for geoprocessing in ArcGIS. True, ModelBuilder can be used. More often than not, I find myself starting in ModelBuilder and finishing in Python simply because of the ability to have more control over processes and the ease of using iteration.
ArcGIS for Desktop 10 introduced the option to embed scripts into tools. Once embedded, editing is as simple as right clicking on the script in a toolbox and selecting edit. The default Python IDE, IDLE would open and from there the script could be edited.