The Problem

Windows has simple GUI administrative tools for basic users (Control Panel, MMC, etc). Windows also has a rich set of languages, APIs and object models for advanced systems programmers (C, C++, C#, WMI, Win32, .Net, etc). What is missing is the vital middle – administrator-oriented composable tools to type commands and automate management. The vital middle is typically addressed by scripting languages.

Our current scripting solutions (WSH, VB) focus on the high end of the scripting world which manage the platform using very low level abstractions such as complex object models, schema, and APIs. This is effectively systems programming and misses much of the admin community. Admin scripting flows from command line administration, it must be small, simple, incremental, and deal with very high levels of abstraction.

John Ousterhout described the distinction between scripting and systems programming well in his paper Scripting: Higher Level Programming for the 21st Century.

Degree of Typing

Ousterhout posits that scripting allows for “gluing” applications together – a higher level abstraction than system programming – enabling (even) more rapid application development than today’s systems programming languages. The fundamental argument is that we should continue to ride Moore’s Law to move development to higher levels of abstraction via script. To enable administration automation in the mainstream, administrators need a comprehensive and scriptable shell and utilities and the administrative GUIs need to be layered on top of this infrastructure. This will enable efficient training of administrators on command line automation, ensure comprehensive administrative capabilities at the command line, and the economies of scale of an admin-composable automation model.