I'm really exciting for the increasing integration of python inside of ArcGIS Desktop. If you have done any desktop development at 10 then you will be familar with the Add-In wizard. Check out the information here.
The types allowed: (source: webhelp.esri.com)
A button is the simplest form of functionality that can be used to execute
some business logic when it is clicked. A button assumes that an action or a
series of actions will be executed. Buttons may exist on toolbars and menus.
A tool is very similar to a button. However, a tool requires user interaction
with the desktop application’s display first, and then based on that interaction,
executes some business logic. The Zoom In tool in ArcMap is a good
example—it requires that you click or drag a rectangle over a map before the
display is redrawn, showing the map contents in greater detail for the specified
area. Tools may exist on toolbars and tool palettes.
A combo box provides a set of choices, visually seen as a drop-down box, from
which a selection can be made and acted upon. A combo box can also be
enabled to allow an end user to add a value in the combo box. The Scale combo
box in ArcMap is a good example of a combo box. When data with a known
coordinate system is added to ArcMap, the scale combo box is enabled giving
the user a set of predefined scales from which to choose. It also allows a
user to type a new scale not in the list of options, and the display is updated
based on the value added.
A menu is a container for buttons or other menus. Menus can be exposed by
adding them to an existing toolbar (see Creating an Add-In toolbar for more
information on creating your own toolbar) or an existing menu.
A toolbar is a container for buttons, tools, combo boxes, tool palettes, and menus.
Toolbars can be floating or docked in desktop applications, just like any system
toolbar within the application. Toolbars can also be activated so they are visible
when a desktop application is started.
A tool palette is a container for tools. Tool palettes can only be exposed by adding
them to an existing toolbar (see Creating an Add-In toolbar for more information
on creating your own toolbar).
Application extensions can be used in different ways to provide supplemental
functionality to ArcGIS Desktop:
1. Application extensions are used to coordinate activities between other components
—such as buttons and tools—within a containing add-in. For example, an extension
may not activate a set of tools on a toolbar unless a specific set of layers exist in the map.
2. Application extensions are usually responsible for listening and responding to various
events exposed by the host application. For example, anytime a layer is added
or removed, an event is triggered, and the extension responds by
automatically saving the map document.