Why I Hate the GUI (and Cmd.exe) (Part III)

Part I, Part II

Another reason I hate the GUI is because there’s no way to automate it. I don’t want to create one user, let alone two, by clicking checkboxes. I want some simple template that I can provide a few values – like username – for, and have it do it. That’s where scripts come in, but only because Windows provides no other means of doing it, really.

Why is a GUI so horrible for this? Even with one user, it’s too easy to forget a particular checkbox, or make some other simple error. With a template – or a script – you don’t have to remember. When you’re creating a hundred users, forget about it – automation wins, hands-down, every time.

The problem with VBScript, if it has one, is that it doesn’t really do anything. It’s just a means of accessing technologies like ADSI, WMI, and COM. That’s fine, except that every little bit of ADSI, WMI, and COM all work differently. So you’re constantly having to figure things out, and you’re constantly running up against things you “just can’t do,” because the people who built ADSI, WMI, and COM, never thought you’d need to do that.

Here is the ultimate difference between Unix and Windows: Unix is an OS with a graphical environment that can lay on top of the OS. Windows is a graphical OS. Every bit of Windows’ functionality is in the GUI, and the only scriptable or command-line functionality we get is what Microsoft thought we’d need, or what they could push out in a Resource Kit. Yuck. So we have this mishmash of tools – third party tools for this, Resource Kit tools for that, scripts for this other thing, on and on. It’s confusing, it’s inefficient, and it’s damn hard to learn. That’s why I utlimately hate the GUI – because it locks you into one way of working, doesn’t support automation, and it suppresses the creation of real administrative functionality like scripts or command-line.